pe:documentViewer 不显示 PDF 中的数字签名
pe:documentViewer not displaying digital signatures in PDF
我有一个多格式文档查看器,为了显示 PDF,我使用了 PF Extension 的 p:documentViewer
组件。提供 PDF 的 StreamedContent 的支持 bean 是阶段渲染的,并且按预期工作。然而,尽管 PDF 本身渲染良好,查看器并未显示其中的数字签名。 p:documentViewer
使用时需要额外配置吗?这是我的用法:
<pe:documentViewer id="pdfVw" height="600" width="800" value="#{viewerController4.pdfDocumentStream}">
<f:param name="id" value="#{viewerController4.currentDocId}" />
</pe:documentViewer>
提供 PDF 内容的支持 bean 方法:
public StreamedContent getPdfDocumentStream() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
String id = context.getExternalContext().getRequestParameterMap().get("id");
Doc doc = pdfDocMap.get(id);
return new DefaultStreamedContent(new FileInputStream(new File(doc.getDocPath())), "application/pdf", doc.getDocName());
}
}
顺便说一下,我在 UI 上还有一个显示文档缩略图的功能 -- 其中,对于 PDF,我使用 PDFBox 提取第一页并将其转换为 PNG 图像并在其中显示一个p:graphicImage
。我观察到,在此图像中,数字签名显示正常!
我正在使用 SpringBoot + PF 6.2 + JoinFaces
如果需要显示带数字签名的PDFPDF.js暂不支持,2012年开始开放工单
参见:https://github.com/mozilla/pdf.js/issues/1076
我建议您使用这些免费服务并在浏览器中运行以显示带有签名的 PDF:https://verify.ink/
我有一个多格式文档查看器,为了显示 PDF,我使用了 PF Extension 的 p:documentViewer
组件。提供 PDF 的 StreamedContent 的支持 bean 是阶段渲染的,并且按预期工作。然而,尽管 PDF 本身渲染良好,查看器并未显示其中的数字签名。 p:documentViewer
使用时需要额外配置吗?这是我的用法:
<pe:documentViewer id="pdfVw" height="600" width="800" value="#{viewerController4.pdfDocumentStream}">
<f:param name="id" value="#{viewerController4.currentDocId}" />
</pe:documentViewer>
提供 PDF 内容的支持 bean 方法:
public StreamedContent getPdfDocumentStream() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
String id = context.getExternalContext().getRequestParameterMap().get("id");
Doc doc = pdfDocMap.get(id);
return new DefaultStreamedContent(new FileInputStream(new File(doc.getDocPath())), "application/pdf", doc.getDocName());
}
}
顺便说一下,我在 UI 上还有一个显示文档缩略图的功能 -- 其中,对于 PDF,我使用 PDFBox 提取第一页并将其转换为 PNG 图像并在其中显示一个p:graphicImage
。我观察到,在此图像中,数字签名显示正常!
我正在使用 SpringBoot + PF 6.2 + JoinFaces
如果需要显示带数字签名的PDFPDF.js暂不支持,2012年开始开放工单
参见:https://github.com/mozilla/pdf.js/issues/1076
我建议您使用这些免费服务并在浏览器中运行以显示带有签名的 PDF:https://verify.ink/