1

我目前需要将两个 Microsoft Word 文档与Microsoft.Office.Interop.Word. 我找到了这个Application.CompareDocument方法,它完全符合我的要求。以下 C# 源代码(片段)将保存在文件系统中的文档与当前活动文档进行比较,并在新文档中打开结果:

using Word = Microsoft.Office.Interop.Word;

// [...]

Word.Document originalDocument = this.application.Documents.Open(filePath, ReadOnly: true, Visible: false);
Word.Document diffDocument = this.application.CompareDocuments(
    originalDocument,
    this.application.ActiveDocument);
((Word._Document)originalDocument).Close(SaveChanges: false);

// TODO Activate two built-in Microsoft Word buttons.

// [...]

我还需要在新创建的 Word 文档视图中激活两个内置按钮。在 MSDN 上搜索了一段时间后,我无法找到实现我想要的方法。我为这个问题添加了两个屏幕截图,显示了我想要激活的内置按钮(遗憾的是,我使用的是 Microsoft Word 2010 的德语版本,所以我不知道确切的翻译是什么)。

  1. “Quelldokumente anzeigen”(可翻译为“显示源文件”)。我需要激活“Beide anzeigen”按钮(可以翻译为“同时显示”)。 Quelldokumente anzeigen 按钮的屏幕截图

  2. “Überarbeitungsbereich”(可翻译为“修订窗格”)。我需要激活按钮“Überarbeitungsbereich vertikal...”(可以翻译为“垂直修订窗格...”)。 按钮 Überarbeitungsbereich 的屏幕截图

最后,我想知道如何修改这两个按钮的状态(直接或间接通过方法调用)。

编辑 (2013-08-03)

可以通过以下方法设置修订窗格:

diffDocument.ActiveWindow.View.SplitSpecial = Word.WdSpecialPane.wdPaneRevisionsVert;

我仍在寻找一种解决方案来显示源文档和修改后的文档窗格。

编辑 (2013-08-05)

可以通过以下方法修改显示源文档按钮以显示两个源文档:

diffDocument.ActiveWindow.ShowSourceDocuments = Word.WdShowSourceDocuments.wdShowSourceDocumentsBoth;
4

1 回答 1

2

您的问题的可能解决方案:

广告 1.但首先,您需要使用 while 打开文档ReadOnly: false,根据 C# 和 VBA 测试,当您将参数设置为时,它将不起作用ReadOnly: true

((Word._Document)diffDocument).Windows.CompareSideBySideWith(originalDocument);

广告2.这个时候需要引用Word Application的window对象。这是活动窗口的代码:

appWRD.ActiveWindow.View.SplitSpecial = Word.WdSpecialPane.wdPaneRevisionsVert;

其中:appWRDWord.Application我的代码中。

又是广告 1。(以上是误会的结果)。

根据一些测试,这段代码应该给你你需要的东西:

appWRD.ActiveWindow.ShowSourceDocuments = Word.WdShowSourceDocuments.wdShowSourceDocumentsBoth;
于 2013-08-02T17:43:11.043 回答