我还需要帮助。我正在尝试使用chrome的无头功能将页面打印为pdf。但是,页眉和页脚存在于pdf中。我发现这个选项已在Devtools中实现。
https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF
但是,我无法找到如何在CLI中使用这些选项。也可以从硒中调用Devtools吗?
另外,如何在Dev工具中调用Page.PrintToPDF。我试图在Console中运行该命令。它显示页面未定义。
答案 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中的网页格式有效。