Laravel Snappy を使ってPDFを生成してみる

wkhtmltopdf のPHPラッパー Snappy を Laravel に組み込んだ Laravel-Snappy を使ってみる。

インストール

公式の README に目を通しておくといい。

app/snappy.php を編集して、実パスへの位置を定義。
.env に定義があればそれを、無ければ Composer のデフォルト位置を指定。

追加ライブラリ入れる

The exit status code ‘127’ says something went wrong: stderr: “/var/www/html/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory

とか出た場合。メッセージの通り、ライブラリがない。
dockerイメージに libXrender が含まれないので、これを追加する。

/docker/Dockerfile の apt-get install な列に一行追加。

(autoremove の直前でいいと思う)

ついでに日本語フォント(IPAフォント─素晴らしいプロジェクトですよね)も入れておく。

使ってみよう

Hタグを入れると目次も自動で作ってくれる。スゴイ!

日本語が文字化けするんだが?

html 内の meta タグで utf8 を指定する。

PDF::loadFile(url)で外部サイトを読み込むとSSL絡みのエラーが出るんだが?

調べてみたところ、ライブラリの問題でバージョンアップするしか無さそう。しかしメンテナが手を離してしまってるみたいで、SSLのバージョンを落とすか(無意味)か、自力で wkhtmltopdf のバージョンを 0.12.5 以上に上げるしかないらしい。厳しい。

コメントを残す

メールアドレスが公開されることはありません。