最近项目遇到了一个pdf预览问题,对于一些扫描文件成的pdf文件预览的时候会出现花屏的情况,用wps正常可以打开看到内容,但实际看到的内容也比较模糊。
pdf预览失真
正常打开可以
查阅了一些资料,问题的原因是pdfjs版本的问题。
相关类似问题可参考pdfjs官方issues:
1. https://github.com/mozilla/pdf.js/issues/11957
2. Fix JPX tag tree decode (issue 11957) by linfangrong · Pull Request #13698 · mozilla/pdf.js · GitHub
项目用的版本是1.9.523,最新的版本此问题已解决,直接升级版本到最新或者2.x.x以上也可以。
如果不想升级,可以直接修改源码。
解决方法:
找到pdf.worker.js文件,在 precinct.zeroBitPlanesTree = zeroBitPlanesTree这行代码下面加上以下代码即可。
for (let l = 0; l < layerNumber; l++) {
if (readBits(1) !== 0) {
throw new JpxError("Invalid tag tree");
}
}