如何在WPF桌面应用程序的System.Windows.Controls.WebBrowser中显示pdf文件(binary [])?

时间:2019-05-13 19:25:52

标签: c# wpf pdf

PDF文件以byte[]的形式保存在SQL Server数据库中。从数据库中获取binary[]并将其保存为本地文件后,此代码将起作用:

string tempPath = Path.GetTempPath();
string fileName = tempPath + DateTime.UtcNow.ToString("yyyyMMddHHmmssFFF") + ".pdf";
File.WriteAllBytes(fileName, binary[]);
WebBrowser.Navigate(fileName).

如果我直接将binary[]传递给WebBrowser.NavigateToStream(),它将显示原始pdf字符串:

WebBrowser.NavigateToStream(binary[]).

enter image description here

1 个答案:

答案 0 :(得分:0)

我建议您在从数据库收到byte[]数据后创建一个临时文件。

byte[] fileBytes = // YOUR LOGIC TO READ byte[] FROM DATABASE

string tempFile = @"C:\temp\abc.pdf";

File.WriteAllBytes(tempFile, fileBytes);

myBrowser.Source = new Uri(tempFile);

使用后,您可以删除创建的临时文件。