我正在使用Headless Chrome通过printToPDF CDP方法打印出PDF文件。如果将displayHeaderFooter参数设置为true,则可以使用参数headerTemplate和设置特定的页面页眉和页脚footerTemplate。该协议提供了一些HTML类来显示一些信息,这些是:date,title,url,pageNumber,totalPages。
例如,我们可以设置footerTemplate为<span class="pageNumber"></span>在页脚中显示当前页码。我们还需要添加一些样式以正确显示它。默认的页眉和页脚设置可以在此处找到,渲染器C ++组件在此处。
我想修改显示的pageNumber值。我的目标是从给定的数字开始计算页面数。
该木偶API文档注意到这headerTemplate和footerTemplate标记具有以下限制:
一个GitHub的评论提供以下功能:
<div style="font-size: 10px;">
<div id="test">header test</div>
<img src='http://www.chromium.org/_/rsrc/1438879449147/config/customLogo.gif?revision=3' onload='document.getElementById("test").style.color = "green";this.parentNode.removeChild(this);'/>
</div>
Run Code Online (Sandbox Code Playgroud)
它说,如果我们onload在img标签上使用属性,则可以在模板中运行JavaScript。但是,我无法重现结果,该片段显示在屏幕快照中。
例如,以下JavaScript可以计算10页中的页面:
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="tmpimg"
onload="var x = document.getElementById('pn').innerHTML; var y = 10; document.getElementById('pn').innerHTML = parseInt(x) …Run Code Online (Sandbox Code Playgroud) html javascript pdf-generation google-chrome-devtools google-chrome-headless
我正在使用Headless Chrome通过printToPDF CDP 方法打印 PDF 文件。如果文档有大量页面,那么如果我实际打印 PDF 文件,或者打印到另一个 PDF 文件,那么随着页面数量的增加,页面质量会变差。
为什么会发生这种情况,我该如何解决这个问题?
我在 Win10 上以无头模式使用 Google Chrome 69.0,并使用 Node.js v8.11.3。
例如,我们想打印出以下 HTML 内容,而不需要任何额外的 printToPDF 设置。
<div class="lorem">
1) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur aliquet sem sed neque faucibus dignissim. Sed congue sodales ex, vel bibendum dolor placerat vel. Curabitur ultricies luctus dui, a accumsan purus placerat a. Nullam ut lectus ultricies, mattis enim non, rutrum erat. Nulla sodales tellus in bibendum vehicula. Aenean aliquam tellus …Run Code Online (Sandbox Code Playgroud) html pdf-generation adobe-reader google-chrome-devtools google-chrome-headless