c# - 如何在 WPF 桌面应用程序的 System.Windows.Controls.WebBrowser 中显示 pdf 文件(二进制 [])?
问题描述
PDF 文件在 SQL Server 数据库中保存为byte[]
. 从数据库中获取binary[]
并将其保存为本地文件后,此代码有效:
string tempPath = Path.GetTempPath();
string fileName = tempPath + DateTime.UtcNow.ToString("yyyyMMddHHmmssFFF") + ".pdf";
File.WriteAllBytes(fileName, binary[]);
WebBrowser.Navigate(fileName).
如果我直接传递binary[]
to WebBrowser.NavigateToStream()
,它会显示原始 pdf 字符串:
WebBrowser.NavigateToStream(binary[]).
解决方案
我建议您在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);
使用后,您可以删除您创建的临时文件。
推荐阅读
- nunit - NUnit 中的断点和停止调试 - 如何终止测试?
- asp.net - 如何将不同实体中的项目动态添加到 ASP.NET Core MVC 中的列表中
- wordpress - 如何编辑已经存在的 Wordpress 主题?
- node.js - mongodb匹配和组2查询合二为一
- json - 我如何在 artifactory 上托管 json 文件,artifcatory 可以用作网络服务器吗
- firebase - 颤振:FlutterFcmService - 致命:找不到回调
- batch-file - 尝试使用批处理将输入写入正在运行的控制台应用程序时出错
- react-native - 使用expo在react-native项目中基于多个条件禁用按钮
- javascript - json数据到treeview javascript
- r - R:lapply with data.table 慢,有更快的选择吗?