首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预览带有电子签名的PDF文件(角)

预览带有电子签名的PDF文件(角)
EN

Stack Overflow用户
提问于 2019-08-06 17:10:23
回答 3查看 8.1K关注 0票数 1

当我的后端(在NodeJS中)使用第三方服务对PDF进行签名时,返回的PDF在文档末尾的另一个页面中包含了电子签名。

如果我把文件下载到我的电脑上,我可以看到签名是可以的。但是当尝试使用pdf-查看器预览它时,它不会显示电子签名。它显示了附加的页面(签名应该在其中),但只显示了一个空白页。

这里的例子:

Rxehc1TFFDEed8

我尝试使用文件的直接URL:

代码语言:javascript
复制
<pdf-viewer *ngIf="file" [src]="file.url" [render-text]="false" style="display: block;"></pdf-viewer>

此外,我还尝试下载后端的文件,将其转换为base64:

代码语言:javascript
复制
<pdf-viewer *ngIf="file" [src]="file.base64" [render-text]="false" style="display: block;"></pdf-viewer>

什么都没有显示签名。

当使用URL时,控制台会显示一条警告消息:“警告:未实现的小部件字段类型”,返回到基本字段类型。

你知道我怎样才能用电子签名显示文档吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-07 04:29:14

下载pdf.worker.js https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.228/pdf.worker.js删除这些行

代码语言:javascript
复制
// Hide unsupported Widget signatures.
if (data.fieldType === 'Sig') {
    data.fieldValue = null;
    _this3.setFlags(_util.AnnotationFlag.HIDDEN);
}

将编辑后的pdf.worker.js放入项目并按如下方式更新代码,您必须在pdf-查看器组件呈现之前设置这一行。

代码语言:javascript
复制
(<any>window).pdfWorkerSrc = '<path_to_file>/pdf.worker.js';

例如:

代码语言:javascript
复制
(<any>window).pdfWorkerSrc = '/assets/lib/pdf.worker.js';
票数 4
EN

Stack Overflow用户

发布于 2021-05-25 05:28:23

对我来说-在pdf.worker.js中不评论"Sig“条件是行不通的。我尝试了一种自我方式--更新现有的一个,下载新员工--更改它,然后在我的代码中引用它。没有成功。

对我起作用的是-下面的解决方案。在pdf.worker.js中,将其添加到第19544行--如果您在代码中找不到这一点,则有一个fieldType的开关情况,即开关(fieldType) --搜索下面的行。开关箱应该在这条线上。

(0,_util.warn)(未实现的小部件字段类型"‘+ fieldType + '",“+”返回到基本字段类型);

一旦找到那个开关语句-添加下面的大小写

案例"Sig":返回新的SquareAnnotation(参数);

这对我来说是个成功。

票数 0
EN

Stack Overflow用户

发布于 2021-11-26 16:33:41

在我的例子中,我没有使用Angular,我只是使用本地js代码,所以我无法在我的两个文件"pdf.worker.js“或"pdf.viewer.js”中找到这部分代码。

代码语言:javascript
复制
// Hide unsupported Widget signatures
if (data.fieldType === 'Sig') {
    data.fieldValue = null;
    _this3.setFlags(_util.AnnotationFlag.HIDDEN);  
}

我解决了这个问题的基础上,尼尼德德赛评论如下。因此,我搜索了data.fieldType === "Sig的条件,并将返回更改为直接显示签名,没有任何条件。

之前的守则:

代码语言:javascript
复制
return "Sig" === this.data.fieldType
? (K("unimplemented annotation type: Widget signature"), !1)
: a.isViewable.call(this);

以下代码之后的代码:

代码语言:javascript
复制
return a.isViewable.call(this);

我不确定这是否是最好的解决方案,但至少现在起作用了!

文件名: pdf.worker.js行: 3321

下面是pdf.js现在显示的一个例子:在这里输入图像描述

希望这句话能帮助你们..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57380989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档