これが私の状況です。ユーザーが PDF フォームに入力できる HTML ページ内で編集可能な PDF をレンダリングする Web ベースのアプリケーションがあります。HTML ページ (PDF の外側) には、ユーザーがクリックして PDF 入力をサーバーに送信できる送信ボタンがあります。
これはすべて、標準の Acroforms で機能するようになりました。仕組みは次のとおりです。
HTML 送信ボタンは、javascript pdf.postMessage API を使用して、フォームを送信したいというメッセージを PDF に送信します。
pdf.postMessage(["送信フォーム"]);
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").submit(); } } }
したがって、これはすべて AcroForms で機能します。ただし、XFA LiveCycle フォームは FDF をサポートしていないため、明らかに機能しません。
私が探しているのは、XFA JavaScript のこの行に相当するものです。
var fdf = this.myDoc.exportAsFDFStr(true, true, null, true);
基本的には、サーバーに送信できる単一の文字列にユーザー入力をシリアル化できるようにする API 呼び出しです。私は XFA JavaScript のドキュメントを見てきましたが、それを見つけるのに十分なほど理解するのに苦労しています。
PDF自体にHTTPボタンを作成する方法はわかりますが、HTMLを返すためブラウザに投稿リクエストを実行させたいので、それは私がやりたいことではありません。
これはできますか?ありがとう。