【发布时间】:2015-07-17 20:41:42
【问题描述】:
我们有一个用于设计目录模板的编辑器。它基本上是为了设计目的。首先,我们在编辑器中设计一个模板,并以该模板格式绑定我们的数据。然后我们从前端获取 HTML 格式的模板。从该模板中,我需要绑定数据并生成带有目录(索引)的pdf文件。
许多人建议使用itext 库。但我的要求是不要将html页面转换为pdf。我必须根据用户动态生成的html模板转储我所有的产品数据。
谁能建议如何实现它?
【问题讨论】:
我们有一个用于设计目录模板的编辑器。它基本上是为了设计目的。首先,我们在编辑器中设计一个模板,并以该模板格式绑定我们的数据。然后我们从前端获取 HTML 格式的模板。从该模板中,我需要绑定数据并生成带有目录(索引)的pdf文件。
许多人建议使用itext 库。但我的要求是不要将html页面转换为pdf。我必须根据用户动态生成的html模板转储我所有的产品数据。
谁能建议如何实现它?
【问题讨论】:
有一些开源和一些付费选项。如果您可以在 AGPL 许可下使用产品,itext 恕我直言会带来最好的结果。
如果您正在寻找开源/免费
又一个 Html 到 Pdf 转换器 ==> http://www.allcolor.org/YaHPConverter/
wkhtmltopdf ==> http://wkhtmltopdf.org/
PDF 框 ==> 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
此答案由 itext 的创建者 Bruno Lowagie 提供。
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、...最好,因为您可以等到第二遍再添加页码(只有这样您才知道 TOC 中有多少页)。
同时检查链接
【讨论】: