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 文档因字体映射缺失导致的渲染异常问题。

相关推荐
_院长大人_26 分钟前
Vue + ECharts 实现价格趋势分析图
前端·vue.js·echarts
疯笔码良28 分钟前
【Vue】自适应布局
javascript·vue.js·css3
其实秋天的枫29 分钟前
2026年新大纲普通话考试真题题库50套(PDF电子版)
经验分享·pdf
IT_陈寒1 小时前
Vite的alias配置把我整不会了,原来是这个坑
前端·人工智能·后端
万物得其道者成1 小时前
Cursor 提效实战:我的前端 Prompt、审查 SKILL、MCP 接入完整方法
前端·prompt
酒鼎1 小时前
学习笔记(12-02)事件循环 - 实战案例 —⭐
前端·javascript
Bigger1 小时前
第一章:我是如何剖析 Claude Code 整体架构与启动流程的
前端·aigc·claude
竹林8182 小时前
从“连接失败”到丝滑登录:我用 ethers.js v6 搞定 MetaMask 钱包连接的全过程
前端·javascript
oi..2 小时前
《Web 安全入门|XSS 漏洞原理、CSP 策略与 HttpOnly 防护实践》
前端·网络·测试工具·安全·web安全·xss
UXbot2 小时前
2026年AI全链路产品开发工具对比:5款从创意到上线一站式平台深度解析
前端·ui·kotlin·软件构建·swift·原型模式