0

我的代码有什么问题。当它试图覆盖现有的 .xps 文件时,会弹出错误。

在此处输入图像描述

这是我的代码

                string filename = dlg.FileName;

                XpsDocument xpsDoc = new XpsDocument(filename, FileAccess.ReadWrite);
                XpsDocumentWriter xpsWriter = XpsDocument.CreateXpsDocumentWriter(xpsDoc);
                FlowDocument flow = (((((chatHistoryPage.LayoutRoot as Grid).Children[7] as ContentControl).Content) as FlowDocumentPageViewer).Document as FlowDocument);

                xpsWriter.Write((flow as IDocumentPaginatorSource).DocumentPaginator);
                xpsDoc.Close();

谢谢

4

1 回答 1

1

该行XpsDocument xpsDoc = new XpsDocument(filename, FileAccess.ReadWrite);不是打开一个新的、空的 XPS 文档,而是打开磁盘上的现有文档。正如异常提到的,这个文档已经包含一个根 FixedDocumentSequence。为了完全覆盖 XPS 文档,您需要先删除现有的 XPS 文件,然后再尝试保存一个新文件。

您最好的选择可能是使用 FileMode调用Package.OpenOpenOrCreate | Truncate,然后将该包提供给 XpsDocument 构造函数的调用。

于 2011-03-21T18:40:18.910 回答