解决方案:
import CMapReaderFactory from 'vue-pdf/src/CMapReaderFactory.js
this.pdfUrl = pdf.createLoadingTask({ url: pdfUrl, CMapReaderFactory })
解决方案:
原因其实是CMapReaderFactory 对象动态import语言文件的时候缓存了文件,导致第二次取缓存加载时出了问题,把CMapReaderFactory.js的代码改成这样就行了:
`
var bcmapName = './buffer-loader!pdfjs-dist/cmaps/'+query.name+'.bcmap';
return import(bcmapName).then(function(bcmap) {
//移除缓存的文件
delete require.cache[require.resolve(bcmapName)];
- return {
- cMapData: bcmap.default,
- compressionType: CMapCompressionType.BINARY,
- };
- });
`
由于这是第三方文件,改不太方便,不利于后续维护,可使用vue-pdf-signature,或者自己fork vue-pdf来改造。
参考文章: vue-pdf踩坑指南_快进小树林的博客-CSDN博客