pdfjs预览pdf内容文字丢失问题

在使用PDFJS预览PDF时,出现文件中的文字无法显示的问题,原因是字体文件在打包过程中被重新编码。修复方法包括:在viewer.js中将cMapUrl改为CDN引用(但存在风险),或在Vue项目中将pdfjs包置于static目录下避免字体文件被重新编码。对于后端,可以考虑过滤打包过程或手动替换包。
摘要由CSDN通过智能技术生成

现象:文件中的文字显示不出来在这里插入图片描述

报错:在这里插入图片描述
排查原因:打包后把cmaps下的字体文件重新编码了导致的。
改正后:在这里插入图片描述

解决方案:
支持外网的:可以viewer.js里的cMapUrl修改为引用cnd的方式解决,但是通常不建议使用cdn解决,万一哪一天cdn蹦了就凉凉(版本不同cMapUrl位置也不同,不要在意细节)
在这里插入图片描述

前端:
vue项目:将pdfjs包放在静态文件static中去打包,这样不会将字体文件再次编码
在这里插入图片描述
后端:不太懂,自行过滤打包,或可打包后再手动替换该包

PDF.js 是一个由 Mozilla 开发的开源 JavaScript 库,用于在 Web 上预览 PDF 文档。你可以使用以下步骤来预览 PDF 文档: 1. 首先,下载并引入 PDF.js 库。你可以在官方网站(https://mozilla.github.io/pdf.js/)上找到最新版本的库文件,并将其添加到你的项目中。 2. 在 HTML 页面中创建一个容器元素,用于显示 PDF 文档的预览。例如,你可以使用一个 `<div>` 元素,并为其指定一个唯一的 ID。 3. 使用 JavaScript 代码初始化 PDF.js 并加载 PDF 文档。以下是一个简单示例: ```javascript // 获取容器元素 const container = document.getElementById('pdf-container'); // 初始化 PDF.js pdfjsLib.getDocument('path/to/your/pdf.pdf').promise .then(pdf => { // 加载第一页 return pdf.getPage(1); }) .then(page => { // 创建一个用于显示页面内容的 canvas 元素 const canvas = document.createElement('canvas'); // 设置 canvas 尺寸与页面尺寸匹配 const viewport = page.getViewport({ scale: 1 }); canvas.width = viewport.width; canvas.height = viewport.height; // 将 canvas 添加到容器中 container.appendChild(canvas); // 渲染页面内容到 canvas 上 const renderContext = { canvasContext: canvas.getContext('2d'), viewport: viewport }; return page.render(renderContext); }) .catch(error => { console.error('Failed to load PDF:', error); }); ``` 在上述代码中,你需要将 `path/to/your/pdf.pdf` 替换为你要预览的实际 PDF 文件的路径。 这样,当你在浏览器中运行该代码时,就可以在指定的容器中看到 PDF 文档的预览了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值