【发布时间】:2020-04-22 21:43:06
【问题描述】:
我有一个多格式文档查看器,为了显示 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
【问题讨论】:
-
PrimeFaces 扩展在后台使用 pdf.js。检查是否有此选项。
-
我没有检查所有链接,但此搜索有帮助:google.com/…
-
您可以在 PDF.JS github.com/mozilla/pdf.js/issues/1076 中阅读有关公开票证的此问题,但是似乎有一行我可以评论以使签名出现!您能否在我们的 GitHub 问题页面上提交请求:github.com/primefaces-extensions/…
-
我打开了这张票:github.com/primefaces-extensions/… 你能在那里评论吗?也可以放一个您的数字签名的示例屏幕截图?
-
其实我只是试了一下,还是不行。
标签: pdf primefaces pdf.js primefaces-extensions