はじめに
PHPでPDFを作成する場合にはPDFLibやmPDF、FDPDFなどさまざまな選択肢がありますが、ライセンス、パフォーマンスなどの点で問題がある場合に、Haruの利用を検討してみてはいかがでしょうか。
HaruはZLibやPNGと同様に、非常に緩いライセンス形態を取っているため、サービスの種類を問わず組み込みやすい点に特徴があります。
また、PHPのネイティブエクステンションとして提供されているため、PHPのライブラリとしてパフォーマンスが出ない場合にも利点があります。
とはいえ、サイト上にもあまり情報がなく、日本語の利用に関して不安があるかもしれません。しかし最初にいくつか挙げたライブラリは、元々は海外発信のライブラリでした。対して、HaruはlibharuというCのライブラリのエクステンションであり、libharuは日本が発信元となっていますので、日本語に関しても安心して利用できます(現在のメンテナンスは日本人ではなくなっています)。
対象読者
PHPでの基本構文を理解している方で、帳票印刷やPDFファイルに興味がある方を対象としています。
必要な環境
この記事では、以下のライブラリを使用しています。
- libharu 2.1
- haru 1.0.4
また、PHP5.4を使用し、Linuxで動作を確認しています。
Haruのインストール
libharuは、以下のいずれかの方法でインストールできます。
# yum install libharu
# wget http://libharu.org/files/libharu-2.1.0.tar.gz # tar xvfz libharu-2.1.0.tar.gz # cd libharu-2.1.0 # ./configure; make; make install
PHPのHaruは、libharu2.2以上での利用はできません。必ず2.1をインストールしてください。
また、PHPのエクステンションは以下のようにインストールできます。
# pecl install haru
PDFの注意点
HaruのAPIは、他のライブラリに比べ、PDF内部仕様に近いAPIです。従って、Haruを使うためには、最低限のPDFの仕様についても知っておくと便利です。特に注意する点として、PDFの座標軸があります。
PDFでは通常、人が意識する左上が(0,0)で右下に向かって座標が広がるのではなく、左下が(0,0)になっており、右上に向かって座標が広がっています。少々分かりづらいので、下図をみると分かりやすくなります。
Y軸は0に向かって記述していくようになるので、注意してください。
また、サイズも多少計算が面倒になっています。例えば、A4の横サイズは595.27600097656となっており、インチの概念で計算されています。従ってミリで計算する際には「(mm)×72÷25.4」などを使って、近似値を求める必要があります。