轉載(https://www.cnblogs.com/KingJames/p/11763590.html)
一灾前、遇到的問題:預覽pdf文件時牙躺,很多內容未顯示画侣。****
image
查看控制臺,出現(xiàn)以下警告
Warning: Error during font loading: The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.
image
二边翁、跟蹤源碼,排查原因
image
image
image
從下圖可以發(fā)現(xiàn)baseUrl取值為params.cMapUrl
image
找到調用WorkerTransport方法處:
image
image
image
最終修改,添加最后兩行
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