从生成XML的PDF使用ApacheFOP的Java(Generating PDF from XML

2019-09-18 02:50发布

我试图从生成Java对象的即时PDF报告。 我一直没能找到许多这样的例子,所以我一直下面这个例子:

http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/examples/embedding/java/embedding/ExampleObj2PDF.java?view=markup

这段代码和我自己之间唯一的区别是,我使用JSON转换和一个XmlSerializer生成SRC(在本例线81)。

我遇到的问题是使用变压器。 当我变换(实例中的线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.

由于我没有可视性变压器,并一直没能找到那种文档告诉我它是如何工作的,我真的不知道是哪里的变换打破。

与这种转换的任何经验,或了解什么它是我缺少的是极大的赞赏。

Answer 1:

Apache的FOP的输入是XSL:FO。 该错误消息是说,输入不是有效的XSL:FO文档,因为第一(根)元素预计为“FO:根”,而是“HTML”被发现。 FOP不读取HTML的输入。 我建议打破在较小的步骤的代码并保存中间文件,以帮助您确定问题。 步骤如下:

  1. JSON对象序列化到XML
  2. XML是使用XSLT来XSL转换:FO
  3. XSL:FO使用FOP以PDF转换。


Answer 2:

您需要按照本教程以您的XML转换为XSL:FO。 从那里,你将能够使用你已经提到的例子。

http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/examples/embedding/java/embedding/ExampleXML2FO.java?view=markup



文章来源: Generating PDF from XML in Java using ApacheFOP