XXXVII. Forms Data Format 関数
導入
Forms Data Format (FDF)は、PDF ドキュメント内部のフォームを処理する ためのフォーマットです。FDF の詳細および一般的な用途については、 http://partners.adobe.com/asn/acrobat/forms.jsp にある ドキュメントを参照ください。
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 および F で、 Fields は 一連の入力フィールドを指し、 F は このデータが属する PDF ドキュメントのファイル名を保持します。 これらのエントリは、FDF ドキュメントの中で /F-Key または /Status-Key として参照されています。 fdf_set_file() および fdf_set_status() のような関数により、これらの エントリを修正することが可能です。Fields は、 fdf_set_value() 、 fdf_set_opt() 等で修整可能です。
要件
http://partners.adobe.com/asn/acrobat/forms.jsp から取得可能な FDF toolkit SDKが必要です。 PHP 4.3 以降では、少なくとも SDK version 5.0 が必要です。 FDF toolkit library はバイナリ版のみ利用可能で、 Adobe によりサポートされているプラットフォームは Win32、Linux、Solaris、AIX です。
インストール手順
--with-fdftk[=DIR]
を指定して PHP を コンパイルする必要があります。
注意: fdftk サポートを指定して PHP を設定した際に問題を発生した場合、 ヘッダファイル fdftk.h および ライブラリ libfdftk.so が正しい場所にあることを 確認してください。configure スクリプトは、FDF SDK 配布ファイルおよび 通常の DIR/include 、 DIR/lib といった配置のディレクトリ構造をともに サポートします。このため、配布ファイルを展開したディレクトリにそのまま おいておくか、あるいは /usr/local/include および /usr/local/lib のように使用するプラットフォームに 応じた適当なディレクトリに移動して
--with-fdftk=/usr/localを指定して 設定することが可能です。
Win32 ユーザへの注意: Windows 環境でこのモジュールを有効にするには、PHP/Win32 バイナリ パッケージの DLL フォルダから fdftk.dll を 使用する Windows マシンの SYSTEM32 フォルダ (例: C:\WINNT\SYSTEM32 あるいは C:\WINDOWS\SYSTEM32 ) へコピーする必要があります。
実行時設定
設定ディレクティブは定義されていません。
リソース型
fdf
多くの fdf 関数は、最初のパラメータとして
fdf
リソースを必要とします。
fdf
リソースは、オープンした fdf ファイルの ハンドルです。
fdf
リソースは、
fdf_create()
、
fdf_open()
、
fdf_open_string()
を用いて取得することが可能です。
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
- FDFValue ( integer )
-
- FDFStatus ( integer )
-
- FDFFile ( integer )
-
- FDFID ( integer )
-
- FDFFf ( integer )
-
- FDFSetFf ( integer )
-
- FDFClearFf ( integer )
-
- FDFFlags ( integer )
-
- FDFSetF ( integer )
-
- FDFClrF ( integer )
-
- FDFAP ( integer )
-
- FDFAS ( integer )
-
- FDFAction ( integer )
-
- FDFAA ( integer )
-
- FDFAPRef ( integer )
-
- FDFIF ( integer )
-
- FDFEnter ( integer )
-
- FDFExit ( integer )
-
- FDFDown ( integer )
-
- FDFUp ( integer )
-
- FDFFormat ( integer )
-
- FDFValidate ( integer )
-
- FDFKeystroke ( integer )
-
- FDFCalculate ( integer )
-
- FDFNormalAP ( integer )
-
- FDFRolloverAP ( integer )
-
- FDFDownAP ( integer )
-
例
以下の例でフォームデータの評価に関して説明します。
- 目次
- fdf_add_doc_javascript -- FDF ドキュメントに javascript コードを追加する
- fdf_add_template -- テンプレートを FDF ドキュメントに追加する
- fdf_close -- FDF ドキュメントを閉じる
- fdf_create -- 新規 FDF ドキュメントを作成する
- fdf_enum_values -- 各ドキュメントの値に対してユーザ定義関数をコールする
- fdf_errno -- 直近の fdf 操作に関するエラーコードを返す
- fdf_error -- 直近の fdf エラーコードについての説明を返す
- fdf_get_ap -- フィールドの外観を取得する
- fdf_get_attachment -- FDF に埋め込まれている、アップロードされたファイルを展開する
- fdf_get_encoding -- /Encoding キーの値を取得する
- fdf_get_file -- /F キーの値を得る
- fdf_get_flags -- フィールドのフラグを取得する
- fdf_get_opt -- フィールドのオプション配列から値を取得する
- fdf_get_status -- /STATUS キーの値を得る
- fdf_get_value -- フィールドの値を得る
- fdf_get_version -- FDF API あるいはファイルのバージョンを取得する
- fdf_header -- FDF 固有の出力ヘッダをセットする
- fdf_next_field_name -- 次のフィールド名を得る
- fdf_open_string -- 文字列から FDF ドキュメントを読み込む
- fdf_open -- FDF ドキュメントをオープンする
- fdf_remove_item -- フォームのターゲットフレームを設定する
- fdf_save_string -- FDF ドキュメントを文字列として返す
- fdf_save -- FDF ドキュメントを保存する
- fdf_set_ap -- フィールドの外観を設定する
- fdf_set_encoding -- FDF 文字エンコーディングを設定する
- fdf_set_file -- FDF データを表示する PDF ドキュメントを設定する
- fdf_set_flags -- フィールドのフラグを設定する
- fdf_set_javascript_action -- フィールドの javascript アクションを設定する
- fdf_set_on_import_javascript -- Acrobat が FDF をオープンした際に実行される javascript のコードを追加する
- fdf_set_opt -- フィールドのオプションを設定する
- fdf_set_status -- /STATUS キーの値を設定する
- fdf_set_submit_form_action -- フィールドの投稿フォームアクションを設定する
- fdf_set_target_frame -- フォームの表示対象となるフレームを設定する
- fdf_set_value -- フィールドの値を設定する
- fdf_set_version -- FDF ファイルのバージョン番号を設定する