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      
目次
fdf_open — FDF ドキュメントをオープンする
fdf_close — FDF ドキュメントを閉じる
fdf_create — 新規 FDF ドキュメントを作成する
fdf_save — FDF ドキュメントを保存する
fdf_get_value — フィールドの値を得る
fdf_set_value — フィールドの値を設定する
fdf_next_field_name — 次のフィールド名を得る
fdf_set_ap — フィールドの外観を設定する
fdf_set_status — /STATUS キーの値を設定する
fdf_get_status — /STATUS キーの値を得る
fdf_set_file — /F キーの値を設定する
fdf_get_file — /F キーの値を得る