プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

PHPでHTMLをPDF化する方法!

サクウェブTVはコチラ↓↓↓
サクウェブTV

今回は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;   

こんな感じ。

詳しくは以下も参考になります。

http://mpdf1.com/manual/index.php