前端打印(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>
相关推荐
LucianaiB2 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
excel2 小时前
JavaScript 对象池:减少高频对象创建与 GC 压力
前端
陈随易4 小时前
纯 Go 写的 JS 引擎,跑分超过了 C 语言的 QuickJS
前端·后端·程序员
子兮曰5 小时前
Chrome 权限元素实战:144 与 151 的渐进增强写法
前端·javascript·chrome
IT_陈寒6 小时前
Redis连接池泄漏那次,我差点把生产环境搞崩了
前端·人工智能·后端
强尼银手6 小时前
我花一天做了个格斗游戏原型,判定全对,然后被「美术」劝退了
前端·javascript
石小石Orz6 小时前
AI 正在蚕食我们的编码能力
前端·后端·算法
陈随易7 小时前
专注飞机 FocusFlight,两个人把番茄钟做成了一趟航班
前端·后端·程序员
总要学点什么7 小时前
第98篇:三维特效-材质线效果——给一条线换十种材质,虚线的图案只填了一半
开发语言·前端·javascript·ecmascript·gis·webgl·材质
10share7 小时前
基于大模型的 i18n 方案:把中文原文当 Key,轻松搞定多语言维护
前端·vue.js