XVII. Forms Data Format 関数
Forms Data Format (FDF) は、PDFドキュメント内部のフォームを処理する
ためのフォーマットです。
FDFの詳細および一般的な用途については、http://partners.adobe.com/asn/developer/acrosdk/forms.html
にあるドキュメントを参照下さい。
注意:
現在、Adobe は Linux 用 libc5 互換版のみを提供しています。
glibc2 でテストを行うとセグメント例外を生じます。
動作させることができた場合は、このページにコメントして下さい。
注意:
fdftk サポートを有効にして php の configure を行う際に問題を発生した
場合、ヘッダーファイル FdfTk.h およびライブラリ libFdfTk.so が
正しい場所にあるかどうかを確認して下さい。これらは、それぞれ
fdftk-dir/include および fdftk-dir/lib にある必要があります。
FdfTk の配布ファイルを単に解凍しただけだとしたら、このように
はなりません。
FDFの基本的な考えは、HTMLフォームに似ています。
基本的な違いは、投稿ボタンが押された際に
フォームに埋められたデータをサーバーに送信する方法の
フォーマット(これがForm Data Format そのものです)および
フォームのフォーマット自体(これは Portable Document Format、PDFです)
です。FDFデータの処理は、fdf関数に提供された機能の一つです。
しかし機能は他にもあります。
既存のPDFフォームを用いてフォーム自体を修正せずに入力フィールドのデータを
入力させることもあるかと思われます、
このような場合、FDFドキュメント を作成(fdf_create())、
各入力フィールドの値を設定(fdf_set_value())、
PDFフォームとそれを関連付け(fdf_set_file())ます。
最後にブラウザに MIME型 application/vnd.fdf で送信する必要があります。
ブラウザの Acrobat Reader プラグイン がこの MIME 型を認識し、
関連する PDF フォームを読み込み、FDF ドキュメントからのデータを
書き込みます。
次の例でフォームデータの評価に関して説明します。
例 1. FDF ドキュメントの評価 1
2 <?php
3 // Save the FDF データをテンポラリファイルに保存します。
4 $fdffp = fopen("test.fdf", "w");
5 fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
6 fclose($fdffp);
7
8 // テンポラリファイルをオープンし、データを評価します。
9 // PDF フォームは、volume, date, comment, publisher, preparer という名前の
10 //テキスト入力フィールドと show_publisher および show_preparer
11 // というチェックボックスを有します。
12 $fdf = fdf_open("test.fdf");
13 $volume = fdf_get_value($fdf, "volume");
14 echo "volume フィールドは次の値を有します。 '<B>$volume</B>'<BR>";
15
16 $date = fdf_get_value($fdf, "date");
17 echo "date フィールドは次の値を有します。 '<B>$date</B>'<BR>";
18
19 $comment = fdf_get_value($fdf, "comment");
20 echo "comment フィールドは次の値を有します。 '<B>$comment</B>'<BR>";
21
22 if(fdf_get_value($fdf, "show_publisher") == "On") {
23 $publisher = fdf_get_value($fdf, "publisher");
24 echo "publisher フィールドは次の値を有します。 '<B>$publisher</B>'<BR>";
25 } else
26 echo "publisher は、表示されません。<BR>";
27
28 if(fdf_get_value($fdf, "show_preparer") == "On") {
29 $preparer = fdf_get_value($fdf, "preparer");
30 echo "preparer フィールドは次の値を有します。 '<B>$preparer</B>'<BR>";
31 } else
32 echo "preparer は、表示されません。<BR>";
33 fdf_close($fdf);
34 ?>
35 |
|