vue3 window.print()局部打印

<el-button type="primary" @click="toPrint">打 印</el-button>

 <div class="container" id="printcontent">
   <div class="section" >
     	<!-- 打印时图片不展示的情况处理:把获取到的图片转为base64格式  -->
        <img id="imgMsg" :src="ruleForm.imgUrlBase64 ? ruleForm.imgUrlBase64 : ruleForm.imgUrl ? ruleForm.imgUrl : zanWuImg" />
   </div>
 </div>


function toPrint() {
   
  isPrint.value = true; // 如果打印展示的数据和页面展示的数据不一致,加一个变量来判断当前是打印状态还是展示状态
  window.addEventListener("beforeprint", (event) => {
   
    // 获取页面打印区域
    window.newstr = document.getElementById("printcontent").innerHTML;
    // 打印的区域赋给body(不是特别友好,打印区域会替换页面body)
    document.body.innerHTML = newstr;
  });
  setTimeout(() => {
   
    window.print({
   
      scale: 0.6, // 页面内容展示不全
    });
  }, 800);
  // 由于页面内容被替换,除打印区域外的所有内容包括按钮都会失效,所以页面需要重新加载
  window.onafterprint</
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值