当前位置: 首页 > 知识库问答 >
问题:

Chrome无头打印到PDF的附加选项

郭翰墨
2023-03-14

我再需要一次帮助。我正在尝试用Chrome的无头功能打印一页到pdf。但是,页眉和页脚在PDF中是存在的。我发现这个选项已经在devtools中实现了。

https://chromedevtools.github.io/devtools-protocol/tot/page/#method-printtopdf

但是,我找不到如何在CLI中使用这些选项。是否可以从Selenium调用Devtools?

另外,我如何在开发工具中调用page.printtopdf。我尝试在控制台中运行该命令。显示页面未定义。

共有2个答案

宋经赋
2023-03-14

“/path/to/google-chrome”:这是Google Chrome的路径。

“--headless”:没有完整浏览器UI的无头环境中的Chrome浏览器

'--run-all-compositor-stages-before-draw':在呈现所有数据之前防止创建Pdf(在呈现所有数据之后将创建Pdf)。

'--virtual-time-budget=x:它会延迟Pdf的创建过程,这里x是毫秒。

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

url:网页的url。

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

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

以上CSS代码对网页呈现没有影响,但只对PDF格式的页面有影响。

荀嘉熙
2023-03-14

将此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/
 类似资料:
  • 我正在尝试使用Chrome的Headless功能将html转换为PDF。然而,我根本得不到输出。控制台也不显示任何错误。我正在我的windows M/C中运行以下命令。 chrome--无头--禁用GPU--打印到PDF 我试过了所有的选择。没有生成任何内容。我用的是chrome版本60

  • 根据这些文件,可以使用以无头模式启动Chrome以导出网页的PDF格式。这对于通过请求访问的页面很好。 试图找到一个打印到PDF的解决方案,这将允许我导出一个PDF后,执行多个导航请求从Chrome。示例:打开,输入搜索查询,单击第一个结果链接,导出到PDF。 看着(数量非常有限的)文档和样本,我没能找到一种方法来指示Chrome在页面加载后导出PDF。我正在使用Java的。 一个不涉及Chrom

  • 我有一个只在Chrome中呈现的页面,带有一系列自定义字体: 浏览器完美地呈现了一切。然而,当我试图将此打印到PDF时,有两个问题: > 无论我做什么,我都无法生成嵌入字体的PDF。我尝试过Chrome的“保存到PDF”,它会生成Adobe Acrobat无法打开的PDF。各种PDF打印机(如Adobe的)不会产生嵌入这些字体的PDF,即使用标准的网络字体替换@font-faces确实会产生嵌入字

  • 我有一个打印PDF的java程序。它使用Apache PDFBox创建一个对象(在某些情况下来自pdf文档或流),然后使用API将其发送到打印机: 现在我需要能够告诉打印机装订东西。。。 我熟悉javax.print.attributesAPI,并成功地使用它来指定托盘或设置双工,例如: 我知道装订有一个属性: 我有一个施乐Versalink B7035,带有Finisher XL附件,完全支持装

  • 问题内容: 我有一个PDF文档,我想用我的python应用程序打印它。 我在这里尝试了解决方案(使用python的win32print模块打印PDF文档吗?),但是当我安装Ghostscript 9.15(即实际版本)时,它没有 我使用该命令的方式起作用,但是它会打开默认查看器(我的浏览器是Adobe Reader),并且在打印后它仍然保持打开状态,试图通过杀死其他打开的窗口来终止该进程,但我不希

  • 如标题所示,我们的网络服务器经常向用户返回pdf报告。当他们查看pdf报表时,他们通常使用Chrome中的Ctrl P来打印它。 问题是当用chrome打印pdf时,它总是切断pdf页面的页眉和页脚(~0.45厘米或0.1771654英寸)。 你们可以在这篇文章的底部看到这张图片,当我们按下“打印”按钮时,两个红色矩形中的所有内容都将丢失(尽管它在打印预览中显示良好)。 我搜索了关键字"Chrom