pdf.js无法加载字体,cmaps配置

2024-09-13 18:35

现象就是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

# 工具配置