在Word中执行与Find、Range等相关的操作时,需对修订模式下的文档进行特殊处理。
核心知识点
Word中的 RevisionsView 属性只有两种设置:显示标记的最终状态(Final Showing Markup) 和 显示标记的原始状态(Original Showing Markup)。
Word本身却支持四种视图,具体包括:最终状态(Final)、显示标记的最终状态(Final Showing Markup)、原始状态(Original)、显示标记的原始状态(Original Showing Markup)。
如何实现4种视图的切换?
视图模式 | RevisionsView | ShowRevisionsAndComments |
Final | 0 | FALSE |
FinalShowingMarkup | 0 | TRUE |
Original | 1 | FALSE |
OriginalShowingMarkup | 1 | TRUE |
实例
// 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 = ,
}
}