PHP

2012-11-02, php

PDF生成ライブラリ検討

PHPで業務アプリ、となった時にやっぱり気になるのが印刷環境です。某ネットスーパーではブラウザの表示そのままを納品書にしちゃうという荒技を使っていて、フッタにアプリのURLがそのまま載っていたりします。必要な情報も読める訳ですから、これでも問題無いのかもしれませんが、やはり少しは格好を付けたいということでPHPでPDFを生成するライブラリを調査してみました。

単一ページの帳票ならCSSのメディアクエリやSVG或いはHTMLのcanvasあたりで何とかならなくもなさそうですが、やはり複数ページを奇麗にフォーマットしようと思うとPDFが一つ抜き出ているような感があります。

以下は2012/11/01時点でウェブから拾い集めた情報(噂話含む)を元に、かなり主観的に評価しています。検証して駄目だった、とあるものも私の検証手順自体に誤りがある可能性も十分に考えられます。その点を割り引いてご参照下さい。

PDFlib

PHPの公式サイトを検索して最初に見つかったライブラリです。機能豊富でメンテナンスも継続されているようですが、ライセンス体系が有償かつ複雑で、一体幾ら払えば使わせて貰えるのか良く分かりません。

FPDF

こちらはフリーなライブラリです。機能もドキュメントも揃っていますが、残念ながらそのままでは日本語が扱えません。公式サイトのトップから掲示板らしきページにリンクが貼ってあって日本語対応版を公開して下さっている方が居ますが、これが使えるかどうかは未検証です。

MBFPDF

(URL無し) PHPで日本語のPDFを作りたい、とウェブを探すと出てくるキーワードなのですが、実体が何なのか不明です。ひょっとしてFPDFの掲示板で配布されてるパッチか何かのことでしょうか?

TCPDF

公式サイトもあるし、書籍(英語)での参照も多いし、開発が続いているし、ということで最有力候補だったのですが、日本語の文字化けを解消できませんでした。プリインストールされた小塚ゴシックという書体で一応(化けずに)出力できるのですが、字間の調整などがイマイチで見栄えが良くありません。

mPDF

FPDFをベースにUTF8対応などの拡張がなされたライブラリです。これも有力候補でしたが、うまく動かせず。下記のブログによると、どうやら本体に手を入れないと動かないようです(未検証)。

mPDF Version 5.4 の日本語文字化けを直す方法
[[http://d.hatena.ne.jp/susan-style/20120321/1332308489]]

次点: jsPDF

PHPじゃなくてJavaScriptのライブラリです。こういうのを作る人をチャレンジャと呼ぶのでしょうか。文字と四角形を書く以上の機能が実装されているのか(され得るのか?)不明です。フォントの埋め込みとかどうするんでしょう?

参考URL

各見出し下のURLを参照して下さい。

この記事は役に立ちましたか?