解决pdf.js预览pdf不显示签名问题(两条路)

81 篇文章 7 订阅

解决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 时才走下面的语句。

看效果:

在这里插入图片描述
完结-撒花

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
控件正支持全部Office菜单,支持Office的打印预览,控件强大的B/S通讯技术, 能够将服务器数据库中的数据或者用户自定义的数据插入当前文档的指定位置,而且 还可以将文档中的指定数据随时保存到服务器数据库或者指定的目录中.控件能够在浏 览器窗口中直接编辑Word文档并保存到Web服务器上。实现文档和数据库的统一管理。 控件同时支持痕迹保留,手写签名,电子印章等办公自动化系统必备的功能。 控件采用标准HTTP协议,支持任意后台Web服务器,任意后台编程语言(Asp, Jsp, Php,VB.NET,C#.NET等) 控件功能: 1.控件采用xml数据格式传输,有良好的扩展性. 2.控件支持多种网络传输协议(Ftp,http). 3.控件支持标准的http协议80端口(自已可定义端口),可以有效地跨过防火墙对控件的影响. 4.控件支持多种存储方式,可以直接存放在指定的目录也可以存储在数据库中方便管理. 5.存储在数据库中或存储在目录中的文档数据是加密处理(需要密钥)大大加强文档的安全性. 6. 数据库支持功能 支持文件保存到服务器数据库中,可以支持多种数据库,如SQL Server,Oracle,Sybase,MySql,Access等。 7.控件支持数据模板拟稿时选择模版套红. 8.强制留痕受到密码保存,文档就算脱离控件也可以继续强制留留痕. 9.手写签名,可支持任意的手写板(不可以鼠标画)签名或签意见. 10.可以准确检测有效的签名,还可以做到对有效签名进行特显,使得更形象展示有效的签名. 11.控件电子盖章功能实现印章或签名资源预保存功能,用户可以通过密码的方式来获得自己的签名或印章,印章和签名与 文档保存在一起,印章或签名可以功过系统的验证来判断真伪。 12.盖章数据是根据标准的加密方式.用户只有通过明钥和密钥的认证后才可以得到用户的盖章数据.大大加强了盖章的安全性. 13.控件的二次开发提供强大的函数库,支持多种系统环境,多种开发语言,多种数据库。 14.控件支持日志功能,文档的每一个修改操作都可以记录以供用户校对. 15.控件完全支持office菜单功能. 16.控件可以做到打印预览. 17、模版套红.控件支持数据模板拟稿或定搞时选择模版套红。 18.插入透明浮动图片.支持从服务器插入透明浮动图片到Word文档支持将服务器图片插入到Word文档的指定位置。 19.版本控制功能.版本控制功能,能够让您对WORD和EXCEL文档有更多的控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值