我想打开一个包含放置在String变量中的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内容......依此类推。
任何帮助将不胜感激。提前谢谢!
赖
答案 0 :(得分: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");