使用ApacheFOP从Java生成PDF

Bel*_*zle 4 xml pdf xslt xsl-fo apache-fop

我试图从Java对象生成即时PDF报告.我还没有找到很多这方面的例子,所以我一直在关注这个例子:

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

这段代码与我自己的唯一真正区别在于我使用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.

由于我没有对变形金刚的了解,并且无法找到那种文档来告诉我它应该如何工作,我真的不知道变换在哪里崩溃.

任何体验这种转换,或理解我缺少的任何经验都非常感谢.

Ale*_*tis 6

Apache FOP的输入是XSL:FO.错误消息是输入不是有效的XSL:FO文档,因为第一个(根)元素应该是"fo:root"但是找到了"html".FOP不读取HTML输入.我建议以较小的步骤分解代码并保存中间文档以帮助您识别问题.步骤是:

  1. JSON对象被序列化为XML
  2. XML使用XSLT转换为XSL:FO
  3. XSL:FO使用FOP转换为PDF.