pdf预览空白问题解决。第一次预览正常,再重新打开就空白的问题。是因为cmaps没有更新

文章目录

问题描述

我用的是pdfjs作为PDF预览工具使用。

预览有电子签章的PDF后(如下图的水印、签章),再重新预览没有电子签章的PDF,就会空白。

如上图,第一个PDF的接口加载了电子签章的字体,但是当我点击第二个PDF时,就出现预览空白,原因是因为它沿用了前面PDFcmaps文件。

看网络面板,可以排除是接口的问题,因为在预览PDF时,是重新获取了PDF文件流的。

所以,问题就出在重新加载新的PDF文件流时,有缓存,没有更新bcmaps文件导致。

问题解决

最开始我尝试用特殊的方法去解决bcmaps缓存的问题,但是都无效。

包括问了各个AI,也无济于事。

后面我发现用这些预览时,其实都是用的是同一个组件。

所以,就应该销毁PDF预览组件,让其第二次打开时,重新构建,不依赖之前的缓存即可。

最终添加了一行很简单的代码来解决了。

html 复制代码
<el-dialog
      width="80%"
      title="文件预览"
      v-loading="loading"
      :visible.sync="dialogPdfViewVisible"
      append-to-body
    >
      <pdf-view
        v-if="dialogPdfViewVisible"  //这里就是我添加的  v-if即可
        :pdf-data="pdfViewData"
        data-type="base64"
        :total="true"
        :visible="true"
        custom-class="canvasdiffer"
      />
    </el-dialog>

问题总结

出了问题,如果能通过刷新页面就能解决问题,那么就是缓存问题。想办法让其不缓存即可解决。

曾经参考过的文章(也未能解决)

https://blog.csdn.net/weixin_42530606/article/details/136152608

https://blog.csdn.net/weixin_44998124/article/details/120889121

相关推荐
我要学好英语10 小时前
知网下载的.caj文件怎么转成.pdf文件
pdf
持续前行10 小时前
vscode 中找settings.json 配置
前端·javascript·vue.js
JosieBook10 小时前
【Vue】11 Vue技术——Vue 中的事件处理详解
前端·javascript·vue.js
安逸点10 小时前
Vue项目中使用xlsx库解析Excel文件
vue.js
一只小阿乐10 小时前
vue 改变查询参数的值
前端·javascript·vue.js·路由·router·网文·未花中文网
小酒星小杜11 小时前
在AI时代下,技术人应该学会构建自己的反Demo地狱系统
前端·vue.js·ai编程
Code知行合壹11 小时前
Pinia入门
vue.js
今天也要晒太阳47311 小时前
element表单和vxe表单联动校验的实现
vue.js
依赖_赖12 小时前
前端实现token无感刷新
前端·javascript·vue.js
hhcccchh13 小时前
学习vue第十三天 Vue3组件深入指南:组件的艺术与科学
javascript·vue.js·学习