使用 Apache FOP 生成的 PDF 为空



我目前正在为一个公司项目开发一个模块,正在使用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 文件中将严格验证器设置为 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 输出。

最新更新