小编use*_*380的帖子

如何使用Chrome DevTools协议的printToPDF修改第一页Number或在页眉或页脚模板中执行JS

我正在使用Headless Chrome通过printToPDF CDP方法打印出PDF文件。如果将displayHeaderFooter参数设置为true,则可以使用参数headerTemplate和设置特定的页面页眉和页脚footerTemplate。该协议提供了一些HTML类来显示一些信息,这些是:datetitleurlpageNumbertotalPages

例如,我们可以设置footerTemplate<span class="pageNumber"></span>在页脚中显示当前页码。我们还需要添加一些样式以正确显示它。默认的页眉和页脚设置可以在此处找到,渲染器C ++组件在此处

我想修改显示的pageNumber值。我的目标是从给定的数字开始计算页面数。

木偶API文档注意到headerTemplatefooterTemplate标记具有以下限制:

  1. 模板内的脚本标签不进行评估。
  2. 页面样式在模板内不可见。

一个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)

它说,如果我们onloadimg标签上使用属性,则可以在模板中运行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

7
推荐指数
1
解决办法
343
查看次数

无头 Chrome PDF 打印在大型文档中质量较差

我正在使用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

5
推荐指数
0
解决办法
712
查看次数