Guest User

Untitled

a guest
Dec 12th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. package com.nordea.next.issuereproduction;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6.  
  7. import javax.servlet.annotation.WebServlet;
  8.  
  9. import org.apache.commons.io.IOUtils;
  10.  
  11. import com.vaadin.annotations.Theme;
  12. import com.vaadin.annotations.VaadinServletConfiguration;
  13. import com.vaadin.server.StreamResource;
  14. import com.vaadin.server.VaadinRequest;
  15. import com.vaadin.server.VaadinServlet;
  16. import com.vaadin.ui.*;
  17.  
  18. public class MyUI extends UI {
  19.  
  20. @Override
  21. protected void init(VaadinRequest vaadinRequest) {
  22. final VerticalLayout layout = new VerticalLayout();
  23.  
  24. Button button = new Button("Click Me", e -> showPdfInAWindow());
  25. layout.addComponent(button);
  26. setContent(layout);
  27. }
  28.  
  29. private void showPdfInAWindow() {
  30. try {
  31. final String fileName = "some.pdf";
  32. final byte[] bytes = IOUtils.toByteArray(getClass().getResource(
  33. "/" + fileName));
  34. StreamResource.StreamSource source = new StreamResource.StreamSource() {
  35. @Override
  36. public InputStream getStream() {
  37. return new ByteArrayInputStream(bytes);
  38. }
  39. };
  40.  
  41. StreamResource resource = new StreamResource(source, "some.pdf");
  42.  
  43. resource.setMIMEType("application/pdf");
  44. resource.getStream().setParameter("Content-Disposition", "attachment; filename=" + fileName);
  45. resource.setCacheTime(-1);
  46.  
  47. // Use browser frame
  48. BrowserFrame frame = new BrowserFrame();
  49. frame.setSizeFull();
  50. frame.setSource(resource);
  51. frame.setHeight("650px");
  52. Window pdfWindow = new Window("Management List Report");
  53. pdfWindow.center();
  54. pdfWindow.setModal(true);
  55. pdfWindow.setResizable(false);
  56. pdfWindow.setHeight("700px");
  57. pdfWindow.setWidth("900px");
  58. pdfWindow.setContent(frame);
  59.  
  60. UI.getCurrent().addWindow(pdfWindow);
  61.  
  62. } catch (IOException e) {
  63. e.printStackTrace();
  64. }
  65. }
  66.  
  67. @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
  68. @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
  69. public static class MyUIServlet extends VaadinServlet {
  70. }
  71. }
Add Comment
Please, Sign In to add comment