pdf 预览 打印

2023-10-23  本文已影响0人  云高风轻

1. 前言

  1. 预览和打印其实一样

2. 首先注意请求头这块的配置

export function handPrint(data) {
  return request({
    url: CommonDataAPI.XXurl,
    method: "get",
    params: data,
    responseType: "blob"
  });
}

  1. responseType: "blob"
  2. 具体和自己的服务器人员沟通

3. pdf预览


  pdfViewBlob(res, fileName) {
    if (!res.data || res.data.size == 0) {
      newMessage.error("解析数据为空!");
      return;
    }
    if (isIE()) {
      // 如果是ie浏览器下载到本地
      let blob = new Blob([res.data], {
        type: "application/octet-stream;charset=utf-8",
      });
      window.navigator.msSaveOrOpenBlob(blob, fileName);
    } else {
      // 如果不是ie浏览器,新窗口打开预览文件,自行下载
      let pdfUrl = "";
      const binaryData = [];
      binaryData.push(res.data);
      //获取blob链接
      pdfUrl = window.URL.createObjectURL(
        new Blob(binaryData, { type: "application/pdf" })
      );
      let newWindow = window.open();
      newWindow.location.href = pdfUrl;
    }
  },

4. 打印

    // 打印
        async handlePrint(row) {
            let vm = this;
            let params = {
            key:val,
            }
            const res = await handPrint(params);
            if (!(res && res.data)) {
                return this.$message.error("数据获取失败");
            }
            if (res.status == 200) {
                let fileReader = new FileReader();
                fileReader.readAsText(res.data);
                fileReader.onload = function (result) {
                    try {
                        let jsondata = JSON.parse(result.target.result);
                        if (jsondata.code != 0) {
                            vm.$message.error(jsondata.msg);
                            return;
                        }
                    } catch {
                        // vm.$printFn.pdfViewBlob(res, fileName + ".pdf");
                        vm.$printFn.pdfViewBlob(res, "xxx.pdf");
                    }
                };
            } else {
                // this.$message.error("数据解析失败");;
            }
        },

参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
上一篇下一篇

猜你喜欢

热点阅读