2013-07-22 73 views
2

我想輸出一個FlowDocument,它包含一個網格到rtf。我用下面的代碼用UIElement導出FlowDocument到rtf

using (FileStream fs = new FileStream(@"C:\demo.rtf", FileMode.OpenOrCreate, FileAccess.Write)) 
{ 
    TextRange textRange = new TextRange(doc.ContentStart, doc.ContentEnd); 
    textRange.Save(fs, DataFormats.Rtf); 
} 

但是我得到一個空白文檔。這怎麼解決?

回答

0

我最近也有類似的問題,而罪魁禍首竟然是

FileMode.OpenOrCreate 

應該已經

FileMode.Create 

代替。 當你使用OpenOrCreate並且文件已經存在,並且有更多的內容比你寫入它時,你將會在新內容結束後結束舊文件的結束。 Word或寫字板或任何你試圖打開它可能無法正確解釋它,但試圖告訴你它可能是什麼,可能在你的情況下,一個空白頁。

可能是問題的一部分的第二個問題是您用來打開它的查看器,並且您用來寫入它的FlowDocument可能不在相同的波長上,以便稍微放一些。 您可能會注意到寫字板例如顯示與Word不同的相同rtf文件。 它們在保存時也會生成非常不同的文件。 FlowDocument同樣適用 - 它可能會保存某些內容,例如WordPad甚至Word(儘管這種情況不太可能),但無法正確顯示(或根本不能顯示)。

相關問題