Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

XXXIForms Data Format 関数

Forms Data Format (FDF)は、PDFドキュメント内部のフォームを処理する ためのフォーマットです。FDFの詳細および一般的な用途については、 http://partners.adobe.com/asn/developer/acrosdk/forms.htmlにあるドキュメン トを参照下さい。

注意 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 ドキュメントからのデータを書き込みます。

テキストエディタでFDFドキュメントの中を見てみると、 FDFという名前のカタログオブジェクトが見つかるは ずです。このようなオブジェクトには、Fields, F, Status といった複数のエン トリが含まれます。 最も多く使用されるエントりは、一連の入力フィールドを指す Fieldsとこのデータが属するPDFドキュメントのファ イル名を保持するF です。これらのエントリは、 FDFドキュメントの中で/F-Keyまたは /Status-Keyのように参照されてい ます。 fdf_set_file()および fdf_set_status()のような関数によりこれらのエン トリを修正することが可能です。Fields は、 fdf_set_value(),fdf_set_opt() 等で修整可能です。

以下の例でフォームデータの評価に関して説明します。

例 1FDF ドキュメントの評価

<?php
// FDF データをテンポラリファイルに保存します。
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// テンポラリファイルをオープンし、データを評価します。
// PDF フォームは、volume, date, comment, publisher, preparer という名前の
//テキスト入力フィールドと show_publisher および show_preparer
// というチェックボックスを有します。
$fdf = fdf_open("test.fdf");
$volume = fdf_get_value($fdf, "volume");
echo "volume フィールドは次の値を有します。 '<B>$volume</B>'<BR>";

$date = fdf_get_value($fdf, "date");
echo "date フィールドは次の値を有します。 '<B>$date</B>'<BR>";

$comment = fdf_get_value($fdf, "comment");
echo "comment フィールドは次の値を有します。 '<B>$comment</B>'<BR>";

if(fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "publisher フィールドは次の値を有します。 '<B>$publisher</B>'<BR>";
} else
  echo "publisher は、表示されません。<BR>";

if(fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo "preparer フィールドは次の値を有します。  '<B>$preparer</B>'<BR>";
} else
  echo "preparer は、表示されません。<BR>";
fdf_close($fdf);
?>
目次
fdf_add_doc_javascript -- Adds javascript code to the FDF document
fdf_add_template -- テンプレートをFDFに追加する
fdf_close -- FDF ドキュメントを閉じる
fdf_create -- 新規 FDF ドキュメントを作成する
fdf_errno -- Return error code for last fdf operation
fdf_error -- Return error description for fdf error code
fdf_get_ap -- Get the appearance of a field
fdf_get_attachment -- Extracts uploaded file embedded in the FDF
fdf_get_encoding -- Get the value of the /Encoding key
fdf_get_file -- /F キーの値を得る
fdf_get_status -- /STATUS キーの値を得る
fdf_get_value -- フィールドの値を得る
fdf_get_version -- Gets version number for FDF api or file
fdf_header -- Sets FDF-specific output headers
fdf_next_field_name -- 次のフィールド名を得る
fdf_open_string -- Read a FDF document from a string
fdf_open -- FDF ドキュメントをオープンする
fdf_save_string -- Returns the FDF document as a string
fdf_save -- FDF ドキュメントを保存する
fdf_set_ap -- フィールドの外観を設定する
fdf_set_encoding -- FDF文字エンコーディング
fdf_set_file -- /F キーの値を設定する
fdf_set_flags -- フィールドのフラグを設定する
fdf_set_javascript_action -- フィールドの javascript アクションを設定する
fdf_set_opt -- フィールドのオプションを設定する
fdf_set_status -- /STATUS キーの値を設定する
fdf_set_submit_form_action -- フィールドのjavascriptアクションを設定する
fdf_set_target_frame -- Set target frame for form display
fdf_set_value -- フィールドの値を設定する
fdf_set_version -- Sets version number for a FDF file