首页 > 解决方案 > 在 Vaadin 版本 14+ 中显示 PDF

问题描述

在 Vaadin 14 中显示 PDF 文件的最佳方式是什么?我想在对话框中显示 pdf 文件,但我不确定如何呈现 pdf 文件。我看到一些关于嵌入式 pdf 视图、pdf 浏览器和 EmbeddedPdfDocument 的帖子,但我不知道它们是否与 14 兼容。有没有新的方法可以做到这一点?

标签: vaadin14

解决方案


有一个第三方插件可以在 Vaadin 14 中呈现 PDF。您可以在这里找到它:https ://vaadin.com/directory/component/pdf-browser/

这使您可以使用以下代码呈现 pdf:

StreamResource streamResource = new StreamResource(
        "report.pdf", () -> getClass().getResourceAsStream("/report.pdf")); // file in src/main/resources/

PdfBrowserViewer viewer = new PdfBrowserViewer(streamResource);
viewer.setHeight("100%");
layout.add(viewer);

或者,您可以像以前的 Vaadin 框架版本中通常那样做,嵌入到 IFrame 中(参见Show PDF in a Vaadin View),看起来像这样

StreamResource streamResource = new StreamResource(
                getPresenter().createPdfStreamSource(), report.getName() + ".pdf");
StreamRegistration registration = VaadinSession.getCurrent().getResourceRegistry().registerResource(resource);
        IFrame iframe = new IFrame(registration.getResourceUri().toString());
        iframe.setHEight("100%");
        layout.add(iframe);

推荐阅读