使用Java从HTML模板动态生成PDF文件,并生成目录。

7
我们有一个用于设计目录模板的编辑器,它主要用于设计目的。首先,在编辑器中设计模板并将数据绑定到该模板格式中。然后我们从前端获取以HTML格式的模板。从该模板中,我需要绑定数据并生成带有目录(索引)的PDF文件。
许多人建议使用itext库。但我的要求不是将HTML页面转换为PDF。我必须根据用户动态生成的HTML模板转储所有产品数据。
有人能提供如何实现吗?
1个回答

9

有一些开源和付费的选择。如果您可以使用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://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

本答案由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时采用“两步法”解决方案,因为您可以等待第二步添加页码(只有在此之后才知道目录中有多少页)。
还要检查链接。

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

如何使用iText生成目录 "TOC"?


你能建议我如何生成PDF的目录,就像一本书有索引一样。谢谢。 - SivaTeja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接