加筆修正いろいろ面倒PHPからPDFファイルが生成できる有名ライブラリであるFPDFは、どうもすでに古いライブラリのようです。昨今ではPDFを生成するPHPを開発するんなら別の新し目のライブラリを利用した方がいいという空気になっているっぽく、ほとんどの参考サイトが古い情報のままでした。そのためか、FPDF最新版で色々準備しようとしたところすんなりいきませんでした。いうことで、今回、現在(2014.3)最新版のFPDF1.7でも、表題の目的が果たせるように試行錯誤しましたので、ご参考にしていただければと思います。FPDF本体をダウンロード2014.3現時点では1.7が最新バージョンです。これをダウンロードします。ダウンロードページダウンロードしたら解凍してください。ここではfpdfというディレクトリにします。これに全て詰め込んでいきます。マニュアルやチュートリアルは公式サイトでも確認できるので、余計なディレクトリやファイルは削除します。必要な方は残しててもいいですが。fpdf/font/fpdf/makefont/fpdf/fpdf.phpちなみに、この今ダウンロードしたFPDFのライブラリだけだと、なんと日本語が扱えないという致命的な問題があり、別途プログラムが必要となります。FPDF日本語対応、japanese.php!FPDFの日本語対応のため、以下サイトからjapanese.zipをダウンロードし、解凍して出来たjapanese.phpをfpdfに入れてください。japanese.phpこのサポートサイトにはmbfpdf10b.zipというマルチバイト対応の別アプローチも用意されていますが、今回は使いません。いうかデッドリンクでダウンロード出来ないですね・・。fpdf/font/fpdf/makefont/fpdf/fpdf.phpfpdf/japanese.phpテンプレートを読み込むためのFPDI次に、既存のPDFファイルをテンプレート的に読み込むことができるFPDIというライブラリがあります。名前がややこしいですので間違えないように。以下サイトからFPDF_TPLとFPDIと書いてある箇所からそれぞれダウンロード・解凍し、同様にfpdfディレクトリに入れてください。fpdf/font/fpdf/makefont/fpdf/fpdf.phpfpdf/japanese.phpfpdf/fpdf_tpl.phpfpdf/filters/fpdf/fpdi.phpfpdf/fpdi_pdf_parser.phpfpdf/fpdi2tcpdf_bridge.phpfpdf/pdf_context.phpfpdf/pdf_parser.phpライブラリの修正さて、ファイルは揃ったのですが、このままでは使えません。動くようにライブラリ自体に手を入れる必要があります。以下のように修正と追加をしてください。修正どうもTCPDFというものが邪魔をして、FPDFクラスが読み込まれないという自体が起きているらしくエラーになるため、回避策として、fpdf_tpl.phpの冒頭に以下のように1行を追加します。PHPのNoticeエラーを非表示にするPDFを生成する際にライブラリからNoticeエラーが出る場合があるので、PDFをブラウザに直接出力する場合などに支障がある場合は、該当のPHPファイルのPDF生成を呼ぶ前に以下の行を追加してNoticeエラーを非表示にしておくといいです。~E_NOTICE);エラーメッセージの抑制はphp.iniや.htaccessで設定してもいいのですが、私的には他の必要な箇所ではNoticeが出て欲しかったりするので、部分的に書いています。準備完了!ライブラリの方はこれで準備完了です!あとは実際にPDFを生成するプログラムを書いていけばいいです。実はこの今用意したライブラリ群は、内部では文字コードをUTF-16で処理を行うため、各種関数に渡す文字列をUTF-8→UTF-16の変換を施してから渡す必要があります。サンプルプログラム以下サンプルPHPは、文字コードUTF-8で記述して下さい。同パスに適当なtemplate.pdfを配置してお試し下さい。ご参考になれば幸いです。ちなみに、FPDFのCell()やMultiCell()を使うと多々文字化けするようですので、改行処理を自力で書いてText()を使うのが良さそうです。特定商取引法に基づく表記よくある質問お問い合せプレミアム会員サイトマップカザオキラボページ先頭へ。