Thomas Merzによるpdfライブラリをインストールしている場合、PHPで pdfファイルを作成するために pdf 関数を使用することができます。 (http://www.pdflib.com/pdflib/index.html で取得可能です。)コンパ イルにはJPEGライブラリおよび TIFFライブラリも必要です。 これら2つのライブラリは、PHP の configure を実行する際にもしばしば 問題を発生します。問題を修正するには、configureのメッセージに従っ て下さい。
pdflibのソース配布ファイルと共に配布されているpdflibに関する素晴 らしいドキュメントを参照して下さい。この文書は、pdflib の機能に関 する概要を良くまとめています。pdflibのほとんどの関数とPHPモジュー ル内の関数の名前は共通になっています。パラメータも同じです。 このモジュールを効率的に使用するには、pdfまたはPostscriptの おおよその考え方も理解しておく必要があります。全ての長さと座標は Postscriptのポイント数で計られます。通常、1インチ当たり 72 Postscript ポイントですが、これは、出力解像度に依存します。
FastIOが作成した Clibpdfを使用したpdfドキュメント作成用の別のPHPモジュールがあります。 このライブラリのAPIは、やや異なっています。詳細は、 Clibpdf 関数の節をご覧下さい。
pdfモジュールは、pdf object という変数の型 を新規に導入します。ほとんど全ての関数は、最初の引数パラメータと して pdf object を必要とします。
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を渡す。 |
| () | () |
PDFlibのバージョン3.0以降では、オプション --enable-shared-pdflibを付けてPDFlibの configureを行う必要があります。
2000/3/9以降のバージョンのPHP 4は、3.0より前のバージョンのPDFlib はサポートしていません。
一方、PHP 3 では 2.01 より新しいバージョンを使用するべきではあり ません。ただし、php3/functions/pdf.c (PHP 3.0.19) のリビジョン 1.61 以降では、PDFlib 3.0 以降を使用可能です。
多くの関数の使用法は簡単です。最も困難なのは、非常に簡単なpdfドキュ メントを作成する場合でしょう。次の例は、入門の際の助けとなるはず です。この例では、1ページを有するファイル test.pdfが作成されます。このページには、30ポ イントのアウトラインフォントでテキスト"Times-Roman outlined"が描 かれます。このテキストには、下線も引かれます。
PDFlibの配布ファイルには、アナログクロックで本格的なページを作成す るより複雑な例が含まれています。ここでは、PDFlibのメモリ内作成機 能を使用しており、このため、テンポラリファイルは不要です。この例 をPHPからPDFlibを使用するように変換すると以下のようになります。 (clibpdfモジュール)のドキュメント にも同じ例があります。)
例 2PDFlib配布ファイル中の pdfclockの例
|