Thanks.

closing the OutputStream fixed my problem, and your way of getting the
xml file is clearly better.

I used to get a Fop instance directly from the constructor, but that
is deprecated now, in favor of the FopFactory. That was the change I
had encountered.

On Nov 2, 2007 3:41 AM, Jeremias Maerki <[EMAIL PROTECTED]> wrote:
> FOP's API hasn't changed. I don't remember any change in that area that
> could trigger this, but I could also be wrong. Anyway, what I'm missing
> in your code snippet is a try..finally around the code where the
> OutputStream is closed in the "finally" section. That omission is most
> likely the reason for the file corruption.
>
> As a side-note, it's inefficient to load the XML file as a DOM and then
> pass it to the XSL transformation. Please take a look at our examples
> and use a SAX-based approach:
> http://xmlgraphics.apache.org/fop/0.94/embedding.html#ExampleXML2PDF
>
> Jeremias Maerki
>
>
>
>
> On 02.11.2007 00:42:58 Michael Tracey Zellmann wrote:
> > I was using 0.93 successfully some time ago, and I have another
> > application to use,
> > so I downloaded 0.94.
> >
> > I am using Java 1.5.0_11
> >
> > I tried to set things up correctly, but the PDF I generated can't be
> > read by Adobe Reader 8. I get a message that the file has been damaged
> > and can't be repaired.
> >
> > I have some code that reads a source document, builds an Fop from a
> > FopFactory using MimeConstants.MIME_PDF and an OutputStream. I build a
> > Transformer from a TransformerFactory using an XSLT file, get a
> > SAXResult from the fop, and then transform the source into the result.
> >
> > I have tried a very simple style sheet but no success.
> >
> > Can anyone help me understand what is wrong, or point me to a basic
> > example that will work with the new version?
> >
> > Here is the code:
> >
> >
> >                DocumentBuilderFactory dbf =
> > DocumentBuilderFactory.newInstance();
> >                DocumentBuilder db = null;
> >                Document input = null;
> >                try {
> >                        db = dbf.newDocumentBuilder();
> >                        input = db.parse(new
> > File("input/astruct/primitives/System.xml"));
> >                } catch (ParserConfigurationException e) { 
> > e.printStackTrace();
> >                } catch (SAXException e) { e.printStackTrace();
> >                } catch (IOException e) { e.printStackTrace(); }
> >                Source src = new DOMSource(input);
> >                FopFactory fopFactory = FopFactory.newInstance();
> >                OutputStream out = null;
> >                File outputDir = new File("output");
> >                File outputFile = new File(outputDir, "System.pdf");
> >                try {
> >                        out = new BufferedOutputStream(new
> > FileOutputStream(outputFile));
> >                } catch (FileNotFoundException e) {e.printStackTrace();}
> >                Fop fop = null;
> >                try {
> >                        fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
> >                } catch (FOPException e) { e.printStackTrace(); }
> >                File xsltFile = new File("xslt/module-fo.xslt");
> >                TransformerFactory trFactory = 
> > TransformerFactory.newInstance();
> >                Transformer transformer = null;
> >                try {
> >                        transformer = trFactory.newTransformer(new
> > StreamSource(xsltFile));
> >                } catch (TransformerConfigurationException e)
> > {e.printStackTrace();}
> >                Result res = null;
> >                try {
> >                        res = new SAXResult(fop.getDefaultHandler());
> >                } catch (FOPException e) { e.printStackTrace(); }
> >                try {
> >                        transformer.transform(src, res);
> >                } catch (TransformerException e) { e.printStackTrace();}
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to