|
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7">XClibPDF 関数ClibPDF により、PDF ドキュメントを PHP により作成可能となります。 これは、FastIO にありますが、 フリーソフトウエアではありません。 ClibPDF を使用する前にライセンス規約を詳しく読む必要があります。 ライセンス規約を満たせない場合は、同じく非常に強力なライブラリである Thomas Merz が作成した pdflib を使用することを考えてみてください。 ClibPDF の機能と API は、Thomas Merz の pdflib に似ていますが、 FastIO によれば、ClibPDF はより高速でより小さなドキュメントを 生成します。 この優劣は、新しいバージョン 2.0 の pdflib と比べた場合、 変わる可能性があります。 簡単なベンチマーク (pdflib 2.0 の例 pdfclock.c を php スクリプトに 変換したもの)では、速度に違いは全くありません。ファイルサイズも 圧縮をオフにした場合、同程度です。よって、両者を試してどちらが自分の業務 に適しているかを判断してください。 ClipPDF のマニュアルにはライブラリのより詳細な事項が記述されている ため、このドキュメントは ClipPDF のマニュアルを参照しつつ読む必要 があります。 pdflib と同様に、多くの関数は ClipPDF と PHP モジュールとで 同じ名前となっています。 cpdf_open() を除く全ての関数は、 最初の引数としてドキュメントのハンドルを取ります。 現在のところ、ClipPDF は複数のPDFドキュメントの同時作成をサポートして いないため、このハンドルは内部的に使用されていません。 実際、同時作成時の結果は予想できず、試みるべきではありません。 マルチスレッド環境で、その結果を予想することはできません。 ClipPDF の作者によれば、 将来のリリースではこの点は変更されるとのことです。 (このドキュメントを書いている現在でのバージョンは 1.10 です) この機能を必要な場合は、pdflib モジュールを使用してください。
ClipPDF が pdflib に対して大きく優れているのは、 テンポラリファイルを使用せずに pdf ドキュメントを 完全にメモリー上で作成することが可能であることです。 あらかじめ定義された単位長さの座標を渡す機能も有しています。 この機能は便利ですが、 pdf_translate() で模擬することが可能です。 その他のClibPDFの機能で優れているのは、新規のページのオープン後で あっても任意のページをいつでも修正可能であるという点です。関数 cpdf_set_current_page() により、カレントのペー ジを離れて、他のページを修正できることを前提とすることが可能となり ます。 多くの機能の使用法は非常に容易です。最も困難なのは、おそらく全く新 規に PDF ドキュメントを作成する場合でしょう。次の例は、導入の手助 けとなるはずです。この例では、ページを1つ有するドキュメントを作成 します。このページは、30pt のアウトラインフォントでテキスト "Times-Roman" により書かれます。テキストには下線が引かれます。 pdflib の配布ファイルには、アナログクロックを有する複数ページを作 成するより複雑な例が含まれています。以下に ClipPDF 拡張を使用して この例を PHP に変換したものを示します。
|