Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.nordea.next.issuereproduction;
- import java.io.ByteArrayInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import javax.servlet.annotation.WebServlet;
- import org.apache.commons.io.IOUtils;
- import com.vaadin.annotations.Theme;
- import com.vaadin.annotations.VaadinServletConfiguration;
- import com.vaadin.server.StreamResource;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.server.VaadinServlet;
- import com.vaadin.ui.*;
- public class MyUI extends UI {
- @Override
- protected void init(VaadinRequest vaadinRequest) {
- final VerticalLayout layout = new VerticalLayout();
- Button button = new Button("Click Me", e -> showPdfInAWindow());
- layout.addComponent(button);
- setContent(layout);
- }
- private void showPdfInAWindow() {
- try {
- final String fileName = "some.pdf";
- final byte[] bytes = IOUtils.toByteArray(getClass().getResource(
- "/" + fileName));
- StreamResource.StreamSource source = new StreamResource.StreamSource() {
- @Override
- public InputStream getStream() {
- return new ByteArrayInputStream(bytes);
- }
- };
- StreamResource resource = new StreamResource(source, "some.pdf");
- resource.setMIMEType("application/pdf");
- resource.getStream().setParameter("Content-Disposition", "attachment; filename=" + fileName);
- resource.setCacheTime(-1);
- // Use browser frame
- BrowserFrame frame = new BrowserFrame();
- frame.setSizeFull();
- frame.setSource(resource);
- frame.setHeight("650px");
- Window pdfWindow = new Window("Management List Report");
- pdfWindow.center();
- pdfWindow.setModal(true);
- pdfWindow.setResizable(false);
- pdfWindow.setHeight("700px");
- pdfWindow.setWidth("900px");
- pdfWindow.setContent(frame);
- UI.getCurrent().addWindow(pdfWindow);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
- @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
- public static class MyUIServlet extends VaadinServlet {
- }
- }
Add Comment
Please, Sign In to add comment