在Word中执行与Find、Range等相关的操作时,需对修订模式下的文档进行特殊处理。

核心知识点

Word中的 RevisionsView 属性只有两种设置:显示标记的最终状态(Final Showing Markup) 和 显示标记的原始状态(Original Showing Markup)。
Word本身却支持四种视图,具体包括:最终状态(Final)、显示标记的最终状态(Final Showing Markup)、原始状态(Original)、显示标记的原始状态(Original Showing Markup)。

如何实现4种视图的切换?

视图模式RevisionsViewShowRevisionsAndComments
Final0FALSE
FinalShowingMarkup0TRUE
Original1FALSE
OriginalShowingMarkup1TRUE

实例

 // Step 1 保存文档初始视图信息
bool SRACtag = _doc.Application.ActiveDocument.ActiveWindow.View.ShowRevisionsAndComments;
MSWord.WdRevisionsView ViewTag = _doc.Application.ActiveDocument.ActiveWindow.View.RevisionsView; // Step 2 判断是否处于 修订模式? 若是,则显示最终状态
if (_doc.Application.ActiveDocument.TrackRevisions == true)
{
_doc.Application.ActiveDocument.ActiveWindow.View.RevisionsView = Microsoft.Office.Interop.Word.WdRevisionsView.wdRevisionsViewFinal;
_doc.Application.ActiveDocument.ActiveWindow.View.ShowRevisionsAndComments = false;
_doc.Application.Visible = true;
} /*
*文档处理代码
*/ // Step 3 判断是否处于 修订模式? 若是,则恢复文档初始设置
if (_doc.Application.ActiveDocument.TrackRevisions == true)
{
_doc.Application.ActiveDocument.ActiveWindow.View.RevisionsView = ViewTag;
_doc.Application.ActiveDocument.ActiveWindow.View.ShowRevisionsAndComments = SRACtag;
_doc.Application.Visible = true;
}

WdRevisionsView枚举类型 说明

 using System;

 namespace Microsoft.Office.Interop.Word
{
public enum WdRevisionsView
{
wdRevisionsViewFinal = ,
wdRevisionsViewOriginal = ,
}
}
05-02 22:43