【问题标题】:Generate pdf file dynamically from html template and produce table of contents in java从html模板动态生成pdf文件并在java中生成目录
【发布时间】:2015-07-17 20:41:42
【问题描述】:

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

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

谁能建议如何实现它?

【问题讨论】:

    标签: java html pdf itext


    【解决方案1】:

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

    关于目录

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

    同时检查链接

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

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

    【讨论】:

    • 你能建议我如何为 pdf 生成目录,就像一本有索引的书一样。谢谢
    猜你喜欢
    • 2011-01-09
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 2019-12-10
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多