我正在尝试从Java对象生成即时PDF报告。我无法找到很多这方面的例子,所以我一直在关注这个例子:
这段代码与我自己的唯一真正区别在于我使用JSON转换和XMLSerializer生成src(示例中的第81行)。
我遇到的问题是使用Transformer。当我进行转换时(示例的第87行),我收到错误消息:
(Location of error unknown)org.apache.fop.fo.ValidationException: First element must be the fo:root formatting object. Found (Namespace URI: "", Local Name: "html") instead. Please make sure you're producing a valid XSL-FO document.
由于我没有对变形金刚的了解,并且无法找到那种文档来告诉我它应该如何工作,我真的不知道变形在哪里发生。< / p>
非常感谢任何有关此类转换的经验,或了解我所缺少的任何内容。
答案 0 :(得分:6)
Apache FOP的输入是XSL:FO。错误消息是输入不是有效的XSL:FO文档,因为第一个(根)元素应该是“fo:root”但是找到了“html”。 FOP不读取HTML输入。我建议以较小的步骤分解代码并保存中间文档以帮助您识别问题。步骤是:
答案 1 :(得分:2)
您需要按照本教程将XML转换为XSL:FO。从那里,您将能够使用您已经提到的示例。