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モジュールは、1種類の変数型を導入します。これは、 pdfdocです。pdfdoc は、pdf ドキュメントへのポインタであり、最初のパラメータとしてほ ぼ全ての関数に必要です。
PHPにおいてpdfサポートが開始されたのは、— pdflib 0.6 — からであるため、特にPDFLIB APIにおいて多くの変更が行われ ています。これらの変更の多くは、PHPによりなんとか対応されてきまし たが、いくつかの変更については、PHP APIの変更が必要でした。PDFLIB 3.x のAPIは安定しているようなので、PHP 4では、このバージョン以降が pdfサポートについて必要としています。結果的に多くの関数が消えたり、 他の関数により置換されたりしています。PDFLIB 0.6のサポートは、完 全に諦められています。次の表には、PHP 4.0.2で廃止され、新しいバー ジョンの関数に置換する必要がある関数全てのリストを示しています。
表 1. 廃止された関数と代替関数
| 古い関数 | 代替関数 |
|---|---|
| pdf_put_image() | もう、不要です。 |
| pdf_get_font() | pdf_get_value() は、 "font" を2番目の引数として渡します。 |
| pdf_get_fontsize() | pdf_get_value() は、 "fontsize"を2番目の引数として渡します。 |
| pdf_get_fontname() | pdf_get_parameter()は、 "fontname"を2番目の引数として渡します。 |
| pdf_set_info_creator() | pdf_set_info()は、 "Creator"を2番目の引数として渡します。 |
| pdf_set_info_title() | pdf_set_info()は、 "Title"を2番目の引数として渡します。 |
| pdf_set_info_subject() | pdf_set_info()は、 "Subject"を2番目の引数として渡します。 |
| pdf_set_info_author() | pdf_set_info()は、 "Author"を2番目の引数として渡します。 |
| pdf_set_info_keywords() | pdf_set_info()は、 "Keywords"を2番目の引数として渡します。 |
| pdf_set_leading() | pdf_set_value()は、 "leading"を2番目の引数として渡します。 |
| pdf_set_text_rendering() | pdf_set_value()は、 "textrendering"を2番目の引数として渡します。 |
| pdf_set_text_rise() | pdf_set_value()は、 "textrise"を2番目の引数として渡します。 |
| pdf_set_horiz_scaling() | pdf_set_value()は、 "horizscaling"を2番目の引数として渡します。 |
| pdf_set_text_matrix() | もう利用出来ません |
| pdf_set_char_spacing() | pdf_set_value()は、 "charspacing"を2番目の引数として渡します。 |
| pdf_set_word_spacing() | pdf_set_value()は、 "wordspacing"を2番目の引数として渡します。 |
| pdf_set_transition() | pdf_set_parameter()は、 "transition"を2番目の引数として渡します。 |
| pdf_set_duration() | pdf_set_value()は、 "duration"を2番目の引数として渡します。 |
| pdf_open_gif() | pdf_open_image_file()は、 "gif"を2番目の引数として渡します。 |
| pdf_open_jpeg() | pdf_open_image_file()は、 "jpeg"を2番目の引数として渡します。 |
| pdf_open_tiff() | pdf_open_image_file()は、 "tiff"を2番目の引数として渡します。 |
| pdf_open_png() | pdf_open_image_file()は、 "png"を2番目の引数として渡します。 |
| pdf_get_imagewidth() | pdf_get_value()は、 "imagewidth"を2番目の引数、imageを3番目の 引数として渡します。 |
| pdf_get_imageheight() | pdf_get_value()は、 "imageheight"を2番目の引数、imageを3番目の 引数として渡します。 |
| () | () |
PDFLIBのバージョン3.0以降では、オプション --enable-shared-pdflibを付けてPDFLIBの configureを行う必要があります。
PDFLIB 2.01を使用している場合、ライブラリがどのようにインストール されているかを確認して下さい。ファイルlibpdf.soまたはそのファイル へのリンクが存在している必要があります。バージョン2.01は、 libpdf2.01.soという名前のライブラリを作成するだけなので、 configure のテストプログラムをリンクする際に見付けることができま せん。libpdf.soからlibpdf2.01.soへのシンボリックリンクを作成する 必要があります。
PDFLIBのバージョン 2.20 では、APIの更なる変更が行われ、中国語と日 本語のフォントがサポートされました。残念なことに、これにより、 (PHP 3ではなく)PHP 4のpdfモジュールにいくつかの変更が生じています。 PDFLIB 2.20 を使用している場合には、pdfドキュメントのメモリ内での 生成を処理する際に注意が必要です。 pdf_set_font()のパラメータencodingは、文字列に 変更されています。これは、例えば、4の代わりに'winansi'を使用しな ければならないことを意味します。
PDFLIB 2.30 を使用している場合、 pdf_set_text_matrix()は廃止されています。 この関数はもうサポートされていません。一般にPDFLIBで生じた変更に 関しては、使用するバージョンのPDFLIBのリリースノートを参照下さい。
2000/3/9以降のバージョンのPHP 4では、3.0より前のバージョンのPDFLIB をサポートしていません。他方、PHP 3では 2.01より新しいバージョンで 使用されているこはできません。(訳注:パッチをあてればPHP 3でも PDFLIB3を使用可能です。)
多くの関数の使用法は簡単です。最も困難なのは、非常に簡単なpdfドキュ メントを作成する場合でしょう。次の例は、入門の際の助けとなるはず です。この例では、1ページを有するファイル test.pdfが作成されます。このページは、30ポイ ントのアウトラインフォントでテキスト"Times-Roman"を有しています。 テキストには下線も引かれます。
PDFLIB配布ファイルには、アナログクロックで本格的なページを作成す るより複雑な例が含まれています。この例をPDFLIBを使用してPHPに変換 すると、次に示すようになります。(clibpdf モジュール)のドキュメントにも同じ例があります。)
例 2. pdflib配布ファイル中の pdfclockの例
以下のPHPスクリプトgetpdf.phpは、pdfドキュ メントを出力するだけのものです。
|