使用JavaScript提取PDF表单数据并写入CSV文件



我得到了一个带有表单的PDF文件。表单是而不是格式的表。我的要求是提取表单字段值,并将它们写入可以导入Excel的CSV文件。我试过在acrobatpro中使用自动的"将数据文件合并到电子表格"菜单项,但输出包括标签和表单字段值。我感兴趣的主要只是表单字段值。

我想使用JavaScript来提取表单数据,并指示JavaScript如何编写CSV(因为我知道最终电子表格应该是什么样子)。我已经提取了表单字段:

this.getField("Today_s_Date").value;

和以下这篇文章:如何写一个文本文件在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'});

在本例中,.csv将被机器上的默认csv程序作为临时文件打开。或者你可以省略nLaunch,给用户一个文件保存对话框。

最新更新