Java 使用Apache FOP生成的PDF为空

Java 使用Apache FOP生成的PDF为空,java,xml,xslt,apache-fop,Java,Xml,Xslt,Apache Fop,我目前正在为一个公司项目开发一个模块,并使用ApacheFop2.3从xmls生成PDF 我在使用FOP时遇到问题,当我尝试使用我们的测试文件测试实现时,FOP生成几乎为空的PDF,它们唯一的内容是: %PDF-1.4 %клмн 我得到了一份工作 org.apache.fop.fo.ValidationException:“fo:table row”缺少子元素。所需内容模型:(表格单元格+)(无上下文信息可用) 错误。 我已尝试在fop.conf文件中将严格验证器设置为false,但这对异常没

我目前正在为一个公司项目开发一个模块,并使用ApacheFop2.3从xmls生成PDF

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

%PDF-1.4 %клмн 我得到了一份工作
org.apache.fop.fo.ValidationException:“fo:table row”缺少子元素。所需内容模型:(表格单元格+)(无上下文信息可用)

错误。 我已尝试在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输出。

从错误消息判断,FO标记无效。如果缺少表单元格子元素,则必须添加这些子元素。这就是我们所能说的。如果您需要更具体的帮助,请提供一个.Yup,我已经开始检查FOP2.3命令行版本以获取更多信息,并且我发现了错误。