You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:44:59