提交了一个PDF格式的PHP脚本只适用于Adobe阅读器XI


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

我有一个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阅读器不兼容?如有任何建议,我们将不胜感激。

几个方面:

•到目前为止,脚本还可以,因为它在阅读器XI中工作(也应该在Acrobat中工作)。

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

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

•忘记预览.app!!!Preview.app不支持(Acrobat)JavaScript,因此,该脚本被忽略。但更糟糕的是,在保存填写好的表单时,Preview.app会将文档搞砸,使其不再可用。如果用户使用Preview.app的几率更高,则必须通过默认情况下使表单不可填充来保护表单,并使用文档级脚本使其可填充。事实上,如果你的表格也将在iDevices等上使用,这可能是必要的

除了上述问题之外,可能还需要在cURL中编码特殊字符。