问题描述:在开发时遇到需要将后端传回来的 pdf  文件展示出来,但是中文无法显示,网上找了一堆办法都没有用

解决方法:找到node_modules/pdfjs-dist/build/pdf.js 中的以下代码

this.CMapReaderFactory = new params.CMapReaderFactory({
      baseUrl: params.cMapUrl,
      isCompressed: params.cMapPacked
    })

修改为:

this.CMapReaderFactory = new params.CMapReaderFactory({
      baseUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.5.207/cmaps/',
      isCompressed: true
    })

然后在你的vue文件里面,也是改为这样:

this.utl = pdf.createLoadingTask(image, {
              // cMapUrl传不进去,中文会缺失,可以在 node_modules\pdfjs-dist\es5\build\pdf.js下设置cMapUrl和cMapPacked
              //   url: image,
              cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.5.207/cmaps/',
              cMapPacked: true
            })

最后将你的代码打包,还有将node_modules/pdfjs-dist/cmaps   这个文件放到和你的项目同一个目录。(不打包的话,在本地可以直接使用,但是打包上线的话,需要带上这个文件夹)

最后,解决问题!

 

Logo

前往低代码交流专区

更多推荐