当前位置: 首页 > news >正文

CSS实现自动分页打印同时每页保留重复的自定义内容

当需要打印的内容过长时系统会产生自动分割页面,造成样式不太美观。使用CSS的 @media print 结合 <table> 可以实现对分页样式的可控。效果如下:

假设有50条数据,打印时系统会自动分成两页,同时每页保留自定义的header和footer。

第一页
第二页

代码如下:

<html>
<head><title>print</title><style>/* 在打印时应用此规则 */@media print {@page {/* 文档的页面大小 */size: A4;/* 文档的页边距 */margin: 10mm 20mm 20mm;}table {width: 100%;border-collapse: collapse;}tbody tr td {padding-left: 5px;border: 1px solid #000;word-break: keep-all;font-size: .9rem;}.header-row th {border: 1px solid #000;}.title {margin: 0 0 20px;font-size: 1.5rem;}.footer-row {padding-top: 10px;}}</style>
</head>
<body><table><thead><tr><th colspan="3"><div class="title">标题1标题1</div></th></tr><tr class="header-row"><th>First Name</th><th>Last Name</th><th>age</th></tr></thead><tbody id="tbody"></tbody><tfoot><tr><td colspan="1" class="footer-row"><div>打印人:小王</div></td><td colspan="2" class="footer-row"><div class="footer-time">打印时间:2000-01-01 00:00:00</div></td></tr></tfoot></table><script>// mockconst rowNum = 50;const fragment = document.createDocumentFragment();for (let i = 0; i < rowNum; i++) {const _tr = document.createElement('tr');const _td1 = document.createElement('td');const _td2 = document.createElement('td');const _td3 = document.createElement('td');_td1.appendChild(document.createTextNode(`John${i}`));_td2.appendChild(document.createTextNode(`Doe${i}`));_td3.appendChild(document.createTextNode(`${i}`));_tr.appendChild(_td1);_tr.appendChild(_td2);_tr.appendChild(_td3);fragment.appendChild(_tr);}document.querySelector('#tbody').appendChild(fragment);</script>
</body>
</html>

ctrl+p / command+p 唤起打印即可查看效果

注:不能使用 @page 规则修改所有的css属性,只能修改文档的 margin、orphans、windows 和分页符,对其他属性的修改无效。@page

http://www.lryc.cn/news/44576.html

相关文章:

  • 基于prometheus的监控告警怎么实现?
  • 2007年4月全国计算机等级考试二级JAVA笔试试题及答案
  • 灌水玩玩 ChatGPT AIGC生成的有栈协同程序实现(例子)
  • 【砝码称重】暴力DFS(一半分)+ dp(可AC)
  • 科大奥瑞物理实验——霍尔效应实验
  • 2023_深入学习HTML5
  • Apache iotdb-web-workbench 认证绕过漏洞(CVE-2023-24829)
  • 【7-1】Redis急速入门与复习
  • 5、操作系统——进程间通信(3)(system V-IPC:消息队列)
  • C++vector容器用法详解
  • Log4j2的Loggers详解
  • 计算机视觉的应用1-OCR分栏识别:两栏识别三栏识别都可以,本地部署完美拼接
  • 低代码平台如何选型, 43款国内外低代码平台一网打尽
  • 第六周作业(1.5小时)
  • 排序 (蓝桥杯) JAVA
  • 【Blender 水墨材质】实现过程剖析01
  • 代码随想录算法训练营第五十六天|583. 两个字符串的删除操作、72. 编辑距离
  • 【ArchLinux】【KDE】Archlinux的安装与使用
  • Go语言精修(尚硅谷笔记)第六章
  • Photoshop的功能
  • C++初阶——内存管理
  • uds服务汇总
  • 【深度学习】2023李宏毅homework1作业一代码详解
  • 【软件测试】基础知识第二篇
  • Java中File类以及初步认识流
  • 【C语言】文件操作详细讲解
  • 爱奇艺万能联播使用教程
  • 真题讲解-软件设计(三十七)
  • Android 上的协程(第一部分):了解背景
  • 【H3C】VRRP2 及Vrrp3基本原理 华为同用