我的内存中有一些二进制数据(代表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

09-30 14:25
查看更多