Chrome无头打印到pdf的其他选项

时间:2017-09-06 14:06:45

标签: google-chrome pdf google-chrome-headless

我还需要帮助。我正在尝试使用chrome的无头功能将页面打印为pdf。但是,页眉和页脚存在于pdf中。我发现这个选项已在Devtools中实现。

https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF

但是,我无法找到如何在CLI中使用这些选项。也可以从硒中调用Devtools吗?

另外,如何在Dev工具中调用Page.PrintToPDF。我试图在Console中运行该命令。它显示页面未定义。

2 个答案:

答案 0 :(得分:8)

将此CSS添加到您创建的PDF页面中,以删除Chrome Headless实施的页眉和页脚。

CSS:

@media print {
  @page { margin: 0; }
  body { margin: 1.6cm; }
}

您应该像下面那样格式化命令以创建PDF:

"C:\PATH\TO\CHROME\EXECUTABLE\FILE", "--headless","--disable-gpu","--print-to-pdf=" + directory path to where you want the file to go followed by the desired file name/fileName.pdf,"--no-margins", "the path to the file you want turned into a pdf"

示例1:

C:\chrome-win/chrome --headless --disable-gpu --print-to-pdf=C:\user\fileName.pdf --no-margins C:\Projects\index.html

示例2:

您还可以通过在命令行中导航到包含Chrome可执行文件的文件夹并运行此命令来测试此功能:

chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/

编辑:修复拼写错误

答案 1 :(得分:1)

"/path/to/google-chrome":这是Google Chrome浏览器的路径。

'—headless':无头环境中的Chrome浏览器,没有完整的浏览器用户界面

'—run-all-compositor-stages-before-draw':它可以防止在创建所有数据之前创建Pdf(在渲染所有数据之后,将创建pdf)。

'—virtual-time-budget = x:它会延迟Pdf的创建过程,此处x表示毫秒。

'—print-to-pdf':此标志创建给定Url的pdf。

URL:网页的网址。

PDF页面格式(使用CSS) 添加此(到css文件):

 @media print {
            @page { margin: 0mm 0mm 0mm 0mm;
            size:8in 9.5in;
            }
            }

上面的CSS代码对网页渲染无效,但仅对PDF中的网页格式有效。