使用Apache FOP生成的PDF为空

时间:2018-06-06 13:52:52

标签: java xml xslt apache-fop

我目前正在为公司项目开发一个模块,并且正在使用Apache FOP 2.3从xmls生成pdf。

我在使用FOP时遇到问题,当我尝试使用我们的测试文件测试实现时,FOP生成几乎空的pdf,它们唯一的内容是:

%PDF-1.4 %клмн

我得到了一个  org.apache.fop.fo.ValidationException: "fo:table-row" is missing child elements. Required content model: (table-cell+) (No context info available)

错误。 我已经尝试在fop.conf文件中将strict validator设置为false,但这对异常没有帮助。

这是我的pdf代码:

FopFactory fopFactory = FopFactory.newInstance(FOPCONFIGFILE);
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, destination);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(xslFile));
JDOMSource docEntreeJDOM = new JDOMSource(docJDOM);
org.w3c.dom.Document doc = transformJdomToDom(docJDOM);
Result result = new SAXResult(fop.getDefaultHandler());
transformer.transform(docEntreeJDOM, result);

模块使用fop 0.20.5并且工作。但是在更改到最新版本后,我一直遇到这些问题。

1 个答案:

答案 0 :(得分:0)

我在我的xsl和示例文件上使用了命令行版本的Apache-FOP 2.3来从日志中获取更多信息(因为eclipse没有给出错误的上下文或行)。

此后我修正了我的xsl文件并生成了正确的pdf输出。