1
xpsファイルコンテンツのバイト配列がSQL Serverに格納されていますが、これを取得して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ファイルがなくなった。
バイト配列をURIなしでxpsドキュメントに変換することは可能ですか?もしそうでなければ、どうすれば私のwpfアプリ内で(coruseのバイト配列から)文書を表示できますか?
File.WriteAllBytes(文字列パス、バイト[]バイト)正しい拡張子を使用しますか? – Hybridzz
https://stackoverflow.com/questions/381508/can-a-byte-array-be-written-to-a-file-in-c – Hybridzz