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

How do I dynamically give a value to an existing barcode created in acrobat

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

我按照 this 指南创建了 pdf 格式的条码。

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

总结一下。

1) 在 pdf 表单中添加了条形码并添加了 java 脚本来计算条形码值。

2) 随着表单数据的更改,条形码会更新为新计算的值。

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

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

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

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

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

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

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