Top > PHP > PDFを作成する

PDFを作成する Edit

各種ライブラリ Edit

FPDF
PDFを作成するライブラリ。古い。
TCPDF
PDFを作成するライブラリ。FPDFより新しい。現在ではこちらの方が主流。HTMLをPDF化させることもできる。日本語TrueTypeフォントも簡単に使える。
FPDI
既存のPDFを読み込むためのライブラリ。FPDFまたはTCPDFと組み合わせて、読み込んだPDFにテキストを追加したりできる。
FPDF_TPL
FDPIを利用するために必ず必要。FPDIと同じ開発元。PDFの仕様で定められたテンプレート機能を利用できる。

TCPDF+FPDIが一番いい(2012-04-06) Edit

テンプレートPDFを読み込み、その上に日本語を書き込むサンプル。

tcpdf-set.zip

TCPDF、FPDI、IPAフォントがセットで入っているので、解凍してindex.phpにアクセスすればすぐに動作確認できます。

TCPDFで日本語ファイル名のPDFをダウンロードさせる Edit

参考:日本語のファイル名でダウンロードさせる
http://fgin.seesaa.net/article/30073826.html

上記ページを参考にした、ブラウザに応じてファイル名をエスケープする関数。
しかしこれをつかっても、TCPDFのOutputの中でbasename()が使われており、basename()は日本語を正しく扱えないため、問題が生じる。
TCPDFのOutputをオーバーライドするなり、ソースをコピーして別のメソッドを作るなりして、basename()をなくす必要がある。

function escapeFilename($filename) {
    $user_agent = $_SERVER['HTTP_USER_AGENT'];

    if (strpos($user_agent, 'MSIE') !== false) {
        // 生SJIS
        $ret = mb_convert_encoding($filename, 'CP932', 'UTF-8');
    }
    elseif (strpos($user_agent, 'Firefox') !== false) {
        // base64
        $ret = '=?UTF-8?B?' . base64_encode($filename) . '?=';
    }
    elseif (strpos($user_agent, 'Chrome') !== false) {
        // base64
        $ret = '=?UTF-8?B?' . base64_encode($filename) . '?=';
    }
    elseif (strpos($user_agent, 'Safari') !== false) {
        // 生UTF-8
        $ret = $filename;
    }
    elseif (strpos($user_agent, 'Opera') !== false) {
        // 生UTF-8
        $ret = $filename;
    }
    else {
        $ret = urlencode($filename);
    }

    return $ret;
}

FPDF + FPDI + MBFPDF + Rotationsセット Edit

PDF作成ライブラリ (FPDF + FPDI + MBFPDF + Rotations) « Rapid Express
これは秀逸な記事なのだが、

  • サンプルのソースコードにタイポがある
  • テンプレートとなるnenga.pdfが必要
  • ライブラリを1個ずつインストールするのが面倒

なので、ライブラリとサンプルをまとめてzipにしておいた。

pdf-set.zip

これを展開するだけで、sample.phpにアクセスして実行できるはず(PHP 5.1.6で動作確認)

html2ps/html2pdf Edit

http://www.tufat.com/s_html2ps_html2pdf.htm

html2pdf Edit

上のやつよりこっちのほうがよさそう。
UTF-8テキストを表示するexampleも含まれている。しかしフォントをなんとかしないと日本語を表示することはできなかった。
内部でTCPDFを使っている。
http://html2pdf.fr/en/default

TCPDFだけでもHTMLをPDF化することはできるので、あえてHTML→PDFライブラリを探す必要はないと思う。

  • d -- d? 2015-10-13 (火) 18:12:26


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes