将 PDF 表单提交到 PHP 脚本仅适用于 Adob​​e Reader XI

Submitted a PDF form to a PHP script only works in Adobe Reader XI

我有一个 PDF 表单,我想提交给远程 php 脚本。我以为我让它工作了,但它似乎只在 Adob​​e Reader XI 中查看表单时才工作。提交按钮在 Adob​​e Reader 10 或 Mac 上的预览器中似乎没有任何作用。这是 javascript 我让按钮在单击时执行。它提交整个 PDF 并传递电子邮件地址和名称以根据 php 脚本与之通信的数据库中的记录进行验证。

var email = getField("Your email").valueAsString;

var name = getField("Your name").valueAsString;  // get name field
name = name.replace(/(^[\s]+|[\s]+$)/g, '');        // trim spaces 
name = name.replace("'", "\'");                    // change O'Neil to O\'Neil 
name = "'"+name+"'";

email = email.replace(/(^[\s]+|[\s]+$)/g, '');  

console.println("Your Plan is Being sent");

this.submitForm({
cURL: "http://example.com/thescript.php?name="+name+"&email="+email,
cSubmitAs: "PDF"});

这里是否有某些语法与某些 pdf 阅读器不兼容?任何建议将不胜感激。

几个方面:

• 该脚本到目前为止还不错,因为它在 Reader XI 中有效(它也应该在 Acrobat 中有效)。

• cSubmitAs: "PDF" 要求保存填写的表格。这仅在 Reader XI 中不受限制是可能的;在早期版本中,您必须为表单分配扩展权限,以使其可保存。

• 您可以在Reader X 中激活控制台,以查看是否确实存在错误消息。

• 忘记 Preview.app!!! Preview.app 不支持 (Acrobat) JavaScript,因此脚本会被忽略。但更糟糕的是,在保存填写的表格时,Preview.app 以一种不再可用的方式弄乱了文档。如果您的用户更有可能使用 Preview.app,您必须通过默认使其不可填写来保护表单,并使用文档级脚本使其可填写。事实上,如果您的表单也将用于 iDevices 等,那可能是必要的。

除了提到的问题之外,可能需要在 cURL 中对特殊字符进行编码。