vue3中使用printJs转图片打印

该文章介绍了如何利用npm安装html2canvas和print-js库,并通过给不需要打印的元素添加data-html2canvas-ignore属性来实现网页内容的筛选。接着,展示了如何使用html2canvas将页面转换为canvas,然后转换为base64格式的图片,最后通过print-js进行打印操作。代码示例中包含了延迟执行和窗口滚动位置的考虑。
摘要由CSDN通过智能技术生成

一、安装

npm install html2canvas --save
npm install print-js --save 
//不需要打印的元素添加 data-html2canvas-ignore 属性
<div class="operateArea boxSd setBtn" data-html2canvas-ignore :key="item.key">
	<el-button v-if="lItem.btnType == 'print'"  @click="openPrint()">{{ $t(lItem.label) }}</el-button>
</div>

<script setup>
import html2canvas from 'html2canvas';
import printJS from 'print-js'
// printJs转图片打印
function openPrint(){
   proxy.$modal.msgSuccess(t('element255'), 2000)

   setTimeout(()=>{
      html2canvas(curPage.value, {
            backgroundColor: '#ffffff',
            useCORS: true,
            // width: window.screen.availWidth,
            // height: window.screen.availHeight,
            windowHeight: document.body.scrollHeight,
            y:window.pageYOffset
      }).then((canvas) => {
            // let url = canvas.toDataURL('image/jpeg', 1.0)
            const url = canvas.toDataURL()
            //打印图片
            printJS({
               printable: url,
               type: 'image',
               style: `@media print { @page {size: auto; margin: 0; } body{margin:0 5px}}`,
               documentTitle: '',
            })
            // base64格式图片打印查看
            // console.log(url)
      })
   },100)
}
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值