处理pdf.js无法完全显示pdf文件内容的问题
来源:     阅读:566
mm285990
发布于 2022-03-14 20:20
查看主页

转载(https://www.cnblogs.com/KingJames/p/11763590.html)

一、遇到的问题:预览pdf文件时,很多内容未显示。****

image

查看控制台,出现以下警告

Warning: Error during font loading: The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.
image

二、跟踪源码,排查起因

imageimageimage

从下图可以发现baseUrl取值为params.cMapUrl

image

找到调用WorkerTransport方法处:

imageimageimage

最终修改,增加最后两行

  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;  params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;  params.ignoreErrors = params.stopAtErrors !== true;  params.fontExtraProperties = params.fontExtraProperties === true;  params.pdfBug = params.pdfBug === true;  // 处理pdf.js无法完全显示pdf文件内容的问题  params.cMapPacked = true  params.cMapUrl = window.location.origin + "/pdf/web/cmaps/"

该问题的起因是由于缺少了部分字体包,也可使用CDN方式加载字体包。

此处提供cmaps的2个CDN地址(2.2.228为pdfjs-dist的版本号):

https://unpkg.com/browse/pdfjs-dist@2.2.228/cmaps/

https://cdn.jsdelivr.net/npm/pdfjs-dist@2.2.228/cmaps/

加载字体包后,效果如下图(部分内容已打马赛克):

image
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 软件环境
相关推荐
SpringBoot:集成Shiro之自己设置Realm实现认证受权
Linux 下Nginx默认参数编译安装与启动配置
微信小程序遇到的坑(1)回调函数 拿不到this.data里面的值
本地一键自建YUM源仓库服务器,并从阿里云进行自动升级
前台面试每日 3+1 —— 第575天
首页
搜索
订单
购物车
我的