【wkhtmltodf】使用例(php4にて)
問題
php4環境でwkhtmltopdfを使いたい。
答え
php4だとproc_open()は使用できないので、popen()を使ってみた。入力か出力ができるので、どちらか都合のよい方をファイルにしないで処理できる。
以下はHTMLを渡すのに標準入力を使って、PDFはファイルとして生成させた例。
<?php //元になるHTML $html = '<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>pdf</title> <style> table {border-collapse:collapse;} td, th {border:1px solid #000;} </style> </head> <body> <div class="page"> <h1>PDF出力サンプル</h1> <table> <tr><th>あ</th><th>い</th><th>う</th><th>え</th><th>お</th></tr> <tr><th>か</th><th>き</th><th>く</th><th>け</th><th>こ</th></tr> <tr><th>さ</th><th>し</th><th>す</th><th>せ</th><th>そ</th></tr> <tr><th>た</th><th>ち</th><th>つ</th><th>て</th><th>と</th></tr> <tr><th>な</th><th>に</th><th>ぬ</th><th>ね</th><th>の</th></tr> </table> <p>日時を出してみるよ ' . date('Y年m月d日 H:i:s') . '</p> <p>日本語がかっこ悪かったら、たぶんフォントがないのが原因だと思うので、持って来てくださいな。</p> <p>フォントがあれば、MS Pゴシックでも、明朝でも、ヒラギノでも、IPAゴシックでもいけるよ。</p> </div> </body> </html> '; //PDFをファイルとして生成 $filename = date('YmdHis') . '.pdf'; $p = popen('/path/to/wkhtmltopdf - ' . $filename, 'w'); fwrite($p, $html); pclose($p); //サーバー側にファイルとして生成されているのをダウンロード echo '<a href="' . $filename . '">' . $filename . ' が出来ました。</a>';
php5だとproc_open()で入出力が可能で、元のHTMLは標準入力で、生成されたPDFは標準出力で受け渡しして、ファイルにしなくても処理できる。
コメント