PHPlibはPHPでPDFファイルをハンドルするための有償ライブラリである。
下記の3形態がある。
A | PDFlib単体(73,500円) | 真っ白なPDFファイルに自分で座標を指定して文字や線を引くことしかできない。 |
B | PDFlib+PDI(147,000円) | Aに加えて、既存の PDFファイルを読み込むことができる。 |
C | PPS[PDFlibパーソナライゼーションサーバ](220,000円) | Bに加えて、AdobeAcrobatのプラグインとして「ブロック」を設置できるようになる。PHPからはブロック名を直接指定できるので、座標を意識する必要がなくなる。 |
通常の帳票出力では「ひな型を使用して可変項目をプログラムから出力する」というのが一般的だろう。
それを行うためには最低でもB、デザインとプログラムを分離して行うのであればCが必要となる。
座標の単位は「PDFポイント」と呼ばれる独自単位である。「1ポイント≒0.3528mm」なので、当然誤差が発生する。
また、マニュアルでは座標をメートル法に拡大する関数(PDF_scale(p, 28.3465, 28.3465))が紹介されているが、このAPIを使うとフォントのポイントや線の幅などにも影響するようなので、自分で変換用のメソッドを作った方が無難だ。
/* ================================================== */
/* 指定値をセンチメートルからPDFポイントに変更する
/* 指定する箇所は直感的に分かりやすいcm単位で指定し、
/* APIに渡す直前にPDFポイントに変換する
/* ================================================== */
function ChangeScaleFromCentiMeter($val) {
$val = $val * 28.3465;
return $val;
}
/* ================================================== */
通常の座標系のように(x1,y1)=左上、(x2,y2)=右下ではなく、(x1,y1)=左下、(x2,y2)=右上となる。
y軸が反転しているので要注意。
ライセンス購入前は、技術的質問は受け付けてくれない。
例えば「指定領域への均等割付を行う」場合に、「Q:均等割付はできますか?」→「A:できる」と答えてくれるが、その方法は教えてもらえない。
またライセンス購入後は5インシデントあたり5万円で技術的質問を受け付けている。
コスト的に見て「技術的サポートは受けられない」という場合が多いのではないだろうか。
パッケージのCを購入できず、自分で座標を指定することになった場合は、フリーウェアの「FPDF」の利用も検討してみてはどうだろうか。
FPDF日本語サイト