HTMLからPDF生成ソフト wkhtmltopdf
wkhtmltopdfはWebKitを使ってHTMLをレンダリングしてPDFを生成する。
“wk”がWebKitのこと、”htmltopdf”はHTMLをPDFにしてくれるっぽい名前ですね。
Windows、Mac、Linux いずれも対応。
ダウンロード
どれをダウンロードするかは、OS、CPUと要相談。
http://code.google.com/p/wkhtmltopdf/
インストール
ダウンロードして解凍したら、そのままコマンドとして使える。
/usr/local/bin などのパスが通っているところにおくと使いやすい。
# cd /usr/local/src # wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_beta4-static-i386.tar.bz2 # tar jxf wkhtmltopdf-0.10.0_beta4-static-i386.tar.bz2 # mv wkhtmltopdf-i386 /usr/local/bin/wkhtmltopdf
libX11が必要とのこと。なかったらインストール。
# yum install libX11
使ってみる
フォントの指定などは、若干OS側と調整が必要かもしれません。
日本語フォントをあらかじめ取得しておく → 例えば、IPAフォントを/usr/share/fonts/IPAfont00302/ipa*.ttf に保存しておく。
次のようなHTMLを作成してtest.htmlとして保存。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body { font-family: "ipapgothic"; } </style> </head> <body> <h1>見出し:H1</h1> <p>段落:PDFに日本語。PDFに日本語。PDFに日本語。PDFに日本語。PDFに日本語。</p> <p>画像を配置:<img src="/tmp/test.gif" /></p> <table border="1" style="margin:0 auto;"> <tr><th>見出し1</th><th>見出し2</th><th>見出し3</th></tr> <tr><td>内容1</td><td>内容2</td><td>内容3</td></tr> <tr><td>内容1</td><td>内容2</td><td>内容3</td></tr> <tr><td>内容1</td><td>内容2</td><td>内容3</td></tr> </table> <p>「高」の漢字も、「髙」の漢字もちゃんと出力される</p> </body> </html>
@font-face規則などは使えない(エラーになる)。@pageを使っても用紙の向きは変わらない。
wkhtmltopdfコマンドでHTMLをPDFに変換する。
wkhtmltopdf test.html test.pdf
用紙の向きやサイズはコマンドラインオプションで指定する。
wkhtmltopdf --page-size A4 --orientation Landscape test.html test.pdf
出来上がったPDF → こちら
サンプルには入れていないが、WebKitでレンダリングということでJavascriptまで使えてしまうのがすばらしい。ヘルプにはページ番号をつけるスクリプトの例などがある。
最近まで–page-sizeオプションが効かないという不具合があったらしい。trunkでは修正済みとのこと。そのうちバイナリの方にも反映されるでしょう。
コメント