我怎样才能使WebBrowser.Navigate模拟字节数组而不是URL?

时间:2013-09-17 07:44:15

标签: c# load browser bytearray document

我计划将PDF文件加载到其中,但我无法将这些文件保存到磁盘中。 PDF在我的程序中仅作为字节数组存在。

对于文本数据,我可以使用以下内容:

webBrowser1.DocumentText = "<html>page content</html>";

但是PDF不是文本,所以我需要一些其他的方式,但找不到任何方法。

我试过了:

byte[] file_content = File.ReadAllBytes("C:\\Users\\Metafalica\\Documents\\DatabaseSQLLanguageRzheutskaya.pdf");
MemoryStream ms = new MemoryStream(file_content);
ms.Flush();
ms.Position = 0;
webBrowser1.DocumentStream = ms;

但得到这个: enter image description here

1 个答案:

答案 0 :(得分:2)

无法通过webBrowser.DocumentStream加载和呈现PDF。场景背后发生的是MSHTML Document Object的实例被创建并使用提供的流初始化。您可以加载图像(哪种MIME类型由MSHTML识别),但不能加载PDF。另一方面,当使用webBrowser.Navigate时,会创建Adobe Acrobat Reader PDF文档的实例,而不是MSHTML。