提问人:Asvinth Saravanan 提问时间:10/24/2023 更新时间:10/30/2023 访问量:99
PDF417 条形码生成可编辑的 PDF
PDF417 Barcode Generate in Editable PDF
问:
我正在研究最终用户填写 pdf 文档并单击按钮以生成带有字段值的条形码的用例......我正在寻找 PDFBox 或 IText7 或 Aspose 中的解决方案。
我使用上述参考资料创建了可编辑的 pdf 文档。
我试过 itext7 和 PDFBox,但没有运气
答:
我不认为这些要求可以直接使用 Aspose.PDF 来实现。您可以在按钮后面指定一个 JavaScript 方法进行触发,然后 Adobe Reader 使用自己的引擎/调试器执行该操作。
您不能告诉 Adobe Reader 使用 Aspose.Barcode 生成条形码图像并将其添加到 PDF 中。
可以尝试一种解决方法。我不确定它是否在所有情况下都有效,但值得一试。即
- 创建一个单独的控制台应用程序,该应用程序使用 Aspose.Barcode 或任何其他 API 生成条形码,并将其保存到某个物理路径。
- 在 PDF 中为按钮创建一个 JavaScript 操作,该按钮可以调用/执行条形码应用程序/.exe 以生成条形码图像
- 通过从物理路径读取图像来显示 PDF 中的图像
使用 Aspose.Barcode 生成条形码图像的代码:
BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©");
gen.Parameters.Barcode.XDimension.Pixels = 2;
gen.Parameters.Barcode.Pdf417.Columns = 3;
gen.Save("Pdf417Basic.png", BarCodeImageFormat.Png);
使用 Aspose.PDF 指定 PDF 按钮后面的 JavaScript 操作的代码:
var userInput = this.getField("userInput").value; // Get user input from the text field
// Execute your console application with userInput as an argument
// You can use the 'app.execMenuItem' function to execute an external command
// For example:
var result = app.execMenuItem("App.exec", "your_console_app.exe " + userInput);
if (result == 0) {
// Success: The console application executed
// Now, you can add the generated image to the PDF
var imageRect = this.getPageBox("Crop", this.pageNum);
this.addImage({
cName: "GeneratedImage",
nPage: this.pageNum,
rCrop: imageRect,
cPath: "path_to_generated_image.jpg"
});
}
上面的 JS Action 可以在按钮后面添加,使用:
field.Actions.OnPressMouseBtn = new JavascriptAction(opendocscript);
您可以尝试上述解决方法。我希望它能对你有所帮助。如果您遇到任何问题,请在官方 Aspose 支持论坛上创建一个帖子,您将获得相应的帮助。我是 Asad Ali,我是 Aspose 的开发人员布道者。
Adobe Acrobat Reader 用户可以通过多种方式轻松导入条形码。但是,最简单的编程可能是通过外部导入作为注释,他们可以像这里一样拖动页面。
尝试在 Acrobat 中生成此类代码是可能的,但对于 2D 或 QR 码来说非常成问题。(应避免使用涉及复杂脚本的动态表单方法,因为这些方法会贬值)
导入可以在无人值守的情况下完成,编程方式与所有表单字段生成相同,使用相同的文本文件调用 Acrobat 阅读器。
%FDF-1.2
%âãÏÓ
1 0 obj
<</FDF<</Annots[2 0 R 3 0 R]/F(java - PDF417 Barcode Generate in Editable PDF - Stack Overflow.pdf)/ID[<><>]/UF(java - PDF417 Barcode Generate in Editable PDF - Stack Overflow.pdf)>>/Type/Catalog>>
endobj
2 0 obj
<</AP<</N 4 0 R>>/C[1 0 0]/CreationDate(D:2023)/F 4/IT/Stamp/M(D:20231030005210Z)/NM(417C0DE1-0000-0000-417C0DE100000001)/Name/MyBarCode1/Page 0/Popup 3 0 R/Rect[77.8321 481.059 317.832 562.059]/Subj(BarCode00000001)/Subtype/Stamp/Type/Annot>>
endobj
3 0 obj
<</F 28/Open false/Page 0/Parent 2 0 R/Rect[594.96 467.0 798.96 581.0]/Subtype/Popup/Type/Annot>>
endobj
4 0 obj
<</BBox[0 0 240 81]/Length 29/Resources<</XObject<</Im0 5 0 R>>>>/Subtype/Form/Type/XObject>>stream
q 240 0 0 81 0 0 cm /Im0 Do Q
endstream
endobj
5 0 obj
<</BitsPerComponent 8/ColorSpace/DeviceGray/Height 9/Length 1080/Subtype/Image/Type/XObject/Width 120>>stream
ÿ ÿ ÿ ÿÿÿ ÿ ÿ ÿ ÿÿ ÿ ÿ ÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿÿ ÿÿÿÿ ÿÿÿ ÿ ÿ ÿ ÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿ ÿÿÿÿ ÿÿÿÿ ÿ ÿ ÿÿ ÿ ÿÿ ÿ ÿ ÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿ ÿÿÿÿÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿ ÿÿ ÿÿÿÿÿÿ ÿÿ ÿ ÿ ÿÿ ÿ ÿÿ ÿ ÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿÿÿÿ ÿÿÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿ ÿÿ ÿ ÿÿÿÿ ÿ ÿ ÿ ÿ ÿÿ ÿ ÿ ÿÿÿÿÿ ÿ ÿÿÿ ÿÿÿÿ ÿ ÿ ÿÿ ÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿ ÿÿÿÿÿ ÿÿÿ ÿ ÿ ÿÿ ÿÿÿÿ ÿ ÿ ÿÿ ÿÿÿÿ ÿÿÿÿÿ ÿ ÿ ÿÿÿ ÿ ÿ ÿÿ ÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿ ÿ ÿÿ ÿ ÿÿÿ ÿ ÿ ÿÿ ÿ ÿ ÿÿÿ ÿÿÿ ÿÿ ÿÿ ÿ ÿ ÿ ÿ ÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿÿÿÿ ÿÿÿ ÿÿ ÿÿ ÿÿ ÿÿÿÿ ÿÿ ÿ ÿÿÿÿÿ ÿÿÿÿ ÿ ÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿÿ ÿÿ ÿ ÿÿ ÿÿÿ ÿÿ ÿ ÿÿ ÿÿÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿ ÿ ÿ ÿÿÿ ÿ ÿÿ ÿÿ ÿÿ ÿ ÿÿÿÿ ÿÿÿÿ ÿ ÿÿ ÿ ÿÿÿ ÿ ÿÿ ÿÿÿÿÿ ÿ ÿÿ ÿ ÿÿ ÿ ÿÿÿ ÿ ÿÿÿ ÿ ÿÿ
endstream
endobj
trailer
<</Root 1 0 R>>
%%EOF
这种方法最大的编程障碍是如何根据数据内容对图像进行黑白编程。
ÿ
通过更改文件名和其他值来玩这个数据文件,然后双击 TEXT。FDF 应该让 Reader 一起打开这两个文件,以便 PDF 环绕图像。
您还可以在PDF打开时使用不同的条形码修改文本文件,第二个将替换您眼前的第一个! 请注意,错误的图像会清除第一个图像并抛出错误消息。
所以只是为了证明它有效。我在没有任何其他混乱的情况下洗牌了像素,我们得到了糟糕的像素布局,您当然会使用正确的更改图像。
评论