C# 保存活动文档的副本,但包括跟踪更改

C# 保存活动文档的副本,但包括跟踪更改,c#,ms-office,C#,Ms Office,我正在开发Word 2010插件,我想将带有跟踪更改()的活动文档复制为XML格式,然后将其发送到其他地方 这是我的代码: Microsoft.Office.Interop.Word.Document documentNew = new Microsoft.Office.Interop.Word.Document(); object missing = Type.Missing; document.Range(ref missing, ref missing).Copy(); document

我正在开发Word 2010插件,我想将带有跟踪更改()的活动文档复制为XML格式,然后将其发送到其他地方

这是我的代码:

Microsoft.Office.Interop.Word.Document documentNew = new Microsoft.Office.Interop.Word.Document();
object missing = Type.Missing;

document.Range(ref missing, ref missing).Copy();
documentNew.Range(ref missing, ref missing).PasteAndFormat(Microsoft.Office.Interop.Word.WdRecoveryType.wdFormatOriginalFormatting);

Object xmlFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXML;

documentNew.SaveAs2(file, xmlFormat);

这是可行的,但不包括在重复文档中跟踪更改。有人知道如何包含更改吗?

先用XML将文档保存到新文档中,然后打开新文档并进行所需的任何更改如何?我已经测试过这种方法,它不需要做任何特殊的事情就可以保留更改的跟踪

复制并粘贴到新文档不会保留原始的跟踪更改

因此,代码应该是:

public static void SaveAsXMLAndDoSomethingElse() {
    String fn = @"C:\Users\zbook\Desktop\Track test.docx";
    String fn_xml = @"C:\Users\zbook\Desktop\Track test3.xml";
    Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
    Documents docs = app.Documents;
    Document doc = docs.Open(fn, ReadOnly:true);
    //bool b = doc.TrackFormatting; // for some reason this line bombs
    doc.SaveAs2(fn_xml, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXML);
    doc.Close(false);
    Marshal.ReleaseComObject(doc);

    // now open up fn_xml ... and do whatever

    app.Quit(false);
    Marshal.ReleaseComObject(docs);
    Marshal.ReleaseComObject(app);
}