JS 前端打印功能--原生写法(分页处理、样式调整、隐藏打印滚动条)

先直接上代码 不借助JS插件
1. css样式代码块

     	p,
        textarea,
        span,
        table,
        input {
            page-break-inside: avoid;
        }

关键属性 page-break-inside: avoid 判定分页检查点位置 属性详细值参照 MDN

2.打印预览/输出时的样式

    <style type="text/css" media="print">
        body {
            height: auto;
            break-inside: avoid;
            line-height: 1.6;
            -webkit-print-color-adjust: exact;
            -moz-print-color-adjust: exact;
            -ms-print-color-adjust: exact;
        }

        body *::-webkit-scrollbar {
            display: none;
        }
        p,
        textarea,
        span,
        table,
        input {
            page-break-inside: avoid;
        }
    </style>

关键点

  1. 分页的关键点 height: auto;
  2. 页面打印时规避节点不被截断的关键点 page-break-inside: avoid;
  3. 打印背景色样式的关键点 -webkit-print-color-adjust: exact;
  4. 去掉打印滚动条的关键点 *body ::-webkit-scrollbar

3.打印API

window.print();

打印结果预览

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用中提到了使用vue-print-nb插件进行打印,但是没有具体说明如何使用该插件打印原生table。可以通过查看vue-print-nb的官方文档或者源代码来获取更详细的信息。根据我对vue-print-nb插件的了解,它主要是用于打印Vue组件而不是原生HTML元素。如果要打印原生table,可以考虑使用其他方法。 一个可能的方法是使用原生JavaScript中的window.print()方法来实现打印功能。可以通过在按钮的点击事件中调用window.print()来触发浏览器的打印功能。以下是一个示例代码: ```javascript // HTML <button onclick="printTable()">打印表格</button> <table id="myTable"> <!-- 表格内容 --> </table> // JavaScript function printTable() { window.print(); } ``` 通过调用window.print()方法,浏览器会自动弹出打印对话框,并将当前页面的内容打印出来,包括原生的table元素和其中的数据。 请注意,这只是其中一种可能的方法,请根据具体需求和项目使用的技术栈选择适合的打印方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [前端打印功能js打印功能、vue打印功能、vue-print-nb 打印table,数据很多,打印不全](https://blog.csdn.net/qq_45351419/article/details/111992506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

词不达意难知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值