Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

wkhtmltopdfオプション対応表

wkhtmltopdf 0.12.6の--extended-help(公式マニュアルhttps://wkhtmltopdf.org/usage/wkhtmltopdf.txt)に載る全オプションの対応状況です。 セクション区切りと並びは公式マニュアルに合わせてあります。

記号意味
✅ 対応wkhtmltopdfと同じ名前・同じ意味で使える
❌ 非対応実装しない。指定するとと代替メッセージを出力してexit 1で終了する(黙って無視しない)

移行時に引っかかりやすい挙動の違いはwkhtmltopdfからの移行にまとめてあります。

コマンドライン形式の違い

wkhtmltopdfは表紙と目次を位置引数で指定します。

wkhtmltopdf cover cover.html toc page.html out.pdf          # wkhtmltopdf
sghtmltopdf --cover cover.html --toc page.html -o out.pdf   # sghtmltopdf

sghtmltopdfは入力を1つのHTMLに限定し、表紙・目次は--cover <path>--tocオプションで指定します。 複数HTMLの結合(wkhtmltopdfが位置引数を並べてできること)には対応していません。

そのため、位置引数由来の--exclude-from-outline/--include-in-outline(入力ページ単位で目次から除外する)も対象外です。

Global Options

オプション方針備考
--collate / --no-collate❌ 非対応印刷時の丁合。PDF生成に意味を持たない
--cookie-jar <path>❌ 非対応認証付きフェッチはスコープ外
--copies <number>❌ 非対応同上(印刷用)
-d, --dpi <dpi>✅ 対応既定96
-H, --extended-help❌ 非対応--helpに一本化する
-g, --grayscale✅ 対応
-h, --help✅ 対応clapが生成
--htmldoc / --manpage / --readme / --license❌ 非対応ドキュメントはdocs/とREADMEで提供する
--image-dpi <integer>❌ 非対応画像のリサンプリングを行わないため
--image-quality <integer>❌ 非対応JPEGデコーダ/エンコーダを持たず、そのまま埋め込むため
--log-level <level>✅ 対応none/error/warn/info
-l, --lowquality❌ 非対応WebKitのラスタライズ品質設定に相当するものが無い
-B, --margin-bottom <unitreal>✅ 対応
-L, --margin-left <unitreal>✅ 対応既定値が違う(下記)
-R, --margin-right <unitreal>✅ 対応既定値が違う(下記)
-T, --margin-top <unitreal>✅ 対応
-O, --orientation <orientation>✅ 対応Portrait/Landscape
--page-height <unitreal>✅ 対応
-s, --page-size <Size>✅ 対応A4/A3/A5/Letter/Legal
--page-width <unitreal>✅ 対応
--no-pdf-compression✅ 対応現状は常時Flate圧縮
-q, --quiet✅ 対応--log-level noneと同義
--read-args-from-stdin❌ 非対応stdinはHTML入力に使うため衝突する
--title <text>✅ 対応PDF Info辞書。未指定時は<title>を採用
--use-xserver❌ 非対応Xサーバに依存しない
-V, --version✅ 対応

マージンの既定値: wkhtmltopdfは左右10mm・上下未指定だが、sghtmltopdfの現在の既定は四辺96px(=1in=25.4mm)。 既存の出力を変えないため既定値は変更しない。 移行時は--margin-*を明示すること。

Outline Options

PDFのアウトライン(ブックマーク)自体が非対応のため、このセクションはすべて非対応です。 文書内の目次は--tocで作れます。

オプション方針備考
--outline / --no-outline❌ 非対応PDFブックマーク未実装
--outline-depth <level>❌ 非対応同上
--dump-outline <file>❌ 非対応同上
--dump-default-toc-xsl❌ 非対応XSLTを使わない

Page Options

オプション方針備考
--allow <path>✅ 対応ローカル読み込みを許可するディレクトリ。サーバモードでは特に重要
--background / --no-background✅ 対応
--bypass-proxy-for <value>❌ 非対応プロキシ非対応
--cache-dir <path>❌ 非対応フェッチキャッシュは持たない(必要になれば別途)
--checkbox-checked-svg / --checkbox-svg / --radiobutton-checked-svg / --radiobutton-svg❌ 非対応SVG描画が非対応。フォーム要素の見た目は内蔵の描画で再現する
--cookie <name> <value>❌ 非対応認証付きフェッチはスコープ外
--custom-header <name> <value> / --custom-header-propagation❌ 非対応同上
--debug-javascript / --no-debug-javascript❌ 非対応JS非対応
--default-header✅ 対応ページ名+番号の既定ヘッダ。簡易オプションのショートカット
--encoding <encoding>✅ 対応判定順は BOM > --encoding > <meta charset> > UTF-8
--disable-external-links / --enable-external-links✅ 対応リンク注釈
--disable-forms / --enable-forms❌ 非対応入力可能なPDFフォーム(AcroForm)は作らない
--images / --no-images✅ 対応
--disable-internal-links / --enable-internal-links✅ 対応
-n, --disable-javascript / --enable-javascript❌ 非対応JS実行は設計上の非目標
--javascript-delay <msec>❌ 非対応同上
--keep-relative-links / --resolve-relative-links✅ 対応リンク注釈のURL解決。<base href>と併せて実装
--load-error-handling <handler>✅ 対応abort/ignoreskipは入力が1つなので無し
--load-media-error-handling <handler>✅ 対応画像・フォント・CSSの取得失敗
--disable-local-file-access / --enable-local-file-access✅ 対応既存--allow-remote-assetsと整理
--minimum-font-size <int>✅ 対応
--exclude-from-outline / --include-in-outline❌ 非対応入力が1つなので意味を持たない
--page-offset <offset>✅ 対応ページ番号の起点
--password / --username❌ 非対応HTTP認証はスコープ外
--disable-plugins / --enable-plugins❌ 非対応プラグイン機構が無い
--post <name> <value> / --post-file <name> <path>❌ 非対応URL入力時のPOSTはスコープ外
--print-media-type / --no-print-media-type❌ 非対応常に印刷メディア扱い
-p, --proxy <proxy> / --proxy-hostname-lookup❌ 非対応プロキシ非対応
--run-script <js>❌ 非対応JS非対応
--disable-smart-shrinking / --enable-smart-shrinking❌ 非対応WebKit固有の縮小戦略
--ssl-crt-path / --ssl-key-password / --ssl-key-path❌ 非対応クライアント証明書はスコープ外
--stop-slow-scripts / --no-stop-slow-scripts❌ 非対応JS非対応
--disable-toc-back-links / --enable-toc-back-links✅ 対応見出し→目次への逆リンク
--user-style-sheet <path>✅ 対応ユーザーオリジンのCSS
--viewport-size <size>❌ 非対応ビューポート概念が無い
--window-status <status>❌ 非対応JS非対応
--zoom <float>✅ 対応

このセクションはすべて対応しています。 JSを実行しないため、wkhtmltopdfが--header-htmlのURLにクエリ(?page=1&topage=5)を付けてJSで差し込んでいたページ変数は、プレースホルダの文字列置換で実現します。

オプション方針備考
--header-left / --header-center / --header-right✅ 対応@pageのmargin boxへマップ
--footer-left / --footer-center / --footer-right✅ 対応同上
--header-html <url> / --footer-html <url>✅ 対応別のHTMLをレンダリングして余白へ合成する
--header-line / --no-header-line✅ 対応
--footer-line / --no-footer-line✅ 対応
--header-spacing <real> / --footer-spacing <real>✅ 対応mm
--header-font-name / --header-font-size✅ 対応
--footer-font-name / --footer-font-size✅ 対応
--replace <name> <value>✅ 対応ヘッダ/フッタ内の[name]を置換。sghtmltopdfのプレースホルダ方式と直接対応する

wkhtmltopdfの組み込みプレースホルダのうち、使えるのは[page][frompage][topage][date][time][title]/[doctitle]です。 [section]/[subsection](直近の見出し)と[webpage]/[sitepage]/[sitepages](複数入力向け)は非対応です。 --replaceで任意の名前を定義できます。

TOC Options

生成される目次のHTML構造と既定スタイルは、wkhtmltopdfの既定TOC XSLの出力に合わせてあります。 階層は入れ子の<ul>、各項目は<li><div><a>見出し</a><span>ページ番号</span></div></li>です。

オプション方針備考
--toc-header-text <text>✅ 対応既定“Table of Contents“。<h1>のテキスト
--toc-level-indentation <width>✅ 対応既定1em。ul { padding-left }
--toc-text-size-shrink <real>✅ 対応既定0.8。ul ul { font-size: 80% }
--disable-dotted-lines✅ 対応divborder-bottom: dashedを出さない
--disable-toc-links✅ 対応目次→見出しのリンク(<a href>)を出さない
--xsl-style-sheet <file>❌ 非対応XSLT非対応。見た目の変更は--user-style-sheetで行う

sghtmltopdf独自のオプション(wkhtmltopdfに無い)

オプション内容
--font <path> / --font-index <N>フォントの明示指定(複数可、任意)。省略時はシステムフォントを使う
--gothic-font / --mono-font / --serif-font(+-index)汎用family名(sans-serif/monospace/serif)の実体指定
--allow-remote-assetshttp(s)絶対URLのフェッチ許可
--streamingストリーミングモードで処理する
--base-url <url|dir>stdin入力時などの相対解決の基準
--author / --subject / --keywordsPDF Info辞書(wkhtmltopdfは--titleのみ)
--cover <path> / --toc表紙・目次(wkhtmltopdfは位置引数)
server サブコマンドHTTPサーバモード