现象就是pdfjs,加载出来的页面是空白,有数字或英文。是特定pdf文件会出现这个问题。
控制台异常如下:
Warning: Error during font loading: The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.
版本是2.2.228,其实下载的dist包里面有一个web目录,里面有一个view.html,这里尝试是可以加载的。
观察是有字体cmap文件加载。gpt说是这么配置
pdfjsLib.GlobalWorkerOptions.cMapUrl = 'https://xxx.com/cmaps/';
pdfjsLib.GlobalWorkerOptions.cMapPacked = true;
但是观察加载其实是没有配置成功的。
网上看到的办法是直接修改pdf.js源文件,在getDocument方法里,直接赋值给params,添加两行代码,如下。
params.ignoreErrors = params.stopAtErrors !== true;
params.pdfBug = params.pdfBug === true;// 插入下面两行
params.cMapUrl = 'https://{xxx.com}/cmaps/';
params.cMapPacked = true;
需要在cmaps下面能访问到bcmap文件,这个在github上有,找到相关版本的包,在web目录下。
https://github.com/mozilla/pdf.js/releases/download/v2.2.228/pdfjs-2.2.228-dist.zip