Herokuでwkhtmltopdfを実行してみた

複数のBuildPackを利用できるようにする

Herokuで利用できる実行環境(コマンド)はBuildPackという単位で指定します。 デフォルトではアプリ作成時に選択した言語のものが利用されますが、カスタムのBuildPackを追加して、独自の実行環境(コマンド)をインストールすることも可能です。

heroku-buildpack-multiを利用する

アプリ作成時に以下のBuildPackを利用すると、複数のBuildPackを利用できるようになります。

heroku create %アプリ名% --buildpack git://github.com/ddollar/heroku-buildpack-multi.git

作成済みの場合は、以下のherokuコマンドで指定します。

heroku buildpacks:set https://github.com/ddollar/heroku-buildpack-multi.git

heroku-buildpack-multiの詳細は、GitHubで公開されています。

https://github.com/ddollar/heroku-buildpack-multi

上記だけだと、日本語が出力できなかったので、IPAフォントをインストールするBuildPackを作りました。 github.com

wkhtmltopdfのBuildPackを指定する

複数のBuildPackが利用できるようになったので、開発言語に加えてwkhtmltopdfのBuildPackを指定します。 指定は、ルートに.buildpacksという隠しファイルを作成して行います。

.buildpacksの指定

デフォルトのjavaに加えて、GitHubで公開されていたheroku-buildpack-wkhtmltopdfを利用します。

https://github.com/heroku/heroku-buildpack-java.git
https://github.com/momotaro-lucy/heroku-buildpack-wkhtmltopdf-ja.git

heroku-buildpack-wkhtmltopdfの詳細は、以下のGitHubで公開されています。 https://github.com/toncid/heroku-buildpack-wkhtmltopdf

ただ、issueを読んでるとバージョンが上がっていくごとに不安定そうにも見えたので、今後は自分でBuildPackを作成するのを検討中です。

インストール確認

インストールが成功したことを確認します。

確認コマンド

heroku run "wkhtmltopdf -V" --app %アプリ名%
wkhtmltopdf 0.12.2.1 (with patched qt)