许多人建议使用itext库。但我的要求不是将HTML页面转换为PDF。我必须根据用户动态生成的HTML模板转储所有产品数据。
有人能提供如何实现吗?
有一些开源和付费的选择。如果您可以使用AGPL许可下的产品,itext会带来最佳结果。
如果您正在寻找开源/免费选项
另一个Html转Pdf转换器 ==> http://www.allcolor.org/YaHPConverter/
wkhtmltopdf ==> http://wkhtmltopdf.org/
PDF Box ==> http://pdfbox.apache.org/
itext ( AGPL(免费) / 商业许可证 ) http://itextpdf.com/pricing
如果您正在寻找付费选项(几乎总是更容易)
http://pdfcrowd.com/web-html-to-pdf-java/
http://www.aspose.com/docs/display/pdfjava/Convert+HTML+to+PDF+Format
本答案由Bruno Lowagie,itext的创始人提供。
http://support.itextpdf.com/node/113
有不同的方法来解决这个问题。
解决方案1: 你可以通过第一次处理创建带书签的PDF,不必担心目录。然后在第二次处理中,根据已生成的PDF创建基于书签的目录,并创建一个新的包含目录和内容的PDF。
解决方案2: 你可以同时创建两个PDF文件,一个实际内容,一个是目录。一旦你创建了所有的内容,你可以将两个文件连接起来:首先是目录,然后是实际内容。
解决方案3: 你可以将目录项保留在内存中,在文档末尾添加这些项,然后重新排序页面。
这三种解决方案是我能想到的(基于本书中的示例);可能还有其他方法。
需要考虑的一个主要困难是什么?分页码如何处理?
如果查看Manning图书(例如“iText in Action”),您会发现目录编号为i、ii、iii、iv、v…,而实际内容则编号为1、2、3、4、5…
如果您想避免这种情况,如果您想从开头对页面进行编号1、2、3、4、5、6、7……,则最好创建PDF时采用“两步法”解决方案,因为您可以等待第二步添加页码(只有在此之后才知道目录中有多少页)。