【问题标题】:.NET Web Browser Control using in memory data.NET Web 浏览器控件使用内存数据
【发布时间】:2011-03-08 10:33:04
【问题描述】:

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

【问题讨论】:

    标签: c# .net pdf browser memorystream


    【解决方案1】:

    我相信还有更多,this page should help

    这里有一个duplicate question

    【讨论】:

    • 仅供参考,将其保存到文件中并只需 browser.Navigate() 到磁盘上的 PDF 会容易得多。
    • 刚刚找到答案并正在阅读它,你打败了我!是的,保存页面更容易,但 OP 似乎想避免这样做。
    • 同意 - 这就是为什么我发布了一个链接来解释如何做到这一点。但它肯定比简单地导航到 PDF 更复杂。
    • 抱歉,我想我一定是把“FYI”误读为“IMO”了……忽略我!
    【解决方案2】:

    设置DocumentStream产生垃圾的原因在此论坛帖子中讨论:Can I pass binary data of a file to WebBrowser control?

    一种可能的解决方案是将文件保存在本地并通过 html 文件提供:stream a pdf to a .net webbrowser object on a winform

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多