在Vaadin视图中显示PDF

4

我希望在Vaadin视图中展示一个PDF。我创建了一个BrowserFrame,并传递了PDF的StreamResource:

StreamResource streamResource = new StreamResource(
                getPresenter().createPdfStreamSource(), report.getName() + ".pdf");


BrowserFrame pdf = new BrowserFrame(null, streamResource);
pdf.setSizeFull();

content.addComponent(pdf);

此代码创建一个包含以下源的iframe:
http://localhost:8080/my-app/vaadinServlet/APP/connector/0/134/source/mypdf.pdf

如果我在浏览器中访问这个URL,它可以正常显示PDF文档。但是在我的应用程序中,PDF文档无法显示。我做错了什么?

我是在Google Chrome浏览器中测试的。

编辑:我下载了基于PDF.js的PDF阅读器插件,并且我的应用程序可以正常工作。Chrome浏览器的PDF阅读器插件需要特殊配置吗?


你能展示一下 getPresenter().createPdfStreamSource() 的源代码吗? - bekce
也许你可以看一下这本书的这个部分……它是关于在UI中嵌入资源的。也许你只是使用了错误的组件。 - downdrown
1个回答

3

iframe可能不是在移动浏览器上呈现PDF的最佳选择。请查看基于pdf.js的WT PDF Viewer插件,以获得更兼容的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接