Skip navigation
Currently Being Moderated

PDFLib Coldfusion example

Oct 23, 2007 9:06 AM

Developers,

I realize that iText has been widely discussed here and Coldfusion MX 8 now includes the <cfpdf> tag to merge and alter pdfs, but my company still uses CFMX 7 and PDFLib and am hoping for some assistance in altering pdflib code to work with coldfusion.

Below is the example pdf merge file provided by PDFLib. It is written in java, much like the iText example was, and then coded for Coldfusion by PaulH here. Thanks in advance for any and all help.

Code:


 
Replies
  • Currently Being Moderated
    Oct 23, 2007 12:19 PM   in reply to Lumpia
    Not sure if this helps at all, but we merge and fill PDFs with CFMX 7 using pdftk, read more about it here:
    http://www.accesspdf.com/pdftk/

    It's basically a stand-alone executable that you can call with <cfexecute>.
     
    |
    Mark as:
  • Currently Being Moderated
    Oct 23, 2007 1:22 PM   in reply to Lumpia
    Lumpia,

    You're probably going to have do it through a little trial and error. But it looks like there are only a few patterns you have to translate to CF, and they're repeated throughout the code.

    For example the string array:
    String pdffiles[] = ...

    Probably translates to a CF array (ignoring 0/1 based index issues)
    <cfset pdffiles = listToArray("PDFlib-real-world.pdf,PDFlib-datasheet.pdf,....")>

    The call to
    p = new pdflib();

    Should translate to a createObject() call
    <cfset p = createObject("java", "com.pdflib.pdflib").init() />

    Once you've created the object, the methods from CF are almost exactly the same. Though you might need to use javacast() in a few places.

    java:
    p.set_info("Creator", "PDFlib Cookbook");
    p.set_info("Title", title + " $Revision: 1.8 $");

    cf:
    <cfset p.set_info("Creator", "PDFlib Cookbook") >
    <cfset p.set_info("Title", title + " $Revision: 1.8 $")>

    The rest looks pretty standard. Try/catch becomes <cftry><cfcatch>. If becomes <cfif>. The for loop becomes <cfloop>. etc.

    Keep in mind you can also use <cfscript> syntax. Though I didn't use it here, its probably closer to the java code in terms of syntax.

    HTH
     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points