dgp*_*dgp 5 javascript forms csv pdf acrobat
我收到了一份带有表格的 PDF 文件。该表单未格式化为表格。我的要求是提取表单字段值,并将其写入可导入 Excel 的 CSV 文件。我尝试使用 Acrobat Pro 中的自动“将数据文件合并到电子表格”菜单项,但输出包括标签和表单字段值。我主要对表单字段值感兴趣。
我想使用 JavaScript 提取表单数据,并指导 JavaScript 如何编写 CSV(因为我知道最终的电子表格应该是什么样子)。我已经提取了表单字段:
this.getField("Today_s_Date").value;
在这篇文章:How to write a text file in Acrobat Javascript之后,我尝试使用以下方法写入 CSV:
var cMyC = "abc";
var doc = this.createDataObject({cName: "test.txt", cValue: cMyC});
但我收到以下错误:
“SyntaxError:语法错误 1:控制台:Exec”
理想情况下,我不想使用在线第三方工具来执行此操作,因为数据很敏感。但如果您有建议,请告诉我。理想的输出是 CSV 文件,最终业务用户可以在 Excel 中打开该文件以查看她选择的电子表格格式。
以前有人这样做过吗?也愿意听取任何替代解决方案。提前致谢!
您的代码应该可以工作,请确保在控制台中运行时选择整个代码。
出于安全原因,无需用户交互即可从 Acrobat 输出的内容受到限制。这里对 PDF 的输出内容进行了很好的讨论,如果您还没有讨论过,请务必查看参考资料exportDataObject()中的内容。
一个让您继续前进的示例——您可以在表单上放置一个按钮,该按钮将迭代表单中的每个字段,将它们添加到一个数组中,然后该数组可以作为 csv 输出。
就像是:
var fieldValues = [];
for (var i = 0; i < this.numFields; i++)
fieldValues.push(this.getField(this.getNthFieldName(i)).value);
this.createDataObject('output.csv', fieldValues.join());
this.exportDataObject({ cName:'output.csv', nLaunch:'2'});
Run Code Online (Sandbox Code Playgroud)
在此示例中,.csv 将由计算机上的默认 csv 程序作为临时文件打开。或者,您可以省略 nLaunch,并为用户提供一个文件保存对话框。
| 归档时间: |
|
| 查看次数: |
16770 次 |
| 最近记录: |