使用 Apache FOP 生成的 PDF 为空

PDF generated with Apache FOP is empty

我目前正在为一个公司项目开发一个模块,我正在使用 Apache FOP 2.3 从 xml 生成 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 文件中将严格验证器设置为 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 并且工作正常。但是,在更改为最新版本后,我遇到了这些问题。

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

从那以后我更正了我的 xsl 文件,它们生成了正确的 pdf 输出。