Vaadin 24:如何在新标签页展示JasperReport生成的PDF资源
在Vaadin中实现JasperReport生成的PDF在新标签页展示
你当前代码里的setLocation方法会在当前标签页跳转加载PDF,要实现新标签页展示,只需要把这一步替换成Vaadin Page的open方法,并指定打开目标为_blank即可。
修改后的完整代码如下:
LocalDateTime lt = LocalDateTime.now(); final StreamResource resource = new StreamResource("finance_" + lt + ".pdf", () -> new ByteArrayInputStream(pdfOutputStream.toByteArray())); final StreamRegistration registration = VaadinSession.getCurrent().getResourceRegistry().registerResource(resource); // 使用open方法在新标签页打开PDF资源 UI.getCurrent().getPage().open(registration.getResourceUri(), "_blank");
额外说明:
_blank是HTML标准的目标属性值,明确告诉浏览器在新标签页打开链接- 确认
pdfOutputStream已经正确写入了JasperReport生成的PDF字节数据,否则新标签页会加载空白内容 - 如果需要自定义新标签页的窗口参数(比如尺寸),可以添加第三个参数,示例:
UI.getCurrent().getPage().open(uri, "_blank", "width=1000,height=700,menubar=no")
内容的提问来源于stack exchange,提问作者Patrick Lange
相关产品推荐
相关产品推荐

