1
我有一个字节数组的xps文件内容存储在一个SQL服务器,我试图找回它,并显示它到一个DocumentViewer
控制。从一个字节数组创建一个XPS文档
cmd.CommandText = "select text from [table] where docName = '" + selectedText + "'";
using (SqlDataReader read = cmd.ExecuteReader())
{
while (read.Read())
{
byte[] retrieve = ((byte[])read["text"]); //text is column name for the byte array
var package = System.IO.Packaging.Package.Open(new MemoryStream(retrieve));
var xpsDocument = new XpsDocument(package, System.IO.Packaging.CompressionOption.Maximum);
pptViewer.Visibility = System.Windows.Visibility.Visible;
pptViewer.Document = xpsDocument.GetFixedDocumentSequence();
}
}
问题是这条线new XpsDocument(package, System.IO.Packaging.CompressionOption.Maximum)
需要一个额外的参数 - 文件的Uri。我没有它,因为它不是本地存储的 - 我将它转换为一个字节数组然后存储它,所以原始的xps文件不见了。
是否可以将字节数组转换为xps文档而不使用任何URI?如果没有,我还可以如何显示我的wpf应用程序中的文档(来自coruse的字节数组)?
File.WriteAllBytes(字符串路径,字节[]字节)与正确的扩展将做? – Hybridzz
https://stackoverflow.com/questions/381508/can-a-byte-array-be-written-to-a-file-in-c – Hybridzz