pdf文件流显示空白

后端返回的pad文件流 预览不显示文字

getPdfData().then(res => {
    return res.json();  //返回的base64的字符
  }).then(res => {
    let base = Base64.decode(res.retObj)  

    console.log(base);
    
    const blob = new Blob([base], { type: 'application/pdf;chartset=UTF-8' })
    const url = window.URL.createObjectURL(blob)
    return url
  })

问题出在数据从服务器传递到客户端的某种方式上。确保服务器以Base64编码发送数据至关重要,否则客户端无法将PDF字符串反序列化为二进制格式。下面
具体参考:

我是用ifream直接显示pdf的,下载的话可以创建一个a标签

let binaryString = window.atob(res.retObj);
    let binaryLen = binaryString.length;
    let bytes = new Uint8Array(binaryLen);
    for (let i = 0; i < binaryLen; i++) {
        let ascii = binaryString.charCodeAt(i);
        bytes[i] = ascii;
    }
    let blob = new Blob([bytes], {type: "application/pdf"});
    return window.URL.createObjectURL(blob);

可以参考https://www.jianshu.com/p/242525315bf6

请求设置responseType:"multipart/form-data",
返回时
var binaryData = [];
binaryData.push(data.data);
const blob = new Blob(binaryData, { type: 'application/pdf;chartset=UTF-8' })
    const url = window.URL.createObjectURL(blob)
    return url

有用的话请给个采纳

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: H5移动端实现pad弹窗手上滑上移动,手下滑下移动(和高德地图上的展示框类似)中的 一、背景 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    最近承接了一个需求,需要在H5页面移动端实现手滑动上移动,下滑下移动,我一看就用到了滑动的三个事件touchstarttouchmovetouchend,顾名思义,touchstart就是滑动起始的触发事件,touchmove就是滑动时的触发事件,touchend就是脱离滑动的触发事件

    • 我录制的一个效果图,网上很少见的哟
      请添加图片描述

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^