如何使用 Chrome 或 Chromium 從命令列列印並另存為 PDF

如何使用 Chrome 或 Chromium 從命令列列印並另存為 PDF

我可以使用 Chrome 或 Chromium 從命令列列印到目標「另存為 PDF」嗎?我希望能夠使用 Chrome 的內建功能自動將 html 檔案轉換為 PDF。

答案1

為什麼不使用 HTML 渲染引擎來完成這項工作,而不是呼叫整個 Web 瀏覽器呢?使用wkhtml轉pdf來執行轉換。

wktohtml

您也可以將現有網站轉換為 PDF

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

注意:從技術上來說,Google Chrome 的渲染引擎是 Blink,它是 Webkit 的一個分支。 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 作業系統和 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/

參考 : https://developers.google.com/web/updates/2017/04/headless-chrome

編輯 :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 版本)\file1.pdf”

答案4

我為 Chrome{,ium} headless 編寫了一個小包裝腳本,名為html2pdf
Ghostscript 可以減少檔案大小並選擇頁面範圍:

#!/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

相關內容