前回、Node.jsとライブラリのPDFKitを利用してPDFの発行システムを作ってみました(Node.jsで領収書PDFの発行システムを作ろう)。その方法も手軽ではあったのですが、PDFを生成する方法としては、「wkhtmltopdf」というライブラリを使う方法もあります。今回は、Node.jsと「wkhtmltopdf」を利用したPDFの生成方法を紹介します。

HTMLからPDFを生成する「wkhtmltopdf」

 前回、PDFKitを利用してPDFを生成する方法では、最初にひな形を用意しておいて、その任意の部分に文字を書き込むという方法でPDFを作成しました。ところが、この方法でPDFを生成する場合、帳票のように、表示項目がたくさんある場合、綺麗に座標を指定するのが大変になります。

 そこで、利用したいのが「wkhtmltopdf」です。「wkhtmltopdf」というのは、Webkit HTML to PDFの略です。つまり、Webブラウザーのレンダリングエンジン「WebKit」を使って、HTMLを描画し、PDFとして書き出すというライブラリなのです。ちなみに、WebKitというのは、アップル社が中心となって開発しているオープンソースのHTMLレンダリングエンジンです。iPhoneやMac OS Xに搭載されているSafariのエンジンとして使われています。また、最近まで、Google Chromeでも使われていました*1。ですから、HTMLで画面に表示すると同じ見た目のレイアウトでPDFを生成することができるのです。そのため、作表や画像の挿入も容易です。

*1 現在、Chromeは、レンダリングエンジンとして「Blink」を利用していますが、これは、WebKitから派生したエンジンです。

wkhtmltopdfのインストール

 では、「wkhtmltopdf」をインストールしてみましょう。ちなみに、本稿では、原稿執筆時点の最新版(0.12.3)を利用してみます。

 Windows/ OS Xでは、以下のURLからインストーラーをダウンロードできます。

http://wkhtmltopdf.org/downloads.html

 OS Xでは、Homebrewを使ってインストールすることもできます。Homebrewは、OS X向けのパッケージ管理ツールです。ターミナル.appを起動して、以下のコマンドを打ち込むことでHomebrewをインストールできます。


$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 続いて、wkhtmltopdfをインストールしましょう。


$ brew tap homebrew/boneyard
$ brew install wkhtmltopdf