0

如何动态地为在 acrobat 中创建的现有条形码赋值。

我按照本指南以 pdf 格式创建了条形码。

当我在表单字段中输入内容时,条形码确实会使用这些值进行更新。然而,问题是,pdf 是通过 ruby​​ 代码动态生成的,并且表单是预填充的。但是,条形码不包括动态填写到 pdf 表单中的数据。如果我对 pdf 表单数据进行任何更改,条形码将重新加载并且现在包含整个表单数据,但是当第一次打开生成的 pdf 时不会发生这种情况。

总结一下。

1) 将条形码添加到 pdf 表单并添加 javascript 以计算条形码值。

2) 条形码随着表单数据的变化而更新为新计算的值。

3)动态填写步骤1中创建的pdf表单。所有表单字段都已填写,但条形码不包含数据。

4) 如果我对在 3 中创建的 pdf 中的数据进行更改,条形码将重新绘制,并在服务器上填充所有数据,并且还包括我刚刚所做的数据更改。

问题出在第 3 步,当 pdf 表单在服务器上填充数据时,我希望条形码包含数据。

PS,我已经使用pdf-forms在服务器上填写 pdf。我也尝试过 itext java api 来填写表格。此外,对于 pdf-forms 和 itext ,我都尝试为条形码提供初始值。但是,如果我这样做,条形码甚至不会显示在生成的 pdf 中,而是显示提供的值。

PS第二。我还能够使用 itext 生成条形码图像。但是,当用户更改生成的 pdf 中的表单数据时,我需要更新此条形码。显然图像没有更新。因此我尝试了上述在pdf中使用脚本来即时计算条形码值的方法。

4

1 回答 1

1

首先要了解一件事。在 PDF 中,字段的值和它在页面上的外观是两个不同的东西。在 Acrobat 中创建时,条形码字段的实际上是根据您在创建时在 UI 中的选择来计算的。Acrobat 会在字段中注入一些 JavaScript,这样当用户输入新数据时,会重新计算字段的值,并且 Acrobat 可以生成新的外观对于条形码字段(图像)。如果您只更新服务器上字段的值,但没有在文档上将“needs Appearances”属性设置为 true,Acrobat 将不知道重新生成条形码外观。但是,您可以生成条形码外观并通过 iText 进行设置,但您需要知道 JavaScript 计算才能这样做。一旦设置了值和外观并设置了需求外观属性,表单应该可以正常工作。

由于您尝试了多个库,我将再推荐一个。Datalogics PDF Java Toolkit 实际上可以为您完成所有这些工作,而无需知道条形码代表什么字段数据。您只需用数据填充非条形码字段,告诉 Toolkit 计算表单并生成外观,它就可以工作了。条码的呈现方式与在 Acrobat 中填写时的呈现方式完全相同。

于 2017-02-03T15:10:52.180 回答