我目前正在为公司项目开发一个模块,并且正在使用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并且工作。但是在更改到最新版本后,我一直遇到这些问题。
答案 0 :(得分:0)
我在我的xsl和示例文件上使用了命令行版本的Apache-FOP 2.3来从日志中获取更多信息(因为eclipse没有给出错误的上下文或行)。
此后我修正了我的xsl文件并生成了正确的pdf输出。