首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Chrome DevTools协议的printToPDF在页眉或页脚模板中修改第一个DevTools或执行JS

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

Stack Overflow用户
提问于 2018-10-09 21:31:07
回答 1查看 1.2K关注 0票数 35

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

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

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

headerTemplatefooterTemplate标记的footerTemplate具有以下限制:

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

GitHub评论提供以下内容:

代码语言:javascript
运行
复制
<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>

它说,如果我们在一个onload标记上使用一个img属性,那么我们可以在模板中运行JavaScript。然而,我无法重现结果,在屏幕截图下面的片段中显示了什么。

例如,下面的JavaScript可以从10中计数页面:

代码语言:javascript
运行
复制
<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) + y; this.parentNode.removeChild(this);"/>
<span id="pn" class="pageNumber"></span>

但不幸的是,这个脚本没有修改页面编号,我也不知道如何解决这个问题。我也尝试过使用纯CSS解决方案,但没有成功。

任何解决这个问题的想法都是欢迎的。

EN

回答 1

Stack Overflow用户

发布于 2022-08-12 14:52:28

你试过移动到img标签的上方吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52729615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档