我们有一个编辑器,用于设计目录模板。它基本上是为了设计目的。首先,我们在编辑器中设计一个模板,并以该模板格式绑定我们的数据。然后我们从前端获取HTML格式的模板。从该模板,我需要绑定数据并生成带有目录(索引)的pdf文件。
许多人建议使用itext
库。但我的要求是不将html页面转换为pdf。我必须根据用户动态生成的html模板转储我的所有产品数据。
任何人都可以建议如何实施吗?
答案 0 :(得分:7)
有一些开源和一些付费选项。如果您可以使用AGPL许可下的产品,itext imho将带来最佳结果。
如果您正在寻找开源/免费
另一个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
此答案由<< strong> Bruno Lowagie creater提供。
http://support.itextpdf.com/node/113
有不同的方法可以解决这个问题。
解决方案1 :您可以在第一遍中创建带书签的PDF,而无需担心目录。然后在第二个过程中,您将生成的PDF用于创建基于书签的TOC,并使用TOC创建新的PDF,然后是内容。
解决方案2 :您可以同时创建两个PDF文件,一个包含实际内容,另一个包含TOC。一旦创建了所有内容,就可以连接两个文件:首先是TOC,然后是实际内容。
解决方案3 :您可以将TOC的所有条目保留在内存中,在文档末尾添加这些条目,然后重新排序页面。
这三种解决方案是第一个浮现在脑海中的解决方案(基于本书中的例子);可能还有其他方法可以做到。
您需要考虑一个主要难题:页码数量是多少?
如果您查看Manning书(例如“iText in Action”),您会看到TOC编号为i,ii,iii,iv,v,...而实际内容编号为1, 2,3,4,5,......
如果你想避免这种情况,如果你想从头开始为第1,2,3,4,5,6,7 ......页编号,那么你可以在“两次通过”中创建PDF的解决方案是最好的,因为您可以等到第二遍之后添加页码(只有那时你知道TOC中有多少页)。
同时检查链接