【问题标题】:Generating custom pdf layout with Apache PDFBox Library according to a given template?根据给定模板使用 Apache PDFBox 库生成自定义 pdf 布局?
【发布时间】:2019-03-06 06:35:30
【问题描述】:

如何使用 Pdfbox 库根据模板生成自定义 pdf 布局?

这是模板: layout template


如果它有更优雅的方式来实现结果,我也愿意使用其他库。该项目需要使用从数据库中获取的数据填充 PDF,因此如果库可以将 id's 分配给 PDF 布局中的特定字段,将会很有帮助。

例如:在附加的模板中,为字段Faculty Name添加一个id = fname,以便可以将数据库中的数据添加到该特定框中,而不是填充文本。

我认为解决此类问题的理想方法是拥有一个template.(xml/html) 和一个库,该库可以生成一个PDF 解析该模板及其对应的id's


我找到的候选库:

1:iText7

2:wkhtmltopdf


我们正在使用的堆栈:

前端:带引导程序的 Thymeleaf 模板引擎

后端:Spring-Boot、Hibernate。

数据库:H2(用于测试)

构建工具:Maven


现在您有了问题的上下文,如何从 数据库并根据模板填充PDF?

【问题讨论】:

  • 如果您需要更多有关问题的上下文,请告诉我。
  • 可能是 xfdf 文件?也可以使用 java 代码在 PDFBox 中创建 acroform PDF 文件,但这是一项相当多的工作,参见例如源代码下载中的 CreateSimpleForm.java 示例。
  • 如果你想使用wkhtmltopdf,你必须像你的布局模板一样创建一个thymeleaf页面。您必须在此页面上填充值。然后你可以将该html页面生成为pdf。
  • @TilmanHausherr 谢谢,.xfdf 文件看起来很有希望。
  • @AvijitBarua 是的,那是我们最后的选择。不过感谢您的回答。 :)

标签: java database spring pdf-generation pdfbox


【解决方案1】:

使用模板提供布局是一种很好的方法,原因有很多,而且由于您对其他方法持开放态度,因此您可能会查看 Docmosis。它使用 Word 或 Libre Office 文档作为模板,并与 JSON 或 XML(或其他)数据合并。

有一些可视化的template examples here 让您了解如何使用您展示的“布局模板”,将其草拟成 Word 或 Libre Office 文档,并将其用作 Docmosis 的模板。

一旦您的模板设计完成,您将通过 Docmosis 运行它并使用数据将 PDF 结果细化为您需要的内容。

请注意我为 Docmosis 工作。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2015-03-23
    • 2016-05-31
    • 2016-09-19
    • 2012-10-16
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多