【问题标题】:Extract PDF Form Data Using JavaScript and write to CSV File使用 JavaScript 提取 PDF 表单数据并写入 CSV 文件
【发布时间】:2015-08-15 06:16:29
【问题描述】:

我收到了一个带有表格的 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:控制台:执行“

理想情况下,我不想使用在线第三方工具来执行此操作,因为数据很敏感。但是,如果您有任何建议,请告诉我。理想的输出是 CSV 文件,最终业务用户可以在 Excel 中打开该文件以查看她选择的电子表格格式。

以前有人做过吗?也愿意听取任何替代解决方案。提前致谢!

【问题讨论】:

  • Downvoter 你能解释一下如何改进这个问题吗?谢谢

标签: javascript forms csv pdf acrobat


【解决方案1】:

您的代码应该可以工作,确保在控制台中运行它时选择了整个代码。

出于安全原因,您可以在没有用户交互的情况下从 Acrobat 输出的内容受到限制。关于可以从 PDF 的here 输出的内容进行了很好的讨论,如果您还没有,请务必在reference 中查看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,并为用户提供文件保存对话框。

【讨论】:

  • 非常感谢代码 sn-p。我想我误解了如何使用 createDataObject 和 exportDataObject。您的回答将帮助我在概念验证中走得更远。再次非常感谢!
  • @jss 如果您提供完整的.tex 和此代码 sn-p ,它可能会对包括我在内的其他人有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多