Search code examples
pdfvaadinvaadin7

Show PDF in a Vaadin View


I want to show a PDF in a Vaadin view. I create a BrowserFrame and I pass the StreamResource of the PDF:

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


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

content.addComponent(pdf);

This code creates an iframe with the following source:

http://localhost:8080/my-app/vaadinServlet/APP/connector/0/134/source/mypdf.pdf

If I point the browser to this URL, it shows the PDF properly. However in my application the PDF view doesn't show. What am I doing wrong?

I am testing this in Google Chrome.

Edit: I downloaded the plugin PDF Viewer based on PDF.js and my app works fine. Does the Chrome PDF reader plugin need special configuration?


Solution

  • An iframe is probably not the best option to render a PDF, especially on mobile browsers. Check the WT PDF Viewer add-on which is based on pdf.js for a more compatible solution.