解決pdf.js無法完全顯示pdf文件內(nèi)容的問題

轉載(https://www.cnblogs.com/KingJames/p/11763590.html)

一、遇到的問題:預覽pdf文件時,很多內(nèi)容未顯示。****

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

找到調(diào)用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文件內(nèi)容的問題
  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/

加載字體包后,效果如下圖(部分內(nèi)容已打馬賽克):

image
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容