我需要帮助一个更多的时间.我试图打印一个页面到PDF使用chrome的无头功能.然而,页眉和页脚是目前在PDF.我发现,这个选项已在Devtools实现.
https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF
但是,我找不到如何在CLI中使用这些选项。也可以从selenium调用Devtools吗?
另外,我如何在开发工具中调用Page.PrintToPDF。我试图在控制台中运行该命令。它显示页面未定义。
6条答案
按热度按时间rryofs0p1#
将此CSS添加到您创建的PDF页面中,以删除Chrome Headless实现的页眉和页脚。
CSS:
您应该像下面这样格式化您的命令以创建PDF:
例一:
例二:
您也可以通过在命令行中导航到包含Chrome可执行文件的文件夹并运行以下命令来测试此功能:
ws51t4hk2#
"/path/to/google-chrome"
:这是Google Chrome的路径。'--headless
':无头环境中的Chrome浏览器,没有完整的浏览器UI'--run-all-compositor-stages-before-draw'
:在所有数据呈现之前阻止创建PDF(在所有数据呈现之后将创建PDF)。'--virtual-time-budget = x
:它延迟了Pdf的创建过程,这里的x是毫秒。'--print-to-pdf'
:此标志创建给定URL的pdf。URL
:网页的url。PDF页面格式(使用CSS)添加此(到css文件):
上面的CSS代码对网页渲染没有影响,但只对PDF格式的页面有影响。
f2uvfpb93#
如果您需要使用Chrome(或Edge)将页面打印为PDF,而没有页眉和页脚,则有一个额外的命令行选项:--print-to-pdf-no-header。
有关所有命令行选项的完整列表,请参见:https://peter.sh/experiments/chromium-command-line-switches/
utugiqy64#
CLI开关确实有文档记录。首先,对于原始/经典的chrome无头,它们位于https://developer.chrome.com/blog/headless-chrome/#command-line-features。对于“新”引擎(自2021年以来,使用
--headless=new
访问),其开关位于https://developer.chrome.com/articles/new-headless/#headless-specific-command-line-flags。zour9fqk5#
--no-pdf-header-footer
标志背后的功能以前是通过--print-to-pdf-no-header
标志提供的。根据您使用的Chrome版本,您可能需要回退到旧的标志名称。对于新的无头chrome更新(日期为2023年2月)后的chrome更新版本。
fdbelqdn6#
是的,如果您想下载PDF格式的网页,需要添加此媒体查询。参考媒体打印CSS https://developer.mozilla.org/en-US/docs/Web/CSS/@media
页面CSS https://developer.mozilla.org/en-US/docs/Web/CSS/@page