0

我想打开一个新窗口,其中包含放置在字符串变量中的 PDF 内容。我已经有一个连接了事件的按钮。在这种情况下,我想调用新窗口。

该方法如下所示:

private void show_archivobjekt(String data) {
String pdf = anfrage.get_archivobjectdata(data);
System.out.println(pdf);  // This shows my PDF content in console and works!

    // How to convert this String into a StreamSource

    StreamResource streamResource = new StreamResource(pdfss, "test.pdf",  myView);
    streamResource.setCacheTime(5000);
    streamResource.setMIMEType("application/pdf");
    myView.getMainWindow().open(streamResource, "_blank");
}

myView是应用程序。如何将String pdf转换为 StreamSource ( pdfss )?我是否必须首先将其保存为文件,或者是否可以直接在内存中将其转换为 StreamSource?

控制台输出显示以 %PDF-1.3 ... 开头的典型 PDF 内容,依此类推。

任何帮助,将不胜感激。提前致谢!

雷纳

4

1 回答 1

0

此问题的答案可通过此处的官方支持论坛获得:https ://vaadin.com/forum#!/thread/148544

通过使用字符串的字节表示来创建一个 ByteArrayInputStream 作为源,只需像这样创建您的 StreamResource:

StreamResource streamResource = new StreamResource(
    new StreamResource.StreamSource() {
        public InputStream getStream() {
            return new ByteArrayInputStream(pdf.getBytes());
        }
    }, "test.pdf");
于 2013-09-24T14:18:01.007 回答