使用PDF.js的时候电子印章为什么是默认隐藏的

在pdf.worker.js中有一段代码隐藏了电子签章

// Hide signatures because we cannot validate them.
if (data.fieldType === 'Sig') {
     this.setFlags(AnnotationFlag.HIDDEN);
}

注释掉之后可以显示电子签章,当时不太理解是从什么角度出发,要隐藏这个东西

现在遇到兼容性问题,手头的安卓 4.4 和 ios11.1 不显示电子印章,会报字体的错误,安卓 6 和 ios11.4 好用。。还没找到解决方法

阅读 14.4k
4 个回答

上面不是写了么,因为不能验证,所以就不显示了
以下都是猜测,因为我对电子签章并无多少了解
按照道理,电子签章应该依赖数字签名公私钥体系来验证的,但是js并不能获取本机所信任的根证书,自然也无法验证

你是什么项目中引入的pdf.js

我当前在vue中也要引入预览pdf

这个有没有npm 引入的方式

也遇到该问题,注释未见影响;
不知道你有没有处理清晰度,当你处理canvas渲染的清晰度之后,这个章的位置会不准确

这里是官方解释

show signatures graphically irrespective of their cryptographic validation status
“我们不会提供一种方法来显示很可能无效的签名,因为这违背了数字签名的全部目的。”

官方已经修复,可以使用新的 pdfjs 版本,亲自更新版本到 2.12.313,测试没有问题,电子印章可以显示。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题