Показать встроенный PDF в подокне Vaadin в Chrome - PullRequest
4 голосов
/ 09 февраля 2012

У меня есть приложение Vaadin, и я пытаюсь отобразить PDF-файл, который я читаю локально, в виде PDF-файла, хранящегося на моем веб-сервере.

        setCaption(mainApp.getMsg("app.subwindow.help.title"));
    setHeight("750px");
    setWidth("1000px");
    setModal(true);
    setDraggable(false);
    setResizable(false);
    setBorder(Window.BORDER_MINIMAL);
    setScrollable(true);

    VerticalLayout vl = new VerticalLayout();
    vl.setSpacing(true);    
    vl.setSizeFull();

    Embedded pdf = new Embedded("test", new StreamResource(new StreamSource() {     
            public InputStream getStream() {
                InputStream is = PdfWindow.class.getClassLoader().getResourceAsStream("Lifestyle-Tracker-Promo.pdf");
                return is;
            }
        }, "file.pdf", mainApp));       

    pdf.setType(Embedded.TYPE_BROWSER);
    pdf.setMimeType("application/pdf"); 

    pdf.setSizeFull(); 
    vl.addComponent(pdf);   

    addComponent(vl);

Я пытаюсь отобразить PDF во встроенномЧитатель PDF на странице.Код прекрасно работает с IE8 и Firefox, но он отказывается играть хорошо со встроенным Chrome PDF Reader.Кто-нибудь еще сталкивался с этой проблемой и есть какие-либо предложения?

1 Ответ

5 голосов
/ 23 февраля 2012

Попробуйте установить содержимое на полную, вы пытались установить вертикальный макет в качестве содержимого окна?

Window window = new Window();
        ((VerticalLayout) window.getContent()).setSizeFull();

Embedded pdf = new Embedded("test", new StreamResource(new StreamSource() {     
            public InputStream getStream() {
                InputStream is = PdfWindow.class.getClassLoader().getResourceAsStream("Lifestyle-Tracker-Promo.pdf");
                return is;
            }
        }, "file.pdf", mainApp));   

pdf.setType(Embedded.TYPE_BROWSER);
pdf.setMimeType("application/pdf"); 
pdf.setSizeFull();

window.addComponent(pdf);
getMainWindow().addWindow(window);
...