Hatena::ブログ(Diary)

130単位

2012-09-02

Heroku wkhtmltopdfで日本語フォントを利用する

wkhtmltopdfは、HTMLからPDFを生成するツールです。RailsではWicked PDFやPDFKitというラッパーgemが使えます。ただHerokuで日本語を含むPDFを生成する場合、そのままだと文字化けしてしまいます。

解決方法ですが、検索で見つけた記事を引用させていただきます。

fontconfigを使う環境では追加のTTFフォントを ~/.fonts に入れておくだけで大丈夫な模様。(参考:書体関係 Wiki - unixuser200403-2

なので、日本語フォント対応するには、IPAフォントなりをダウンロードし、.fontsディレクトリを作成してTTFファイルを突っ込んだ上でherokuにpushしておけばOK。

Heroku の PhantomJS buildpack - snippets from shinichitomita’s journal

こちらの内容でほぼ解決できたと思われますが、具体的な手順を書いてみることにします。

利用手順

Gemfile
gem 'wicked_pdf' # OR gem 'pdfkit'
gem 'wkhtmltopdf-binary' # OR gem 'wkhtmltopdf-heroku', :group => [:production]

wkhtmltopdf-binaryのほうがMac/Linux(Heroku)どの環境でも使えて便利と思います。

Wicked PDF sample
respond_to do |format|
  format.html
  format.pdf do
    html = '<meta http-equiv="content-type" content="text/html; charset=utf-8" /><h1>にほんご</h1>'
    render :text => WickedPdf.new.pdf_from_string(html)
  end
end

例としてコントローラーで簡単に出力していますが、本来はビューを利用するのがいいでしょう。

日本語フォント入手

無料リンク集などから適当な日本語対応フォントダウンロードします。上記引用ではTTFと書いてありますが、OTFフォントでも問題ありませんでした。

フォント追加とデプロイ
cd /path/to/project_root/
mkdir .fonts
cp ~/Downloads/fonts/xxx.ttf .fonts/
git add .fonts
git commit
git push heroku master

これでHerokuでHTMLから日本語PDFの生成が可能になります。

参考リンク

Wicked PDF/PDFKitの詳細な使い方はGitHubのREADMEをご確認ください。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証