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

时间:2015-02-17 17:22:12

标签: javascript php pdf adobe acrobat

我有一个PDF表单,我想提交给远程php脚本。我以为我有它工作,但似乎只有在Adobe Reader XI中查看表单时才有效。提交按钮似乎无法在Adobe 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阅读器兼容吗?任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

几个方面:

•到目前为止,脚本没问题,因为它在Reader XI中工作(它也应该在Acrobat中工作)。

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

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

•FORGET Preview.app !!! Preview.app不支持(Acrobat)JavaScript,因此会忽略该脚本。但更糟糕的是,在保存填充的表单时,Preview.app会以不再可用的方式弄乱文档。如果您的用户使用Preview.app的可能性更高,则必须通过默认情况下使其不可填写来保护表单,并使用文档级脚本使其可填写。事实上,如果您的表单也将在iDevices等上使用,那么这可能是必要的。

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