C# 将带有UIElement的FlowDocument导出到rtf
我正在尝试将包含网格的C# 将带有UIElement的FlowDocument导出到rtf,c#,wpf,flowdocument,uielement,C#,Wpf,Flowdocument,Uielement,我正在尝试将包含网格的流程文档导出到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); } 然而
流程文档
导出到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);
}
然而,我得到了一份空白文件。如何解决这个问题?我最近也遇到了类似的问题,而罪魁祸首原来是
FileMode.OpenOrCreate
应该是的
FileMode.Create
相反。
当您使用OpenOrCreate时,文件已经存在,并且包含的内容超过了您要写入的内容,那么您将在新内容结束之后结束旧文件。Word或写字板或任何您试图打开它的东西可能无法正确解释它,但会尝试向您展示它的功能,在您的情况下,它可能是一个空白页
第二个问题可能是问题的一部分,即您用来打开它的查看器和您用来编写它的FlowDocument可能不在同一波长上。
您可能会注意到,例如,写字板显示的同一rtf文件与Word不同。
当您保存它们时,它们也会生成非常不同的文件。
FlowDocument也是如此——它可能保存了一些无法正确显示(或根本无法显示)的内容,例如写字板或Word(尽管这种可能性较小)