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]