我正在尝试将包含网格的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 :(得分:0)
我最近遇到了类似的问题,罪魁祸首是
FileMode.OpenOrCreate
应该是
FileMode.Create
代替。 当您使用OpenOrCreate并且该文件已经存在且内容多于您写入的内容时,您将在新内容结束后结束旧文件。 Word或写字板或者您尝试打开它的任何内容可能无法正确解释它,但会尝试向您显示可能在您的情况下可能是空白页。
可能是问题的一部分的第二个问题是您用来打开它的查看器,并且您用来编写它的FlowDocument可能不是在相同的波长上来温和地说。 您可能会注意到,例如,写字板显示与Word不同的rtf文件。 保存它们时,它们也会生成非常不同的文件。 FlowDocument也是如此 - 它可能会保存一些东西,例如写字板甚至Word(虽然这不太可能)无法正确显示(或根本不显示)。