public void generatePdfFile(String xmlFilePathString, String xslFilePathString, String pdfFilePathString)
{
try {
//Setup input and output files
File xmlFile = new File(xmlFilePathString);
File xslFile = new File(xslFilePathString);
File pdfFile = new File(pdfFilePathString);
//Construct driver
Driver driver = new Driver();
m_logger.setPriority(Priority.INFO);
driver.setLogger(new org.apache.avalon.framework.logger.LogKitLogger(m_logger));
driver.setLogger(new org.apache.avalon.framework.logger.NullLogger());
//Setup Renderer (output format)
driver.setRenderer(Driver.RENDER_PDF);
//Setup output
OutputStream out = new java.io.FileOutputStream(pdfFile);
driver.setOutputStream(out);
//Setup XSLT
TransformerFactory factory = TransformerFactory.newInstance();
//Transformer transformer = factory.newTransformer(new StreamSource(xslFile));
Source xsl = new StreamSource(xslFile);
Transformer transformer = factory.newTransformer(xsl);
//Setup input for XSLT transformation
Source src = new StreamSource(xmlFile);
//Resulting SAX events (the generated FO) must be piped through to FOP
Result res = new SAXResult(driver.getContentHandler());
//Start XSLT transformation and FOP processing
transformer.transform(src, res);
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
Partager