2

我正在尝试将FlowDocument包含网格的 a 导出到 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);
}

但是我得到一个空白文件。如何解决?

4

1 回答 1

0

我最近有一个类似的问题,罪魁祸首原来是

FileMode.OpenOrCreate

应该是

FileMode.Create 

反而。当您使用 OpenOrCreate 并且文件已经存在并且具有比您写入的内容更多的内容时,您将在新内容结束后以旧文件的结尾结束。Word 或写字板或您尝试打开它的任何东西可能无法正确解释它,但会尝试向您展示它可以做什么,在您的情况下可能是一个空白页。

可能是问题一部分的第二个问题是您用来打开它的查看器和您用来编写它的 FlowDocument 可能不在同一波长上,委婉地说。例如,您可能会注意到写字板显示相同 rtf 文件的方式与 Word 不同。当您保存它们时,它们还会产生非常不同的文件。FlowDocument 也是如此 - 它可能正在保存一些东西,例如写字板甚至 Word(尽管这不太可能)无法正确显示(或根本无法显示)。

于 2014-12-10T18:32:44.180 回答