3

PDFフォームがサーバーに送信されたことをAdobe Readerでユーザーに通知する方法があるかどうか疑問に思っていましたか? 私は通常のhttp/htmlフォームをphpスクリプトに送信していますが、大したことではありませんが、フォームが送信されたときに何が起こるかについて、ドキュメントやフォーラムなどに大きな「ブラックホール」があるようです。

フォームを送信した後に JavaScript アラートをトリガーする方法はありませんか?? 「ありがとう」と言う別のPDFを返したくありません。それは少し粘着性があります。私はPDFフォームに非常に慣れていないので、FDFを元のドキュメントに戻す方法が必要であると推測しています.

これは本当に簡単なはずです.アドビの誇大宣伝されたPDFテクノロジーは、開発者にとってはるかに使いやすく、アクセスしやすいと思いました..

何か案は??(ああ、なぜ私がウェブではなくPDFフォームを使用しているのか聞かないでください。これは「トップ」から来ているので、開発者として私はそれをしなければなりません..)

4

4 に答える 4

6

投稿先のサーバー スクリプトは、HTTP ヘッダーに次のコンテンツ タイプを含めて応答する必要があります。

「コンテンツ タイプ: アプリケーション/vnd.fdf」

例えば。PHP を使用している場合:

header('Content-Type: application/vnd.fdf')

続いて、alert() ダイアログをトリガーする関連する bastardized-pdf-javascript-mutant-half-bread が続きます。

%FDF-1.2
1 0 obj
<<
/FDF
    <<
    /JavaScript 
        << 
        /Doc 2 0 R
        /After (confirmSend();)
        >>
    >>
>>
endobj
2 0 obj
[ 
(confirmSend) 3 0 R
]
endobj
3 0 obj
<<
>>
stream
function confirmSend()
{
app.alert({
    cTitle : 'title of the window',
    cMsg : 'message',
    nIcon : 3 
});
}
endstream
endobj
trailer
<<
/Root 1 0 R
>>
%%EOF

解決策を見つけるために人生のほぼ 2 週間を無駄にしたので、このメッセージを受け取っていただければ幸いです...

于 2009-10-01T17:29:07.637 に答える
1

私はこれに何日も苦労し、response.writeを使用してFDFを送信したときに、リーダーに表示されない理由を理解しようとしました。手作りのFDFを送信し、FDFツールキットをインストールしてFDF応答を作成してみました。Readerでローカルに開いてポップアップを正しく表示できたため、有効なFDFを作成できましたが、ASP.NETページからFDFを送信している間はFDFを機能させることができませんでした。

その後、インスピレーションが生まれました。FDFを送信する試みの1つで、FDFをファイルに保存し、ストリームリーダーを使用して応答に送り込もうとしました。response.writeの使用に何度も失敗した後、気まぐれに、保存されたfdfファイルにresponse.redirectを試してみましたが、機能しました。以前、Webサイトの登録済みMIME拡張としてfdfを追加し、MIMEタイプとしてapplication/vnd.fdfを追加しました。これで、送信が成功した後、ユーザーはポップアップを受け取ります。C#での簡単な解決策は、次のようになります。

Page.Response.Redirect("success.fdf");
于 2011-04-28T03:27:40.673 に答える
1

これをありがとう!私も何時間もこれに対する解決策を探していました!とてもイライラしました。PDFの送信後に簡単な確認ダイアログボックスを表示するためだけにFDFToolkitをインストールするのはやり過ぎのようです。

私は最終的に試行錯誤を繰り返して次のことを思いつきました(ネット上にはこれに関するドキュメントがまったくないようです):

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF
    <<
    /Status(Thank you. Your details have been submitted and someone will get in touch with regarding your application.)
    >>
>>
endobj
trailer
<</Root 1 0 R>>
%%EOF

上記は、「警告:JavaScriptウィンドウ」の警告を表示せずに、Adobe Readerのダイアログボックスを表示します(または表示する必要があります)。

これが誰かに役立つことを願っています。

于 2009-10-12T06:56:31.623 に答える
0

3日間の検索の後、なんとか答えにたどり着き、phpスクリプトにfdfファイルのヘッダーを追加し、acrobatのURLの最後に「#FDF」を追加することが解決策だったようです。

%FDF-1.2 1 0 obj << /FDF << /JavaScript << /Doc 2 0 R /After (confirmSend();)

> > > endobj 2 0 obj [ (confirmSend) 3 0 R ] endobj 3 0 obj << > stream function confirmSend() { app.alert("フォームは正常に送信されました\nご意見ありがとうございます!", 3) ; } endstream endobj トレーラー << /Root 1 0 R > %%EOF

于 2009-05-04T06:00:19.270 に答える