WebページをPDFに変換できるwkhtmltopdfのインストール

WebページをPDFに変換できるwkhtmltopdfのインストール ツール

「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のダウンロードからです。

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の動作確認を説明しました。

タイトルとURLをコピーしました