Getting started with iText - Part 7 (HelloWorldMultiple)
This next installation in Getting started with iText was supposed to translate the HelloWorldMultiple.java example. It demonstrates how to generate multiple files using a single Document object.
While the attached CF code runs, it produces binary garbage for everything but the PDF file and I am not certain why. I will have to come back to this one and try and determine the source of the problem: the iText.jar version or my interpretation of the code.
I think a better title for this would be "GoodbyeHelloWorldMultiple"
<h1>HelloWorldMultiple</h1>
<cfscript>
savedErrorMessage = "";
// cfSearching: By default files are output to the current directory
fullPathToPDFFile = ExpandPath("./HelloWorldPdf.pdf");
fullPathToRTFFile = ExpandPath("./HelloWorldRtf.rtf");
fullPathToHTMLFile = ExpandPath("./HelloWorldHtml.html");
// step 1: creation of a document-object
document = createObject("java", "com.lowagie.text.Document").init();
try {
// step 2:
// we create 3 different writers that listen to the document
// cfSearching: First create the reusable stream an writer objects
outStream = createObject("java", "java.io.FileOutputStream");
writer = createObject("java", "com.lowagie.text.pdf.PdfWriter");
// cfSearching: Now Create the 3 writers
pdf = writer.getInstance(document, outStream.init(fullPathToPDFFile));
rtf = writer.getInstance(document, outStream.init(fullPathToRTFFile));
html = writer.getInstance(document, outStream.init(fullPathToHTMLFile));
// step 3: we open the document
document.open();
// step 4: we add a paragraph to the document
paragraph = createObject("java", "com.lowagie.text.Paragraph").init("Hello World");
document.add(paragraph);
// we make references
// cfSearching: create Anchor object and reuse it
anchor = createObject("java", "com.lowagie.text.Anchor");
pdfRef = anchor.init("see Hello World in PDF.");
pdfRef.setReference("./"& fullPathToPDFFile);
rtfRef = anchor.init("see Hello World in RTF.");
rtfRef.setReference("./"& fullPathToRTFFile);
// we add the references, but only to the HTML page:
pdf.pause();
rtf.pause();
document.add(pdfRef);
chunk = createObject("java", "com.lowagie.text.Chunk");
document.add(Chunk.NEWLINE);
document.add(rtfRef);
pdf.resume();
rtf.resume();
WriteOutput("Finished!");
}
catch (com.lowagie.text.DocumentException de) {
savedErrorMessage = de;
}
catch (java.io.IOException ioe) {
savedErrorMessage = ioe;
}
// step 5: we close the document
document.close();
// close the output streams
outStream.close();
</cfscript>
<!--- show any errors --->
<cfif len(savedErrorMessage) gt 0>
Error - unable to create document
<cfdump var="#savedErrorMessage#">
</cfif>
0 comments:
Post a Comment