【问题标题】:PDF forms in Java [closed]Java中的PDF表单[关闭]
【发布时间】:2023-04-06 16:29:01
【问题描述】:

我有一组使用 Word 设计的表单。我需要填写这些表格并保存为 PDF。所有这些都在 Java 中以编程方式实现。

我探索了以下可能性:

  • Word 为空 -> PDF AcroForm -> 用 PDFBox 填充

  • Word 以编程方式填充 -> 转换为 PDF

  • Word 为空 -> XHTML -> 使用飞碟填充并保存为 PDF

  • Word 为空 -> 为 Apache FOP 转换为特殊 XML

到目前为止,第一种可能性我遇到了以下困难:

  • 很难创建动态表

  • PDFBox 无法正确管理 RTL 文本

对这些解决方案有什么好的经验吗?

【问题讨论】:

  • 您能否创建一个空的可填写 PDF 表单?如果是这样,您可以使用 iText 填充 PDF 表单并将其展平以创建该表单的填充副本。很久以前就用过iText了,挺好的..
  • 我查看了 iText - 它不是免费的,我不确定最后一个免费版本 2.1.7 的性能如何。我提到的问题之一是动态表。 PDF 中没有表格的概念,因此我在 Word 中创建它,但随后我必须在表格中预先分配很多行,其中大部分通常为空。
  • 哦,它不再免费了?大约 7 到 8 年前它免费时我就使用过它,它做得很好。因此,如果您仍然可以获得它的副本,您可能可以继续。但同样,如果您遇到任何错误,他们现在可能不会为此类旧版本提供任何支持。

标签: java pdf ms-word pdfbox


【解决方案1】:

几年前,我为我的一位客户做过类似的实施。我使用 open office 创建模板并使用 iText 生成 PDF。看看有没有帮助。

步骤:

创建模板:

  1. 在 open office 中打开一个新文档并创建一个新文档。转到“查看”并进行“表单设计”模式
  2. 输入代表模板静态部分的文本。
  3. 打开“表单设计”模式后,将添加相应的工具栏,如上图所示。现在单击“文本框”并在文档中插入一个文本框。双击文本框并在其中插入所需的输入。
  4. 创建模板文档后,保存并将文档导出为 PDF,此文档将用作创建 PDF 的模板

使用 iText 填写模板:

下一步是读取模板并填充模板以动态生成 PDF。 iText 提供了一个 PdfReader 来阅读 PDF 文件和 PdfStamper 来修改或添加内容到 PDF 文档。由于模板是 PDF 文件,PdfReader 将读取模板,PdfStamper 将使用实时数据动态填充字段。以下是步骤

1.使用 iText PdfReader 阅读 PDF 模板。模板可以放在文件系统中的任何位置。但在现实生活中的项目场景中,它应该放在项目文件夹中。

  1. 使用 PdfReader 和 ByteArrayOutputStream 作为参数创建一个 PdfStamper。
  2. 使用 PdfStamper 对象的实例填充模板字段。 setField () 方法将键和值作为参数。 “key”应该是在模板创建期间给出的文本框的“Name”。请确保“key”与“Name”字段相同。否则该字段将不会被填充。
  3. 填充必填字段后,使用 PdfReader 对象关闭 PdfStamper。

参考:http://itext-pdfcreation-template.blogspot.in/

【讨论】:

    猜你喜欢
    • 2013-02-11
    • 1970-01-01
    • 2010-09-09
    • 2011-06-25
    • 2018-07-06
    • 2011-04-28
    • 2011-03-15
    • 2011-05-13
    • 2012-01-08
    相关资源
    最近更新 更多