当我的后端(在NodeJS中)使用第三方服务对PDF进行签名时,返回的PDF在文档末尾的另一个页面中包含了电子签名。
如果我把文件下载到我的电脑上,我可以看到签名是可以的。但是当尝试使用pdf-查看器预览它时,它不会显示电子签名。它显示了附加的页面(签名应该在其中),但只显示了一个空白页。
这里的例子:
我尝试使用文件的直接URL:
<pdf-viewer *ngIf="file" [src]="file.url" [render-text]="false" style="display: block;"></pdf-viewer>此外,我还尝试下载后端的文件,将其转换为base64:
<pdf-viewer *ngIf="file" [src]="file.base64" [render-text]="false" style="display: block;"></pdf-viewer>什么都没有显示签名。
当使用URL时,控制台会显示一条警告消息:“警告:未实现的小部件字段类型”,返回到基本字段类型。
你知道我怎样才能用电子签名显示文档吗?
发布于 2019-08-07 04:29:14
下载pdf.worker.js https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.228/pdf.worker.js和删除这些行
// Hide unsupported Widget signatures.
if (data.fieldType === 'Sig') {
data.fieldValue = null;
_this3.setFlags(_util.AnnotationFlag.HIDDEN);
}将编辑后的pdf.worker.js放入项目并按如下方式更新代码,您必须在pdf-查看器组件呈现之前设置这一行。
(<any>window).pdfWorkerSrc = '<path_to_file>/pdf.worker.js';例如:
(<any>window).pdfWorkerSrc = '/assets/lib/pdf.worker.js';发布于 2021-05-25 05:28:23
对我来说-在pdf.worker.js中不评论"Sig“条件是行不通的。我尝试了一种自我方式--更新现有的一个,下载新员工--更改它,然后在我的代码中引用它。没有成功。
对我起作用的是-下面的解决方案。在pdf.worker.js中,将其添加到第19544行--如果您在代码中找不到这一点,则有一个fieldType的开关情况,即开关(fieldType) --搜索下面的行。开关箱应该在这条线上。
(0,_util.warn)(未实现的小部件字段类型"‘+ fieldType + '",“+”返回到基本字段类型);
一旦找到那个开关语句-添加下面的大小写
案例"Sig":返回新的SquareAnnotation(参数);
这对我来说是个成功。
发布于 2021-11-26 16:33:41
在我的例子中,我没有使用Angular,我只是使用本地js代码,所以我无法在我的两个文件"pdf.worker.js“或"pdf.viewer.js”中找到这部分代码。
// Hide unsupported Widget signatures
if (data.fieldType === 'Sig') {
data.fieldValue = null;
_this3.setFlags(_util.AnnotationFlag.HIDDEN);
}我解决了这个问题的基础上,尼尼德德赛评论如下。因此,我搜索了data.fieldType === "Sig的条件,并将返回更改为直接显示签名,没有任何条件。
之前的守则:
return "Sig" === this.data.fieldType
? (K("unimplemented annotation type: Widget signature"), !1)
: a.isViewable.call(this);以下代码之后的代码:
return a.isViewable.call(this);我不确定这是否是最好的解决方案,但至少现在起作用了!
文件名: pdf.worker.js行: 3321
下面是pdf.js现在显示的一个例子:在这里输入图像描述
希望这句话能帮助你们..。
https://stackoverflow.com/questions/57380989
复制相似问题