美文网首页
pdf 预览 打印

pdf 预览 打印

作者: 云高风轻 | 来源:发表于2023-10-23 19:36 被阅读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预览

    • 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("数据解析失败");;
                }
            },
    

    参考资料


    初心

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

    相关文章

      网友评论

          本文标题:pdf 预览 打印

          本文链接:https://www.haomeiwen.com/subject/hpiridtx.html