vue之vue-pdf预览pdf内容文字丢失问题

环境

  • vue-pdf 4.0.6
  • vue 2.x

前言

上传一般的普通pdf正常预览,但是上传带有红头文件的和和特殊字体的pdf无法正常内容显示,文字丢失问题。

效果对比

  • 修改前效果
    pdf文字内容不显示
  • 修改后正常效果
    红头文件正常预览

解决方法

1. 首先查看控制台报错信息

Warning: TT: undefined function: 3
pdf.js:468 Warning: Error during font loading: The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.
pdf.js:468 Warning: Error during font loading: The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.

控制台报错

2.分析是因为缺少中文字体造成的

查看本地项目字体所在路径

node_modules/pdfjs-dist/cmaps

字体所在路径

3. 解决中文字体不显示问题

  • 核心代码(temporary fix)
      computed: {
           pdfSrc(){
            //处理pdfUrl返回
             let src =  pdf.createLoadingTask({
               url: this.pdfUrl,
               //引入pdf.js字体,templ
               cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.5.207/cmaps/',
               cMapPacked: true
             })
               return src ;
           }
           //省略其它
         }
  • 组件使用
                    <pdf
                            :src="pdfSrc"
                            :page="currentPage"
                            ref="pdf"
                            @num-pages="pageCount=$event"
                            @page-loaded="currentPage=$event"
                            @loaded="loadPdfHandler"
                    ></pdf>

Tips:

这里引用cdn的字体,没有使用本地的。

到这里就成功解决了预览pdf不显示的问题 >_<,效果见上图。

参考链接

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DuebassLei

请我吃颗棒棒糖吧~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值