PHPでHTMLをPDF化する方法!
今回はPHPでHTMLを簡単にPDF化する方法を説明します。
PHPではPDFを作成するメソッドがいくつか用意されていますが、それで思った通りのPDFを作成するのは結構面倒です。
そこで、mPDFを使用することでHTMLとCSSで作成したWEBページを簡単にPDF化する方法を説明しましょう。
mPDFでのPDF化はそれほど精度が高いとは個人的に思いませんが、データベースから取得した顧客データから請求書PDFを作成したり、名簿を打ち出したりと、帳票関係であれば十分すぎるほどの機能を提供してくれます。
では、
http://www.mpdf1.com/mpdf/download
からmPDFをダウンロードしておいてください。
ダウンロードしたzipファイルを解凍。
それをPHPからインクルードできるディレクトリへコピー。
※cakePHPの場合はappのVenderにコピーします。
今回はmpdf54という名前として説明を進めます。
※アップロード後には、tmpディレクトリとgraph_cacheディレクトリには書き込み権限を与えておいてください。
あとはこんな感じ↓↓↓
include("./mpdf54/mpdf.php");//インクルード $html = file_get_contents("http://ドメイン以下");//URL指定 $stylesheet = file_get_contents("./css/sample.css");//CSSの読み込み $mpdf=new mPDF('ja', 'A4');//言語・サイズ指定 $mpdf->WriteHTML($html);//HTML適用 $mpdf->WriteHTML($stylesheet);//CSS適用 $name = date("Y_m_d_H_i_s_"); $mpdf->Output("pdf/{$name}.pdf","F"); //PDF書き出し
cakePHPでやりたい場合は
App::import('Vendor', 'mpdf54/mpdf'); $html = file_get_contents("http://ドメイン以下"); $stylesheet = file_get_contents("/cakeのルート名/css/sample.css"); $mpdf=new mPDF('ja', 'A4'); $mpdf->WriteHTML($html); $mpdf->WriteHTML($stylesheet); $name = date("Y_m_d_H_i_s_"); $mpdf->Output("pdf/{$name}.pdf","F");
ちなみに、ウォーターマークを入れたい場合は、
$mpdf->WriteHTML($html);
の前に
// ウォーターマークを入れる $mpdf->SetWatermarkText('入れたい文字列'); $mpdf->watermark_font = 'DejaVuSansCondensed'; $mpdf->showWatermarkText = true;
こんな感じ。
詳しくは以下も参考になります。