1

这是我的情况。我们有一个基于 Web 的应用程序,它在允许用户填写 PDF 表单的 html 页面中呈现可编辑的 PDF。HTML 页面(PDF 外部)上有一个提交按钮,用户可以单击该按钮将 PDF 输入提交到服务器。

这一切现在都适用于标准 Acroforms。它的工作方式是:

  1. HTML 提交按钮使用 javascript pdf.postMessage API 向 PDF 发送一条消息,表明它要提交表单。

    pdf.postMessage(["submitForm"]);

  2. 在 pdf 中,有 javascript 接收此消息并执行以下操作:

    函数 myOnMessage(aMessage) { if (aMessage[0] == "submitForm") { var fdf = this.myDoc.exportAsFDFStr(true, true, null, true); this.myDoc.hostContainer.postMessage(["saveFdf", fdf]); } }

  3. 主机容器收到此消息并使用 javascript/jQuery 将 FDF 发布到我们的服务器。

    pdfObject.messageHandler = { onMessage: function(msg) { if (msg[0]=="saveFdf") { $("#fdf").val(msg[1]); $("#entryForm").submit(); } } }

所以这一切都适用于 AcroForms。但它显然不适用于 XFA LiveCycle 表单,因为它们不支持 FDF。

我正在寻找的是相当于 XFA javascript 的这一行。

var fdf = this.myDoc.exportAsFDFStr(true, true, null, true);

本质上是一个 API 调用,它允许我将用户输入序列化为可以提交给服务器的单个字符串。我查看了 XFA javascript 文档,但我很难很好地理解它以找到它。

我看到了在 PDF 本身上创建 HTTP 按钮的方法,但这不是我想要做的,因为我希望我的浏览器执行发布请求,因为我返回 HTML。

这可以做到吗?谢谢。

4

0 回答 0