解决pdf.js预览pdf不显示签名问题(两条路)
pdf.js
PDF Reader in JavaScript
项目地址:https://gitcode.com/gh_mirrors/pd/pdf.js
免费下载资源
·
解决pdf.js预览pdf不显示签名问题(两条路)
解决这个问题的方法很有意思,解决这一类问题的思路就是:如何不让pdf.js抛出异常或者警告。【其实乍一看好像和问题本身并不沾边,哈哈】
电子签章不显示,好像也可以按照这个来解决。
问题截图:
- 签字栏 这三个格里是有签的名字的,不过预览的时候不显示而已。
- 控制台的警告截图:
或许你的不是 Sig 的问题,但是差不多的话,我下面说的第二条路比较适合你。
第一种方法:网上普遍的方法——注释法
注释掉pdf.worker.js
里的这三行代码:【我的是新版pdf.js 在19867行】
// if (data.fieldType === "Sig") {
// data.fieldValue = null;
// this.setFlags(_util.AnnotationFlag.HIDDEN);
// }
- 一般情况下,注释掉了这三行代码,不显示的签名或者电子签章就该显示了。
- 但是,总有一些稀奇古怪的文件的在作祟,导致问题不断,就比如我遇到的情况:
- 我注释了这三行代码,还是报错误,而且是
util.js
报的【蒙圈+1】,并且我看了一下util.js的文件路径是 webpack://pdfjs-dist/build/pdf.worker/src/shared/util.js【蒙圈+2】。
- 我注释了这三行代码,还是报错误,而且是
- 很明显,如果跟util.js杠上,失败的绝对是我。。。经过我的分析,衍生了第二种方法。
第二种方法:本人的方法——一行 if 语句的无敌阻断法
这里我们可以回味一下本文开篇说的那句话——如何不让pdf.js抛出异常或者警告。
我们在pdf.worker.js
里找一下这个错误报的位置:
很像吧,只需要把 fielType 替换成 Sig,那这句话 console 出来就和 控制台警告截图 中的句子一模一样。
后面经过我的求证,我打印出来的 fieldType 确实是 Sig,那这就找到抛出警告的地方了。
接下来就是 阻断它:
if(fieldType !== "Sig") {
(0, _util.warn)('Unimplemented widget field type "' + fieldType + '", ' + "falling back to base field type.");
return new WidgetAnnotation(parameters);
}
一句 if 语句完事 ,当 fieldType 不是 Sig 时才走下面的语句。
看效果:
完结-撒花
GitHub 加速计划 / pd / pdf.js
47.48 K
9.86 K
下载
PDF Reader in JavaScript
最近提交(Master分支:3 个月前 )
18284815
[Editor] Update the disclaimer string in the new alt-text dialog (bug 1911738) 3 个月前
fc602c65
And tweak the css in order to take into account that disclaimer can be on two (or more lines).
3 个月前
更多推荐
已为社区贡献6条内容
所有评论(0)