PHPでPDF出力に挑戦中

C#が一応終わって、いよいよObjective-C開発やってiPhoneアプリ作ろうと。自分がやりたいことは加速度センサを使うので、それを使えるところまで、先週確認した。さて、今週からやるぞ~!!と思ってたら、今度はPHPの仕事をやってほしいそうだ…。うちのプログラマのほかの2人はiPhoneアプリ開発の佳境に入っているので、動けるのは俺だけっつーことで、まあしゃーないかということで、久々にPHPです。久々っていっても、1ヶ月ぶりくらいだろうか?

今回は、PHPでPDFを出力してほしいということだ。俺はPHPでPDFの出力をまだやったことないので、新しい技術を手に入れるまたとない機会だなぁということで、話を聞いていると案件はあるけれど資料はまだ全然来てませんだと…。それでやってくださいって言われてもなぁ~…。というても、やるべきことはだいたいわかっているわけだから、PHPでPDF出力がちゃんとできるかというところまでを確認しとくかと思い、とりあえずやってみることに。

今回はフォーム1ページと確認ページ程度なので、フレームワークとか使うのもオーバースペックなので、サラッと3つのphpファイルを書いた(確認ページからPDFファイルを出力するため、3つ)。

PDF出力をするためのライブラリとして、候補に挙がったのが、Zend_Pdf。ちゅーことでZend_Pdfを使ってやってみたが、日本語が出ない…。デフォルトで使えるフォントでは、マルチバイト文字に対応できてないみたいだった。

IPAフォントをダウンロードしてきて、ゴシックフォントをパス指定で使ってみたら、サーバタイムアウトした。php.iniを編集して、タイムアウトを120秒(デフォルトでは60秒)にしたところ、ちゃんと日本語が出力された。なるほど、処理はできている。が、あまりにも長い…。これでは使い物にならん。

読み込んだPDFからフォントを取得し、そのフォントを使ってPDFを更新できるとあったので、適当なPDFファイルを読み込んでやってみようとしたら、フォントがない場合もあるみたいで、ダメだった。うーん、まだわからんことが多いけれど、とりあえず重過ぎる。Zend_PdfはZend Frameworkのバージョンが1.5になるまではマルチバイト対応もできてなかったということだから、まだ信頼性に欠けるのかもしれない。

青マンモス本を見たら、FPDFというフリーのPDF出力ライブラリもあるようだった。MBFPDFというマルチバイト対応に拡張されたものがあるみたいで、これをインストールするところまで行った。明日はこれを試してみることにする。それにしても、Zend Frameworkって、微妙にマルチバイトに弱いよな~…。いや、俺が知らないだけなんだろうか?


タグ PHP, 日記 | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です