avatar

前端/前端页面打印

前端页面打印踩坑

最近遇到了一个前端页面打印的需求:

  1. 打印一个表单,用户可自定义选择需要打印的区域。

  2. 每页纸只能打印 2 个表单,自动分页。

  3. 可根据不同打印选项,部分元素的样式进行动态修改。

解决方案

1.CSS 通过媒体查询,在打印时生效,给元素绑定 css 类名以自定义想要的打印样式

1
2
3
4
5
@media print {
.display-none {
display: none;
}
}

2.调用浏览器的打印方法

1
window.print();

3.此外,还可使用 js 的各种 dom 操作在点击打印时动态的修改部分打印样式。

1
2
3
document.getElementsByClassName("").classList.remove("");
document.getElementsByClassName("").classList.add("");
……

自动分页如何实现?

查阅资料发现 css 有两个属性 详见:w3school

通过数据源的下标判断奇偶,思考首尾元素的特殊情况……绑定 class 类名即可适应各种情况。

1
2
3
4
.a4 {
page-break-before: always;
page-break-after: always;
}
文章作者: 小黑
文章链接: http://yoursite.com/2023/01/17/前端/前端页面打印/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小黑的小站
打赏
  • 微信
    微信
  • 支付寶
    支付寶
2