pe: documentViewer не отображает цифровые подписи в PDF - PullRequest
1 голос
/ 21 апреля 2020

У меня есть многоформатный просмотрщик документов, в котором для отображения PDF-файлов я использую компонент p:documentViewer PF Extension. Базовый компонент, предоставляющий StreamedContent для PDF, визуализируется по фазе и работает как положено. Однако, хотя сам PDF отображается нормально, зритель не отображает цифровые подписи в нем . Нужно ли добавлять дополнительные настройки к p:documentViewer при его использовании? Вот мое использование:

<pe:documentViewer id="pdfVw" height="600" width="800" value="#{viewerController4.pdfDocumentStream}">                                           
    <f:param name="id" value="#{viewerController4.currentDocId}" /> 
</pe:documentViewer> 

Метод вспомогательного компонента, обслуживающий содержимое PDF:

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());

        }
    }

Кстати, у меня также есть функция в пользовательском интерфейсе для отображения миниатюр документов, в которых для PDF-файлов я извлекаю первую страницу с помощью PDFBox и преобразую ее в изображение PNG и отображаю в p:graphicImage. Я вижу, что на этом изображении цифровая подпись отображается нормально!

Я на SpringBoot + PF 6.2 + JoinFaces

1 Ответ

2 голосов
/ 22 апреля 2020

Если вам нужно отобразить PDF с цифровыми подписями PDF. js не поддерживает его в настоящее время, и билет был открыт с 2012 года.

См .: https://github.com/mozilla/pdf.js/issues/1076

Я предлагаю вам воспользоваться этой услугой, которая бесплатна и работает в браузере, чтобы показывать PDF с подписями: https://verify.ink/

...