从html模板动态生成pdf文件,并在java中生成目录

时间:2015-05-07 10:23:50

标签: java html pdf itext

我们有一个编辑器,用于设计目录模板。它基本上是为了设计目的。首先,我们在编辑器中设计一个模板,并以该模板格式绑定我们的数据。然后我们从前端获取HTML格式的模板。从该模板,我需要绑定数据并生成带有目录(索引)的pdf文件。

许多人建议使用itext库。但我的要求是不将html页面转换为pdf。我必须根据用户动态生成的html模板转储我的所有产品数据。

任何人都可以建议如何实施吗?

1 个答案:

答案 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://docraptor.com/

http://pd4ml.com/

http://pdfcrowd.com/web-html-to-pdf-java/

http://www.aspose.com/docs/display/pdfjava/Convert+HTML+to+PDF+Format

http://www.princexml.com/

关于TOC

此答案由<< 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中有多少页)。

同时检查链接

http://itextpdf.com/sandbox/merge/MergeWithToc

How to generate a Table of Contents "TOC" with iText?