vaadin14 - 在 Vaadin 版本 14+ 中显示 PDF
问题描述
在 Vaadin 14 中显示 PDF 文件的最佳方式是什么?我想在对话框中显示 pdf 文件,但我不确定如何呈现 pdf 文件。我看到一些关于嵌入式 pdf 视图、pdf 浏览器和 EmbeddedPdfDocument 的帖子,但我不知道它们是否与 14 兼容。有没有新的方法可以做到这一点?
解决方案
有一个第三方插件可以在 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);
推荐阅读
- qt - QBS:qbs-setup-qt 无法检测到目标平台
- amazon-web-services - EC2现货实例市场容量短缺数据
- java - 如何使用 MIDlet 创建文件
- java - 找到具有最多子串回文的字符串排列
- java - jar 文件的自动模块 VM 选项
- javascript - 使用 clearInterval 方法后如何再次运行 setInterval 函数?- Javascript
- python - 元组是另一个元组的子集 - Apriori algortihm
- python - 如何根据另一列的值应用熊猫函数?
- javascript - 从数组中获取 n 个随机元素并在元素不足时创建重复项
- ios - 无法在自动完成中使用“NSAttributedStringKey”类型的索引为“[String:AnyObject]”类型的值下标