如何使用 Chrome 或 Chromium 从命令行打印并保存为 PDF

如何使用 Chrome 或 Chromium 从命令行打印并保存为 PDF

我可以使用 Chrome 或 Chromium 从命令行打印到目标“另存为 PDF”吗?我希望能够使用 Chrome 的内置功能自动将 html 文件转换为 PDF。

答案1

为什么不直接使用 HTML 渲染引擎来完成工作呢?而是调用整个 Web 浏览器。转PDF执行转换。

到html

您还可以将现有网站转换为 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 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/

参考 : 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 编写了一个小包装脚本,名为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

相关内容