这是我的情况。我们有一个基于Web的应用程序,可以在html页面中呈现可编辑的PDF,允许用户填写PDF表单。 HTML页面上(PDF外)有一个提交按钮,用户可以单击该按钮将PDF输入提交到服务器。
这一切现在都在使用标准的Acroforms。它的工作方式是:
HTML提交按钮,使用javascript pdf.postMessage API向要提交表单的PDF发送消息。
pdf.postMessage([ “submitForm”]);
在pdf中,有javascript接收此消息并执行此操作:
function myOnMessage(aMessage){ if(aMessage [0] ==“submitForm”){ var fdf = this.myDoc.exportAsFDFStr(true,true,null,true); this.myDoc.hostContainer.postMessage([“saveFdf”,fdf]); } }
主机容器收到此消息并使用javascript / jQuery将FDF发布到我们的服务器。
pdfObject.messageHandler = { onMessage:function(msg){ if(msg [0] ==“saveFdf”){ $( “#FDF”)VAL(MSG [1])。 $( “#entryForm”)提交()。 } } }
所以这一切都适用于AcroForms。但它显然不适用于XFA LiveCycle表单,因为它们不支持FDF。
我正在寻找的是相当于XFA javascript的这一行。
var fdf = this.myDoc.exportAsFDFStr(true, true, null, true);
本质上是一个API调用,它允许我将用户输入序列化为一个我可以提交给服务器的字符串。我查看了XFA javascript文档,我很难理解它以便找到它。
我看到了在PDF本身上创建HTTP按钮的方法,但这不是我想要做的,因为我希望我的浏览器执行post请求,因为我返回HTML。
可以这样做吗?感谢。