gpt4 book ai didi

javascript - 在 JavaScript 中读取 PDF Acroform 字段的值

转载 作者:行者123 更新时间:2023-11-30 11:03:44 30 4
gpt4 key购买 nike

我需要解析一个包含大量 Acroform 字段的 PDF 文件,并为每个字段提取字段名称(PDF 标记中的/T)和值(PDF 标记中的/V)。我想在 JavaScript 中做这个客户端,但我没有找到似乎可以做到这一点的现有示例或库。有人对如何处理它有任何建议吗?

编辑:出于性能原因,我想做这个客户端。我将从 PDF 中获取字段值并将它们保存到数据库中。但对于某些字段,我需要在保存前提示额外输入。我想在客户端完成所有操作,然后将值发送到服务器进行保存,而不是将 PDF 上传到服务器,在服务器上解析它,将需要额外输入的字段发送回客户端,然后发送这些结果进行保存。

最佳答案

我工作的公司有PDFTron WebViewer SDK您可以在浏览器中阅读所有表单字段、读取/编辑值、所有客户端,还可以允许用户查看整个 PDF 并手动填写任何字段。

样本:https://www.pdftron.com/webviewer/demo/pdf-forms

I need to parse a PDF file with a lot of Acroform fields and extract the field name (/T in PDF markup) and value (/V in PDF markup) for each field.

您可以在上面链接的 pdf-forms 示例中看到实时代码,但下面的代码将迭代所有字段并将值(如果有)打印到控制台。

viewerElement.addEventListener('ready', function() {
var viewerInstance = viewer.getInstance();

const docViewer = viewerInstance.docViewer;
const annotManager = docViewer.getAnnotationManager();
const fieldManager = annotManager.getFieldManager();

const checkField = (field) => {
// Do something with data
const { name, value } = field;
console.log(name + ' ' + value);
// Check children fields
field.children.forEach(checkField);
}

docViewer.on('annotationsLoaded', function() {
fieldManager.forEachField(checkField);
});
});

I will be taking the field values from the PDF and saving them to a database.

如果您只需要字段值,您可以从 WebViewer 轻松获取 PDF ISO XFDF XML 格式,您可以将其发送到您的服务器并使用任何支持 XFDF 的 PDF SDK 合并到 PDF。这样,您就可以避免来回传输整个 PDF,而只需将更小的表单字段值作为 XML 发送。

var xmlXfdfFieldData = annotManager.exportAnnotations({fields:true, widgets:false, links:false});

for some of the fields I will need to prompt for additional input before saving.

WebViewer UI/UX 是完全可定制的,因此您可以与用户交互/提示用户更新哪些字段。

下面的示例展示了如何更改表单域的颜色和不透明度,这是您可以用来应用您自己的业务逻辑的起点。

https://www.pdftron.com/documentation/web/guides/form-samples#customizing-form-fields

关于javascript - 在 JavaScript 中读取 PDF Acroform 字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56569018/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com