Vue中使用pdfjs时API与Worker版本不匹配问题求助
解决pdfjs API版本与Worker版本不匹配的问题
你遇到的错误核心原因是pdf.js主库版本(2.16.105)与Worker脚本版本(3.1.34)不一致,两者版本不兼容导致报错,清除Cookie无法解决这个问题,以下是可行的修复方案:
方案1:使用与主库同版本的Worker脚本
- 先确认你项目中
pdfjs-dist的实际版本:查看package.json中的依赖版本,或执行命令npm list pdfjs-dist - 将
workerSrc替换为对应版本的CDN地址,以你当前的2.16.105版本为例:
const pdfjsLib = require('pdfjs-dist/legacy/build/pdf.js') // 替换为对应版本的Worker脚本地址 pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.worker.min.js' pdfjsLib .getDocument("../assets/pdf/活動切結書.pdf") // 注意:原代码路径末尾多了一个单引号,需删除 .promise.then((doc) => { console.log(doc) })
方案2:引用本地Worker文件(推荐)
安装pdfjs-dist时,Worker文件已随包一起下载到本地,直接引用可确保版本完全一致:
const pdfjsLib = require('pdfjs-dist/legacy/build/pdf.js') // 直接引用本地同版本的Worker入口文件 pdfjsLib.GlobalWorkerOptions.workerSrc = require('pdfjs-dist/legacy/build/pdf.worker.entry.js') pdfjsLib .getDocument("../assets/pdf/活動切結書.pdf") .promise.then((doc) => { console.log(doc) })
方案3:升级主库版本与Worker匹配
如果想使用最新版Worker,可将pdfjs-dist升级到对应版本:
npm install pdfjs-dist@3.1.34 --save
升级后保持workerSrc引用3.1.34版本的脚本即可。
内容的提问来源于stack exchange,提问作者呂玟諠
相关产品推荐
相关产品推荐

