pe:documentViewer未在PDF中显示数字签名

pe:documentViewer未在PDF中显示数字签名,pdf,primefaces,pdf.js,primefaces-extensions,Pdf,Primefaces,Pdf.js,Primefaces Extensions,我有一个多格式的文档查看器,在其中,为了显示PDF,我使用了PF Extension的p:documentViewer组件。提供PDF的StreamedContent的支持bean是分阶段呈现的,并按预期工作。然而,尽管PDF本身呈现得很好,但查看器不会显示其中的数字签名。使用p:documentViewer时是否需要向其添加任何额外的配置?以下是我的用法: <pe:documentViewer id="pdfVw" height="600" width="800" value="#{vi

我有一个多格式的文档查看器,在其中,为了显示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> 
顺便说一句,我在UI上还有一个功能,可以显示文档的缩略图——对于PDF,我使用PDFBox提取第一页,并将其转换为PNG图像,并在p:graphicImage中显示。我观察到,在这张图片中,数字签名显示得很好


如果您需要显示带有数字签名的PDF,我将使用SpringBoot+PF 6.2+JoinFaces

,PDF.js目前不支持此功能,并且此票证自2012年起已打开

见:


我建议您使用这些免费服务,并在浏览器中运行,以显示带有签名的PDF:

如果您需要显示带有数字签名的PDF,PDF.js目前不支持该服务,并且票证自2012年起已打开

见:


我建议您使用这些免费服务,并在浏览器中运行,以显示带有签名的PDF:

PrimeFaces extensions在后台使用PDF.js。检查是否有此选项。我没有检查所有链接,但此搜索有帮助:您可以在PDF.JS中阅读有关未结票证的此问题,但似乎有一行我可以注释以显示签名!你能在我们的GitHub问题页面上提交请求吗:我打开了这张票:你能在那里发表评论吗?也可以举一个你的数字签名的屏幕截图的例子?事实上,我刚刚试过,但它不起作用。PrimeFaces extensions在引擎盖下使用pdf.js。检查是否有此选项。我没有检查所有链接,但此搜索有帮助:您可以在PDF.JS中阅读有关未结票证的此问题,但似乎有一行我可以注释以显示签名!你能在我们的GitHub问题页面上提交请求吗:我打开了这张票:你能在那里发表评论吗?也可以举一个你的数字签名的屏幕截图的例子?事实上,我只是尝试了一下,但它不起作用。我想知道p:media是否可以作为一个替代选项。我试着签了几个文件。它可以很好地显示签名…而且查看器上出现的消息似乎也表明它试图验证签名,这是一个优点。关于,许可证似乎对使用verify.ink的任何代码分发都有限制。在我的情况下,它是为客户端开发的代码。另外,从示例用法来看,我假设文档实际上会转移到verify.ink…不是吗?我对p:media的担心是,浏览器的外观在IE和Chrome之间是不同的,但我认为CSS.verify.ink在客户端都会发生,除非启用与Hancock集成(该文档集成的签名产品),否则不会将文档发送到服务器。至于您的许可证问题,Verify不是OSS,但它可以免费使用。在充分披露中,我的公司同时生产汉考克和Verify。@brlaranjeira p:媒体也将在未来消失。它被PrimeTek标记为不推荐使用。我想知道p:media是否可以作为替代选项。我试着签了几个文件。它可以很好地显示签名…而且查看器上出现的消息似乎也表明它试图验证签名,这是一个优点。关于,许可证似乎对使用verify.ink的任何代码分发都有限制。在我的情况下,它是为客户端开发的代码。另外,从示例用法来看,我假设文档实际上会转移到verify.ink…不是吗?我对p:media的担心是,浏览器的外观在IE和Chrome之间是不同的,但我认为CSS.verify.ink在客户端都会发生,除非启用与Hancock集成(该文档集成的签名产品),否则不会将文档发送到服务器。至于您的许可证问题,Verify不是OSS,但它可以免费使用。在充分披露中,我的公司同时生产汉考克和Verify。@brlaranjeira p:媒体也将在未来消失。它被PrimeTek标记为不推荐。
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());

        }
    }