「WebページをPDFに保存したい」
「大量に連続してPDFへ変換する必要がある」
このような場合には、wkhtmltopdfがオススメです。
この記事では、wkhtmltopdfについて解説しています。
本記事の内容
- wkhtmltopdfとは?
- wkhtmltopdfのインストール
- wkhtmltopdfの動作確認
それでは、上記に沿って解説していきます。
wkhtmltopdfとは?
wkhtmltopdfとは、HTML(Webページ)をPDFに変換するためのオープンソースのコマンドラインツールです。
技術的には、WebKitレンダリングエンジンを利用しています。
WebKitは、SafariやGoogle Chromeなどのウェブブラウザで使用されているレンダリングエンジンです。
つまり、ブラウザで見ている内容をそのままPDFに変換していると言えます。
その際には、wkhtmltopdfは次のWeb技術を用いています。
用いると言うよりは、解析していると表現した方が適切でしょうね。
- HTML
- CSS
- JavaScript
また、wkhtmltopdfはコマンドラインツールである点がポイントになります。
大量に処理を行う場合には、GUIよりもコマンドラインツールの方が効率的です。
なお、WebページをPDFとして保存する利点は以下のモノがあります。
- オフラインアクセス
- コンテンツの保存
- 印刷や共有の容易さ
- 注釈の追加
- 法的な証拠
以上、wkhtmltopdfについて説明しました。
次は、wkhtmltopdfのインストールを説明します。
wkhtmltopdfのインストール
まずは、wkhtmltopdfのダウンロードからです。
上記ページから環境に適したモノを選びましょう。
今回は、Windows環境へのインストールを行います。
そのため、64-bitを選択。
最新バージョンは、0.12.6となっています。
上記のダウンロードページでは、すべて最新版のはずです。
実際、「wkhtmltox-0.12.6-1.msvc2015-win64.exe」というファイルをダウンロードできます。
ダウンロードできたら、exeを実行。
規約に同意します。
インストール先を選択して、「Install」ボタンをクリック。
処理は、すぐに終わります。
「Close」ボタンを押して、画面を閉じておきます。
ここまでの処理では、次の場所にファイルなどが保存されています。
ファイルは保存されていますが、パスは通っていません。
そのため、自分でパスを設定する必要があります。
パスが通ったら、コマンドプロンプトを開きます。
PowerShellでも構いません。
そして、次のコマンドを実行します。
C:\>wkhtmltopdf -V wkhtmltopdf 0.12.6 (with patched qt)
バージョンが表示されれば、パスの設定は問題ありません。
これで、どこからでもwkhtmltopdfを利用できます。
以上、wkhtmltopdfのインストールを説明しました。
次は、wkhtmltopdfの動作確認を説明します。
wkhtmltopdfの動作確認
wkhtmltopdfの動作確認を行います。
wkhtmltopdfの基本的な使用方法は、以下となります。
wkhtmltopdf https://example.com/ example.pdf
ここでは、「https://example.com/」が保存したいWebページのURLです。
そして、「example.pdf」がその保存先PDFとなります。
実行した結果は、以下。
>wkhtmltopdf https://example.com/ example.pdf Loading pages (1/6) Counting pages (2/6) Resolving links (4/6) Loading headers and footers (5/6) Printing pages (6/6) Done
「Done」と表示されれば、指定したファイル名でPDFが作成されています。
example.pdf
「More information…」は、実際にクリックすることができます。
また、wkhtmltopdfのヘルプは次のコマンドで確認可能です。
>wkhtmltopdf -h Name: wkhtmltopdf 0.12.6 (with patched qt) Synopsis: wkhtmltopdf [GLOBAL OPTION]... [OBJECT]... <output file> Document objects: wkhtmltopdf is able to put several objects into the output file, an object is either a single webpage, a cover webpage or a table of contents. The objects are put into the output document in the order they are specified on the command line, options can be specified on a per object basis or in the global options area. Options from the Global Options section can only be placed in the global options area. A page objects puts the content of a single webpage into the output document. (page)? <input url/file name> [PAGE OPTION]... Options for the page object can be placed in the global options and the page options areas. The applicable options can be found in the Page Options and Headers And Footer Options sections. A cover objects puts the content of a single webpage into the output document, the page does not appear in the table of contents, and does not have headers and footers. cover <input url/file name> [PAGE OPTION]... All options that can be specified for a page object can also be specified for a cover. A table of contents object inserts a table of contents into the output document. toc [TOC OPTION]... All options that can be specified for a page object can also be specified for a toc, further more the options from the TOC Options section can also be applied. The table of contents is generated via XSLT which means that it can be styled to look however you want it to look. To get an idea of how to do this you can dump the default xslt document by supplying the --dump-default-toc-xsl, and the outline it works on by supplying --dump-outline, see the Outline Options section. Description: Converts one or more HTML pages into a PDF document, using wkhtmltopdf patched qt. Global Options: --collate Collate when printing multiple copies (default) --no-collate Do not collate when printing multiple copies --copies <number> Number of copies to print into the pdf file (default 1) -H, --extended-help Display more extensive help, detailing less common command switches -g, --grayscale PDF will be generated in grayscale -h, --help Display help --license Output license information and exit --log-level <level> Set log level to: none, error, warn or info (default info) -l, --lowquality Generates lower quality pdf/ps. Useful to shrink the result document space -O, --orientation <orientation> Set orientation to Landscape or Portrait (default Portrait) -s, --page-size <Size> Set paper size to: A4, Letter, etc. (default A4) -q, --quiet Be less verbose, maintained for backwards compatibility; Same as using --log-level none --read-args-from-stdin Read command line arguments from stdin --title <text> The title of the generated pdf file (The title of the first document is used if not specified) -V, --version Output version information and exit Page Options: --print-media-type Use print media-type instead of screen --no-print-media-type Do not use print media-type instead of screen (default) Contact: If you experience bugs or want to request new features please visit <https://wkhtmltopdf.org/support.html>
以上、wkhtmltopdfの動作確認を説明しました。