Chrome または Chromium のコマンドラインから印刷して PDF として保存する方法

Chrome または Chromium のコマンドラインから印刷して PDF として保存する方法

Chrome または Chromium を使用して、コマンド ラインから「PDF として保存」先に印刷できますか? Chrome の組み込み機能を使用して、HTML ファイルを PDF に自動的に変換できるようにしたいと思います。

答え1

ウェブブラウザ全体を呼び出す代わりに、HTMLレンダリングエンジンだけを使って作業を行ってみてはいかがでしょうか?wkhtmlからpdf変換を実行します。

wktohtml

既存のウェブサイトをPDFに変換することもできます

$ wkhtmltopdf http://google.com google.pdf

注: 技術的には、Google Chrome のレンダリング エンジンは Webkit のフォークである Blink です。Blink と Webkit には 90% を超える共通コードがあるため、同様の結果が得られるはずです。

答え2

Chromeが起動しました頭のないプログラム。

これで、PDFを作成できます。たとえば、Windowsの場合は、コマンドラインを次のように移動します。

C:\Users\{{your_username}}\AppData\Local\Google\Chrome SxS\Application>

次に、次のコマンドを実行します。

chrome --headless --print-to-pdf="d:\\{{path and file name}}.pdf" https://google.com

答え3

Google Chrome / Chromium 59以降のバージョンを使用する必要がありますMAC OS および Linux ユーザーのみが利用できます。

*Windowsユーザーはバージョン60までまだしばらく待たなければなりません*

指示 :

$ google-chrome --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

$ chromium-browser --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

参照 : ヘッドレスクローム

編集 :Google Chrome / Chromium 60 が Windows ユーザー向けにリリースされました。

CMD でのコマンドの使用法:

C:\Program Files\Google\Chrome\Application> chrome.exe --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

PDFファイルの命名ファイル1.pdf保存されます

「C:\Program Files または (x86)\Google\Chrome\Application\60.0.3112.113 (chrome-version)\file1.pdf」

答え4

Chrome{,ium}ヘッドレス用の小さなラッパースクリプトを作成しました。html2pdfGhostscript
は、ファイル サイズを縮小し、ページの範囲を選択するために存在します。

#!/bin/sh -eu
in=$1 out=$2 page0=${3:-} page1=${4:-$page0}
${CHROME:-chromium} --headless --disable-gpu \
    --run-all-compositor-stages-before-draw --print-to-pdf-no-header \
    --print-to-pdf="$out" "$in"
GS_ARGS=
if [ -n "$page0" ]; then
        GS_ARGS="-dFirstPage=$page0 -dLastPage=$page1"
fi
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH $GS_ARGS -sOutputFile="$2.tmp" "$2"
mv "$2.tmp" "$2"

使用例:

html2pdf https://ucm.dev/resume.html ucm.pdf 1

関連情報