wkhtmltopdfのインストール - HTMLをPDFへ変換

wkhtmltopdfのインストール方法を解説します。aptコマンドを使って、wkhtmltopdfをインストールします。sudoを使って管理者権限で実行します。

sudo apt install -y wkhtmltopdf

wkhtmltopdfのインストールの確認

wkhtmltopdfコマンドが利用できることを確認しましょう。

wkhtmltopdf

wkhtmltopdfとは

wkhtmltopdfはHTMLをPDFに変換するためのツールです。レンダリングエンジンWebkitでレンダリングした結果をPDFに変換します。

wkhtmltopdfは、PDF帳票作成に利用できます。Webで無料で公開されているHTMLで作られた帳票を、PDFに変換するのに便利です。

生成されるPDFは、書籍の品質には届かないですが、専門学校のテキストや、同人誌などの製作に利用可能だと思います。

wkhtmltopdfが実行できないバグの修正

wkhtmltopdfのPDF生成には、X ServerあるいはQtが必要なようですが、古いQtにパッチが当たっていない場合に、実行できないバグが存在します。

QXcbConnection: Could not connect to display

これを解決する一つの手段は、パッチの当たったQtを利用するwkhtmltopdfをインストールすることのようです。これは、正式な手段ではないかもしれない。

cd ~
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
tar vxf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz 

mkdir -p /usr/local/bin
sudo cp wkhtmltox/bin/wk* /usr/local/bin/
$ /usr/local/bin/wkhtmltopdf --version
wkhtmltopdf 0.12.3 (with patched qt)

wkhtmltopdfでSSLエラーが表示される場合の解決策 Ubuntu 18で確認

wkhtmltopdfでSSLエラーが表示される場合の解決策。

Exit with code 1 due to network error: UnknownNetworkError
QSslSocket: cannot call unresolved function CRYPTO_num_locks
QSslSocket: cannot call unresolved function CRYPTO_set_id_callback
QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback

以下のパッケージをインストールすると解決しました。

sudo apt install libssl1.0-dev

wkhtmltopdfで日本語が表示できない場合

wkhtmltopdfで日本語が表示できない場合「□□□」のようになる場合は、日本語フォントをインストールしてください。

関連情報