vue-pdf-embed分页预览解决文字丢失问题

解决 PDF 字体加载问题

在 Vue 项目中集成 vue-pdf-embed 组件时,遇到字体加载失败的问题通常是由于缺少字符映射表(CMap)配置。以下是具体解决方案:

配置 CMap 参数 修改 vue-pdf-embedsource 属性,添加 cMapUrlcMapPacked 配置:

javascript 复制代码
<vue-pdf-embed
    v-if="!pdfFail"
    :source="{
        url: getBowserUrl(props.pdfRowData.filePath),
        cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.9.359/cmaps/',
        cMapPacked: true
    }"
    @rendered="handleDocumentRender"
    @loading-failed="handlePdfFaid"
/>

关键点说明

  • cMapUrl 需指向包含 PDF.js 字符映射文件的 CDN 地址,路径中的版本号(如 2.9.359)必须与项目中 pdfjs-dist 的实际版本一致。
  • cMapPacked: true 表示使用压缩版的 CMap 文件,提升加载效率。

版本匹配方法 检查 package-lock.jsonyarn.lock 文件,搜索 pdfjs-dist 的版本号,确保 CDN 路径中的版本与之匹配。例如:

json 复制代码
"pdfjs-dist": {
  "version": "2.9.359",
  "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.9.359.tgz"
}

备选方案 若 CDN 加载不稳定,可将 CMap 文件下载到本地,修改 cMapUrl 为本地路径:

javascript 复制代码
cMapUrl: '/assets/cmaps/'  // 假设文件存放在 public/assets/cmaps 目录

通过以上配置,可有效解决 PDF 文档因字体映射缺失导致的渲染异常问题。

相关推荐
人工智能训练1 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪2 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
pas1364 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
摇滚侠5 小时前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
珑墨5 小时前
【Turbo】使用介绍
前端
军军君016 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
打小就很皮...7 小时前
Tesseract.js OCR 中文识别
前端·react.js·ocr
wuhen_n7 小时前
JavaScript内存管理与执行上下文
前端·javascript
Hi_kenyon8 小时前
理解vue中的ref
前端·javascript·vue.js
落霞的思绪9 小时前
配置React和React-dom为CDN引入
前端·react.js·前端框架