Chrome JS页眉页脚

在Chrome浏览器中,通过JavaScript和CSS实现打印页面时的页眉和页脚自定义是一个常见需求,本文将详细介绍如何使用CSS的@page规则、JavaScript的window.print()方法以及一些第三方工具来实现这一功能。
一、使用CSS @page规则
CSS的@page规则允许开发者对打印页面的样式进行精细控制,包括页眉和页脚的设置,以下是具体步骤:
1. 定义@page规则
在CSS中,可以使用@page规则来定义页面的尺寸、边距以及页眉和页脚的内容。
@page {
size: A4; /* 设置页面尺寸为A4 */
margin: 20mm; /* 设置页面边距 */
@top-left {
content: "公司名称"; /* 页眉左侧内容 */
}
@top-right {
content: "打印日期: " counter(page); /* 页眉右侧内容 */
}
@bottom-left {
content: "页脚左侧内容"; /* 页脚左侧内容 */
}
@bottom-right {
content: "页码: " counter(page); /* 页脚右侧内容 */
}
}2. 设置页眉页脚内容
在@page规则中,可以使用@top-left、@top-right、@bottom-left和@bottom-right来分别定义页眉和页脚的内容,以下是一个具体的示例:
@page {
size: A4; /* 设置页面尺寸为A4 */
margin: 20mm; /* 设置页面边距 */
@top-left {
content: "公司名称"; /* 页眉左侧内容 */
}
@top-right {
content: "打印日期: " counter(page); /* 页眉右侧内容 */
}
@bottom-left {
content: "页脚左侧内容"; /* 页脚左侧内容 */
}
@bottom-right {
content: "页码: " counter(page); /* 页脚右侧内容 */
}
}通过这种方式,可以灵活地设置打印页面的页眉和页脚内容。

二、使用JavaScript window.print()方法
JavaScript的window.print()方法可以触发浏览器的打印功能,但无法直接控制页眉和页脚内容,在这种情况下,可以通过在打印前动态修改页面内容来实现自定义页眉和页脚。
1. 动态添加页眉页脚内容
在JavaScript中,可以使用DOM操作在打印前动态添加页眉和页脚内容,以下是一个示例:
<!DOCTYPE html>
<html>
<head>
<style>
.header, .footer {
display: none;
}
@media print {
.header, .footer {
display: block;
position: fixed;
width: 100%;
text-align: center;
}
.header {
top: 0;
}
.footer {
bottom: 0;
}
}
</style>
</head>
<body>
<div class="header">公司名称</div>
<div class="footer">页码: <span class="pageNumber"></span></div>
<div class="content">
<!-内容区域 -->
</div>
<script>
function updatePageNumbers() {
var totalPages = document.querySelectorAll('.pageNumber').length;
for (var i = 0; i < totalPages; i++) {
document.querySelectorAll('.pageNumber')[i].textContent = (i + 1);
}
}
window.onload = function() {
updatePageNumbers();
window.print();
}
</script>
</body>
</html>在这个示例中,通过JavaScript动态设置页眉和页脚内容,并在打印时显示。
三、使用第三方工具生成PDF
除了使用CSS和JavaScript外,还可以通过服务器端生成PDF来实现复杂的页眉和页脚设置,常用的工具有Puppeteer和wkhtmltopdf。
1. 使用Puppeteer

Puppeteer是一个Node.js库,它提供了一个高级API来控制Chrome或Chromium浏览器,可以用来生成PDF并设置页眉和页脚,以下是一个示例:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.pdf({
path: 'example.pdf',
format: 'A4',
displayHeaderFooter: true,
headerTemplate: '<div style="font-size:12px; text-align:center;">公司名称</div>',
footerTemplate: '<div style="font-size:12px; text-align:center;">页码: <span class="pageNumber"></span></div>',
printBackground: true,
});
await browser.close();
})();2. 使用wkhtmltopdf
wkhtmltopdf是一个开源工具,可以将HTML转换为PDF,并支持自定义页眉和页脚,以下是一个示例:
wkhtmltopdf --header-left "公司名称" --footer-right "页码: [page]" https://example.com example.pdf
通过这种方式,可以方便地将HTML页面转换为带有自定义页眉和页脚的PDF。
通过CSS的@page规则、JavaScript的window.print()方法和第三方工具,可以在Chrome浏览器中实现打印页面时的页眉和页脚自定义,根据具体需求选择合适的方法,可以实现灵活且高效的打印效果。
以上就是关于“chromejs页眉页脚”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!