PHPのPDF関数は、Thomas Merzにより作成されたPDFlibライブラリを使用してPDFファイル を作成することが可能です。
本節のドキュメントは、PDFlibライブラリで利用可能な関数の概要のみ を説明することを意図しています。ここで扱う各関すの完全で詳細な説 明については、PDFlibのソース配布ファイルと共に配布されているドキュ メントを参照下さい。このドキュメントは、PDFlib の機能に関 する概要を非常に良くまとめており、全ての関数に関する最新のドキュ メントが含まれています。
PDFlibのほとんどの関数とPHPモジュール内の関数の名前とパラメータは 共通になっています。このモジュールを効率的に使用するには、PDFまた はPostScriptに関する基本的な考え方も理解しておく必要があります。 全ての長さと座標は、Postscriptのポイント数で計られます。通常、1イ ンチ当たり72 Postscript ポイントですが、これは、出力解像度に依存 します。使用する座表系に関するより詳細な説明については、PDFlibの ソース配布に含まれるPDFlibドキュメントを参照下さい。
ほとんど全てのPDF関数は、最初の引数パラメータとして pdf object を必要とすることに注意して下さ い。より詳細な情報については以下の例を参照下さい。
PDFlibは、http://www.pdflib.com/pdflib/index.html でダウンロード 可能ですが、商用で使用する場合はライセンスを購入する必要がありま す。この拡張モジュールをコンパイルするには、JPEGおよびTIFF が必要です。
以下の関数が動作するようにするには、 --with-pdflib[=DIR]を指定してPHPを コンパイルする必要があります。DIRはPDFlibのベースインストールディレ クトリで、デフォルトは/usr/localです。 さらに、PDFlibでjpeg, tiff, pngライブラリを使用することを指定できま す。これは、PDFlib 4.xではオプションです。 これを行うには、configureにオプション --with-jpeg-dir[=DIR] --with-png-dir[=DIR] --with-tiff-dir[=DIR]を追加します。
バージョン3.xのPDFlibを使用する場合、PDFlibのconfigureのオプションに --enable-shared-pdflibを指定する必要があります。
PHP v4.0.5以降、PHPlib用のPHP拡張モジュールは、PDFlib GmbH から正 式にサポートされています。これにより、PDFlibマニュアル(バージョン 3.00以降)に記述された全ての関数がPHP4で全く同じ意味、同じパラメー タでサポートされています。返り値のみは、エラーの場合に FALSEを返すというPHPの流儀に合わせるために PDFlibマニュアルと異なっていることがあります。互換性を保つために PDFlibサポート関数ではまだ古い関数もサポートしていますが、上記の ように新しいバージョンに置換される予定です。PDFlib GmbH は、これら の古い関数を使用した場合に生じた際に生じた問題に関してはサポートを 行いません。
表 1古い関数と代替関数
古い関数 | 代替関数 |
---|---|
pdf_put_image() | もう不要です。 |
pdf_execute_image() | もう不要です。 |
pdf_get_annotation() | 同じパラメータでpdf_get_bookmark()を使用。 |
pdf_get_font() | pdf_get_value() に2番目のパラメータとして "font"を渡す。 |
pdf_get_fontsize() | pdf_get_value() に2番目のパラメータとして "fontsize"を渡す。 |
pdf_get_fontname() | pdf_get_parameter()に2番目のパラメータとして "fontname" を渡す。 |
pdf_set_info_creator() | pdf_set_info()に2番目のパラメータとして "Creator"を渡す。 |
pdf_set_info_title() | pdf_set_info()に2番目のパラメータとして "Title"を渡す。 |
pdf_set_info_subject() | pdf_set_info()に2番目のパラメータとして "Subject"を渡す。 |
pdf_set_info_author() | pdf_set_info()に2番目のパラメータとして "Author"を渡す。 |
pdf_set_info_keywords() | pdf_set_info()に2番目のパラメータとして "Keywords"を渡す。 |
pdf_set_leading() | pdf_set_value()に2番目のパラメータとして "leading"を渡す。 |
pdf_set_text_rendering() | pdf_set_value()に2番目のパラメータとして "textrendering"を渡す。 |
pdf_set_text_rise() | pdf_set_value()に2番目のパラメータとして "textrise"を渡す。 |
pdf_set_horiz_scaling() | pdf_set_value()に2番目のパラメータとして "horizscaling"を渡す。 |
pdf_set_text_matrix() | もう使用できません。 |
pdf_set_char_spacing() | pdf_set_value()に2番目のパラメータとして "charspacing"を渡す。 |
pdf_set_word_spacing() | pdf_set_value()に2番目のパラメータとして "wordspacing"を渡す。 |
pdf_set_transition() | pdf_set_parameter()に2番目のパラメータとして "transition"を渡す。 |
pdf_open() | pdf_new()の後に pdf_open_file()をコールする。 |
pdf_set_font() | pdf_findfont()の後に pdf_setfont()をコールする。 |
pdf_set_duration() | pdf_set_value()に2番目のパラメータとして "duration"を渡す。 |
pdf_open_gif() | pdf_open_image_file()に2番目のパラメータとして "gif" を渡す。 |
pdf_open_jpeg() | pdf_open_image_file()に2番目のパラメータとして "jpeg" を渡す。 |
pdf_open_tiff() | pdf_open_image_file()に2番目のパラメータとして "tiff" を渡す。 |
pdf_open_png() | pdf_open_image_file()に2番目のパラメータとして "png" を渡す。 |
pdf_get_image_width() | pdf_get_value()に2番目のパラメータとして "imagewidth"、3番目のパラメータとして imageを渡す。 |
pdf_get_image_height() | pdf_get_value()に2番目のパラメータとして "imageheight"、3番目のパラメータとして imageを渡す。 |
多くの関数の使用法は簡単です。最も困難なのは、非常に簡単なpdfドキュ メントを作成する場合でしょう。次の例は、入門の際の助けとなるはず です。この例では、1ページを有するファイル test.pdfが作成されます。このページには、30ポ イントのアウトラインフォントでテキスト"Times-Roman outlined"が描 かれます。このテキストには、下線も引かれます。
PDFlibの配布ファイルには、アナログクロックで本格的なページを作成す るより複雑な例が含まれています。ここでは、PDFlibのメモリ内作成機 能を使用しており、このため、テンポラリファイルは不要です。この例 をPHPからPDFlibを使用するように変換すると以下のようになります。 (CLibPDFモジュール)のドキュメント にも同じ例があります。)
例 2PDFlib配布ファイル中の pdfclockの例
|