如何为在 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 中填写时的呈现方式完全相同。
如何为在 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 中填写时的呈现方式完全相同。