2017-06-15 73 views
-1

我有一套使用Word设计的表单。我需要填写这些表单并将其保存为PDF。所有这些都是用Java编程的。Java中的PDF表格

我探讨了以下可能性:

  • 字空 - > PDF AcroForm - >填写与PDFBox的

  • 字编程填充 - >转换为PDF

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

  • Word empty - > Converted in special XM L用Apache的FOP

到现在为止,我遇到以下困难与第一种可能性:

  • 很难建立动态表

  • PDFBox的无法管理RTL文本正确

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

+0

您可以创建一个空的可填写PDF表单?如果是这样,您可以使用iText来填写PDF表单并将其扁平化以创建该表单的填充副本。我很久以前用过iText,它很好.. – anacron

+0

我看了一下iText - 它不是免费的,我不确定最新的免费版本2.1.7是如何运作的。我提到的问题之一就是动态表格。在PDF中没有表格的概念,因此我在Word中创建它,但是我必须在表格中预先分配很多行,并且其中大部分通常都是空的。 –

+0

哦,它不是免费的吗?我在7-8年前免费时使用了它,并且它做得很好。所以,如果你仍然可以得到它的副本,你可以继续下去。但是,如果遇到任何错误,他们可能不会再为这些旧版本提供任何支持。 – anacron

回答

2

几年前,我为我的一位客户做了类似的实现。我使用开放式办公室来创建模板并使用iText生成PDF。看看它是否有帮助。

步骤:

创建模板:

  1. 公开赛在开放式办公新文档,并创建一个新文档。转到“查看”并进行“窗体设计”模式
  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()方法将键和值作为参数。 “键”应该是在模板创建期间给出的文本框的“名称”。请确保“密钥”与“名称”字段相同。否则,该字段将不会填充。
  3. 填充必填字段后,使用PdfReader对象关闭PdfStamper。

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