我的内存中有一些二进制数据(代表PDF文件)。我想做的就是将标准.NET浏览器控件直接指向此数据。例如:
myLib mylib = new myLib();
object vbyt = mylib.GetPDFDocument();
webBrowser1.data = vbyt;
这可能吗,还是我需要将PDF保存到文件并从那里读取?
编辑:
我相信以下内容应该可以满足我的需要,但它只会吐出垃圾-有人可以告诉我为什么/一种使此方法起作用的方法吗?
byte[] vbyt = (byte[])mylib.GetPDFDocument();
MemoryStream ms = new MemoryStream();
ms.Write(vbyt, 0, vbyt.Length);
ms.Position = 0;
//conetent type = "application/pdf";
webBrowser1.DocumentStream = ms;
最佳答案
在此论坛帖子中讨论了设置DocumentStream
会产生垃圾的原因:Can I pass binary data of a file to WebBrowser control?
一种可能的解决方案是将文件保存在本地,然后通过html文件提供服务:stream a pdf to a .net webbrowser object on a winform