接口返回pdf文件流,前端打印、下载操作

接口返回pdf文件流,前端打印、下载操作

获取pdf文件流

  exoprtPdf(api, obj, type) {
      api({
        ...obj,
        userId: this.userId,
      }).then((resp) => {
        if (type == 1) {
          this.saveFile(resp.data);//下载
        } else {
          this.printFn(resp.data);//打印
        }
      });
    },

下载

 saveFile(data) {
      let blob = new Blob([data], {
        type: "application/pdf",
      });
      let url = window.URL || window.webkitURL;
      let fileURL = url.createObjectURL(blob);
      let a = document.createElement("a");
      a.href = fileURL;
      a.download = "";
      a.target = "_self";
      a.click();
      url.revokeObjectURL(fileURL);
    },

打印

 printFn(dataResult) {
      var date = new Date().getTime();
      var ifr = document.createElement("iframe");
      ifr.style.frameborder = "no";
      ifr.style.display = "none";
      ifr.style.pageBreakBefore = "always";
      ifr.setAttribute("id", "printPdf" + date);
      ifr.setAttribute("name", "printPdf" + date);
      ifr.src = window.URL.createObjectURL(dataResult);
      document.body.appendChild(ifr);
      this.doPrint("printPdf" + date);
      window.URL.revokeObjectURL(ifr.src); // 释放URL 对象
    },
    doPrint(val) {
      var ordonnance = document.getElementById(val).contentWindow;
      setTimeout(() => {
        ordonnance.print();
      }, 100);
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值