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/