% cat

HTMLをPDFに上手いこと変換してくれるwkhtmltopdfを日本語で使う

結論:サーバサイドでHTMLをPDFに変換したい。wkhtmltopdfを使おう。

サーバサイドでのHTMLからPDFへの変換。今どき流行らない気もしたんだけど、業務上どうしても必要だったので調べてみた。サーバサイドでPHPを使ってHTMLを出力していたので、そのままPHPからPDFを生成するライブラリを調べていたんだけど、どうもレイアウトが弱い…。

PHPからPDFを出力するライブラリ

そもそも、PHPを通す選択肢が悪手な感じ。ひと通り試したけど、微妙なレイアウトずれや、変換パフォーマンスが悪い。

その他に…

他になんかあるかなーと思って調べてたら、ここらへんが。けっこう良さそう。特にDocverter(内部的にはFlyingSaucerを使ってる)とかは対応フォーマットもかなりあって、良い感じ。

もっとシンプルに


単純にコマンドベースで変換できるようなのないかな?って思って調べてたらありました。

まさに。

使い方は簡単で、ビルド済みバイナリ、もしくは自前ビルドしてコマンド実行するだけ。一応Linux / Windowsに対応。Macに関してはまだだけど、そのうち公開されるっぽい雰囲気。

コマンド例

$ wkhtmltopdf http://google.com google.pdf

素晴らしい。レイアウトも大抵のHTML+CSSに対応しているっぽい。試しにYahoo!のトップページサンプル。


多少、背景画像などがずれたりしてるけど、厳密な変換が求められないなら、この程度であれば大丈夫でしょう。

wkhtmltopdfを日本語対応に

素のLinuxとかだと、wkhtmltopdfは日本語を変換できず。というよりは、単純に日本語フォントが入っていないだけ。なので、フォントをインストールしてあげればOK。

ここはひとつ、IPAフォントを使う。

IPAフォントインストール

# ユーザホームディレクトリにフォントを配置
$ mkdir ~/.fonts
$ cp IPAfont00302.zip ~/.fonts
$ cd ~/.fonts 
$ unzip IPAfont00302.zip 

# フォントキャッシュクリア
$ fc-cache -fv

# インストールされているフォントの確認
$ fc-list

これだけで日本語が入ったページも正常にPDFにしてくれる。

最新記事

「良いプロダクト」とは、どんなプロダクトのことでしょうか?

こんにちは! プロダクトオーナー兼開発部マネージャーをしている長谷川([@roki1801](https://github.com/roki1801))です。普段は山形県山形市にあるベーシックのサテライトオフィス「[山形ラボ](...

roki1801
2019年03月29日

大量アクセスに耐え得る在庫管理システムの構成を考え実装してみた

皆さん「在庫管理」ってどうしてます?itemsテーブルに、stockカラム作ってdecrementしてますか? まぁ正直、それでも良い感じしますよね。楽だし何やってるかわかりやすい。 しかし! **超人気商品に超ア...

mmusasabi
2019年03月13日

kubernetes で Ruby on Rails を動かして kubern...

巷で話題の kubernetes ですが、とってもとってもとっつきにくいですよね そんな kubernetes ですが手元で動かすことができたので解説してみます (情報が間違ってたらごめんなさい! 🙇) 目標はこちら ...

tkhr0
2019年03月07日