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

ipa*_*lic 60 google-chrome print-to-pdf automation chromium

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

小智 56

Chrome 已启动无头程序。

有了这个,我们可以创建一个pdf。例如,对于 Windows,将命令行导航到

C:\Users\{{your_username}}\AppData\Local\Google\Chrome SxS\Application>
Run Code Online (Sandbox Code Playgroud)

然后敲命令:

chrome --headless --print-to-pdf="d:\\{{path and file name}}.pdf" https://google.com
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您可以使用 `--user-data-dir="C:\Users\...\AppData\Local\Google\Chrome\User Data` 在用户的 Chrome 配置文件下运行。这很有用,例如,用于从需要用户登录的网站导出内容,因为会话 cookie 可用。 (6认同)
  • @JohnLeidegren(至少)从 Chrome for Windows 版本 66.0.3359.139(官方版本)(64 位)开始,这不会杀死任何 Chrome 进程。 (2认同)

Rah*_*nge 23

您必须使用 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/
Run Code Online (Sandbox Code Playgroud)

参考: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/
Run Code Online (Sandbox Code Playgroud)

您的 pdf 文件命名为file1.pdf将保存在

"C:\Program Files or (x86)\Google\Chrome\Application\60.0.3112.113 (chrome-version)\file1.pdf"


han*_*xue 9

与其调用整个 Web 浏览器,为什么不只使用 HTML 渲染引擎来完成工作呢?使用wkhtmltopdf执行转换。

网页版

您还可以将现有网站转换为 PDF

$ wkhtmltopdf http://google.com google.pdf
Run Code Online (Sandbox Code Playgroud)

注意:技术上 Google Chrome 的渲染引擎是 Blink,它是 Webkit 的一个分支。Blink 和 Webkit 之间有 >90% 的公共代码,因此您应该得到类似的结果。

  • -1 此答案与问题不符,wkhtmltox 是一个很棒的工具,但在导出为 PDF 时它的性能不如 chrome 或 firefox。 (51认同)
  • 也不能推荐它,如果你有复杂的 CSS wkhtmltopdf 是没用的。 (6认同)
  • 不渲染 SVG。 (3认同)