Vue 3 调起打印窗口

<template>
  <el-button @click="print()">点击打印</el-button>

  <div id="printBox">
    // 需要打印的内容
  </div>
</template>

<style scoped lang="scss">
#printBox {
  // 将元素定位在浏览器的固定位置,并将其移动到非常靠上的位置(-99999px),使其在页面上不可见
  position: fixed;
  top: -99999px;
  left: 0;
  visibility: hidden;
  height: auto;
  overflow-y: scroll;
  background-color: #fff;
}
</style>

打印方法

const print = () => {
  setTimeout(() => {
    var printBox = document.getElementById("printBox"); //获取需要打印的内容
    var newContent = printBox.innerHTML;
    var iframe = document.createElement("IFRAME");
    iframe.innerText =
      "position:absolute;width:0px;height:0px;left:-500px;top:-500px;";
    document.body.appendChild(iframe);
    var doc = iframe.contentWindow.document;
    var style = document.createElement("style");
    style.type = "text/css";
    style.innerText = "table {border-collapse: collapse;border-spacing: 0;}";
    style.innerText +=
      ".hospitalTitle{font-size: 20px;font-weight: 600;text-align: center;margin: 20px 0;}";
    style.innerText +=
      "th {border: 1px solid #ccc;width: 220px;padding: 20px 20px;text-align: center;background: #9bc2e6;}";
    style.innerText +=
      "td {border: 1px solid #ccc;width: 220px;padding: 10px 10px;text-align: center;}";
    doc.head.appendChild(style);
    doc.body.innerHTML = newContent;
    var frameWindow = iframe.contentWindow;
    frameWindow.close();
    frameWindow.focus();
    frameWindow.print();
  }, 200);
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值