Fichier pdf endommagé lors de la generation à partir d'un fichier xsl-fo
Bonjour,
Lors de la generation du fichier PDF à partir d'un .fo, utilisant fop v0.94. je compile le programme correctement sans warn ni Errors, Tandis qu'il genere un fichier pdf endommagé.
Si quelqun a une idée sur la cause de ce Pb, Merci de me donner la piste,
La classe java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| //Java
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
/**
* Convertir un document XML vers PDF
*/
public class ExampleXML2PDF {
private static Log LOG = LogFactory.getLog(ExampleXML2PDF.class);
public void fopTransformer(File input) {
Source src = new StreamSource(input);
FopFactory fopFactory = FopFactory.newInstance();
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
OutputStream out = null;
File outputFile = new File("filePDF2.pdf");
try {
out = new BufferedOutputStream(new FileOutputStream(outputFile));
} catch (FileNotFoundException e) {
LOG.error(e);
}
Fop fop = null;
try {
fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
} catch (FOPException e) {
LOG.error(e);
}
TransformerFactory trFactory = TransformerFactory.newInstance();
Transformer transformer = null;
try {
transformer = trFactory.newTransformer();
} catch (TransformerConfigurationException e) {
LOG.error(e);
}
Result res = null;
try {
res = new SAXResult(fop.getDefaultHandler());
} catch (FOPException e) {
LOG.error(e);
}
try {
transformer.transform(src, res);
} catch (TransformerException e) {
LOG.error(e);
}
}
public static void main(String[] args) {
try {
System.out.println("FOP ExampleXML2PDF ");
System.out.println("Preparing...");
File input = new File("xml/xslt/exemple2.fo");
ExampleXML2PDF app = new ExampleXML2PDF();
app.fopTransformer(input);
System.out.println("Success!");
} catch (Exception e) {
LOG.error(e);
System.exit(-1);
}
}
} |
et voici mon fichier .fo:
Citation:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="main"
margin-top="36pt" margin-bottom="36pt"
page-width="8.5in" page-height="11in"
margin-left="72pt" margin-right="72pt">
<fo:region-body margin-bottom="50pt" margin-top="50pt"/>
</fo:simple-page-master>
</fo:layout-master-set>
<!-- Definition of a page sequence -->
<fo:page-sequence master-reference="main">
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="14pt" line-height="17pt">
Bonjour,
exemple pour voir la generation du pdf a partir d'un fichier xml.
Salutations
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Si vous voulez des infos suplementaires, merci de me les indiquer
D'avance ;)