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

前端打印(html)

目录

1.window.print()

2.使用插件print.js

1.window.print()

<template>

  <div id="contenteBox">内容</div>

   <button @click="printContent">打印</button>

</template>

<script>

  export default{

    data(){

      return{} 

    },

  methods:{

       printContent(){

          let contentDom=document.getElementById('contenteBox')

          let html=`

               <head>

                  <style lang='scss'>

                        #contenteBox{font-size:18px;background-color:#333}

                  <style>

               </head>

               <body>${contentDom.innerHTML}</body>

            `

       window.print()

        }

     }

  }

</script>

let contentDom=document.getElementById('contenteBox') //获取id为contenteBox的dom元素

html  //设置打印主体以及css样式

window.print()  //打印

也可以let bodyContent = document.getElementById('contenteBox').innerHTML 通过 获取需要打印的元素

通过 document.body.innerHTML=bodyContent 把当前页面替换为打印内容HTML

window.print()打印  //记得最后还原页面

2.使用插件print.js

2.1 vue2

https://www.npmjs.com/package/print-js

npm install print-js --save
yarn add print-js
import printJS from 'print-js'
<template>
  <div>
    <button @click="printContent">打印</button>
    <div id="contenBox">
      <div>内容</div>
    </div>
  </div>
</template>

<script>
import printJS from 'print-js';

export default {
  methods: {
    printContent() {
      printJS({
        printable: 'contenBox',
        type: 'html',
        documentTitile:'打印',
        style: `
          #contenBox{
              color:#333,
              font-size:20px
          }
        `
      });
    }
  }
};
</script>

printable 文档来源

type 打印类型

documentTitle 打印显示的文档标题

style 自定义样式

2.2 vue3

<template>
  <div>
    <button @click="printContent">打印</button>
    <div ref="contenBox">
      <div>内容</div>
    </div>
  </div>
</template>

<script>
import printJS from 'print-js';
let contenBox=ref()
function printContent() {
      printJS({
        printable: 'contenBox',
        type: 'html',
        documentTitile:'打印',
        style: `
          #contenBox{
              color:#333,
              font-size:20px
          }
        `
      });
    }
</script>


http://www.kler.cn/a/443598.html

相关文章:

  • Android service framework笔记
  • Linux网络——TCP的运用
  • 深度分析java 使用 proguard 如何解析混淆后的堆栈
  • 五分钟学会如何在GitHub上自动化部署个人博客(hugo框架 + stack主题)
  • Kubernetes 常用的网络插件
  • 《信管通低代码信息管理系统开发平台》Windows环境安装说明
  • 设计模式之创建型
  • sql server 备份恢复
  • 《Vue3实战教程》5:响应式基础
  • 【异常】GL-SFT1200路由器中继模式,TL-CPE1300D无法搜寻5G网问题分析
  • 如何在STM32中使用RTC定时器
  • [一招过] Python的正则表达式篇
  • 基于51单片机的交通灯设计—夜间、紧急、复位、可调时间、四个数码管显示
  • kubeadm一键部署K8S 集群架构
  • Gitee与idea的项目提交步骤
  • MySQL专题:SQL优化实践
  • JavaCV 之中值滤波:提升图像质量的有效方法
  • 【C语言】库函数常见的陷阱与缺陷(一):字符串处理函数[2]--gets函数
  • PHP:构建动态网站的后端基石
  • 微服务-02
  • 拍立淘按图搜索API接口需要遵循一定的步骤和注意事项
  • 从Python到C++的转变之路——如何高效复现C++开源项目 || Windows || Visual Studio || 持续更新
  • IP协议详解
  • 八大网络安全策略:如何防范物联网(IoT)设备带来的安全风险
  • 开发功能需求文档: Django 管理后台图片字段管理
  • 统一身份安全管理体系的业务协同能力