FOP:javaxml->;pdf转换速度比控制台慢6倍
我使用ApacheFop从xml生成带有xsl:foXSL样式表的PDF文件。 传入的XML(存储在StringWriter中)大约有266000-300000行。结果PDF大约有250-300页 Java大约在30-35秒内生成相同的文件。如果我只使用控制台,那么在大约5-6秒内生成相同的文件 下面是java代码的摘录,该代码处理XML和XSL:FO并生成PDFFOP:javaxml->;pdf转换速度比控制台慢6倍,java,xml,pdf,xslt,apache-fop,Java,Xml,Pdf,Xslt,Apache Fop,我使用ApacheFop从xml生成带有xsl:foXSL样式表的PDF文件。 传入的XML(存储在StringWriter中)大约有266000-300000行。结果PDF大约有250-300页 Java大约在30-35秒内生成相同的文件。如果我只使用控制台,那么在大约5-6秒内生成相同的文件 下面是java代码的摘录,该代码处理XML和XSL:FO并生成PDF Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, outPutStream);
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, outPutStream);
TransformerFactory transformerFactory = new net.sf.saxon.TransformerFactoryImpl();
Transformer transformer = transformerFactory.newTransformer(new StreamSource(xsltFile));
transformer.setParameter("versionParam", "2.0");
transformer.setParameter("interval", messagingService.getReportInterval());
transformer.setParameter("clientId", messagingService.getReportClientId());
transformer.setParameter("clientName",messagingService.getReportClientName());
transformer.setParameter("transactionTime", messagingService.getReportTransactionTime());
transformer.setParameter("transactionReceipt", messagingService.getReportReceipt());
transformer.setParameter("bruttoAmount", messagingService.getReportBruttoSum());
transformer.setParameter("feeAmount", messagingService.getReportFee());
transformer.setParameter("nettoAmount", messagingService.getReportNettoSum());
transformer.setParameter("currency", messagingService.getReportCurrency());
transformer.setParameter("total", messagingService.getReportTotal());
Source source = new StreamSource(new StringReader(xmlSource.toString()));
Result result = new SAXResult(fop.getDefaultHandler());
transformer.transform(source, result);
也许我做错了什么,或者有一个技巧可以提高性能