我有一个包含许多表单域的 PDF 表单。我的要求是将表单数据(其中一些)导出为网络驱动器上的 excel(xls)格式,该驱动器正在被另一个进程(我无权访问或更改代码)拾取并使用以加载到单击 PDF 上的按钮时使用 Acrobat Javascript 的数据库。由于这是一种分布式形式并且网络驱动器很常见,因此设置与数据库的 ODBC 连接没有意义,我也无权这样做。
我遇到的问题是:
- 我需要专门命名工作表,以便该过程正确处理 xls 文件。
- 我需要在不提示用户的情况下将信息保存到网络驱动器,下面的代码就是这样做的。
- 导出到 xls 时,fieldNames 似乎丢失了空格。
到目前为止,我尝试过的任何事情都没有奏效,我所提供的任何参考资料都没有提供此类信息。我可以将数据推送到 .csv 和 .txt 文件中,并尝试创建一个新的报告,如下所示:
var rep = new Report();
var values = "";
...
rep.writeText(values);
var docRep = rep.open("myreport.pdf");
docRep.saveAs("/c/temp/Upload.txt","com.adobe.acrobat.plain-text")
docRep.closeDoc(true);
app.alert("Upload File Saved", 3);
但它只允许 .txt 扩展名,而不是 xls 或 csv 扩展名。我设法以另一种方式导出 csv。
下面是我的一小段代码:
var fieldNames = [];
var result ="";
fieldNames.push("Inn Code");
fieldValues.push('"' + this.getField("Hotel Info Inn Code").value + '"');
fieldNames.push("Business Unit");
fieldValues.push('"' + this.getField("Hotel Info Business Unit").value + '"');
for ( var i=0; i < fieldNames.length; i++ ) {
result += (fieldNames[i] + "\t");
}
for ( var i=0; i < fieldValues.length; i++ ) {
result += (fieldValues[i] + "\t");
}
this.createDataObject({cName: "Upload.xls", cValue: cMyC});
this.exportDataObject({cName: "Upload.xls", nLaunch: 0});
提供的任何帮助或建议将不胜感激!