Word Interop - 检查 doc/x 文件是否有 Superscript/Subscript 文本或公式
Word Interop - Check if a doc/x file has Superscript/Subscript text or Equations
我正在构建一个 Word 文件内容分析器,我被代码困住了,关于如何检查 doc/docx 文件是否有 Superscripts/Subscripts 或内容中的方程式。
我目前的代码是:
WordApp = new Microsoft.Office.Interop.Word.Application();
WordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone;
WordApp.AutomationSecurity = MsoAutomationSecurity.msoAutomationSecurityForceDisable;
WordApp.Visible = false;
WordApp.Options.SaveInterval = 0;
Document DocObj = WordApp.Documents.Open(FileName, OpenAndRepair: false, NoEncodingDialog: true, ConfirmConversions: false, ReadOnly: true, PasswordDocument: "dummy", PasswordTemplate: "dummy");
PageCount = DocObj.ActiveWindow.ActivePane.Pages.Count;
我知道我必须使用 Ranges()
到 select 范围,但我不知道如何使用它。
此外,方程式是使用 Insert/Equations 面板创建的方程式。
如果您只想检查主文档故事范围内的任何部分(不包括页眉、页脚和其他 WdStoryType
),则类似:
var font = DocObj.Content.Font;
var hasSuperscripts = font.Superscript != 0;
var hasSubscripts = font.Subscript != 0;
var hasEquations = DocObj.OMaths.Count > 0;
大多数 return int
而不是 bool
的词范围属性(例如 .Font.Superscript 和 .Font.Subscript) return如果它们在整个范围内为真则为 -1,如果它们在整个范围内为假则为 0,或者如果它们仅在部分范围内为真则为 9999999 (wdUndefined)。
如果您也想搜索 .StoryRanges
的其余部分:
var hasSubscripts = DocObj.StoryRanges.Cast<Range>().Any(r => r.Font.Subscript != 0);
var hasSuperscripts = DocObj.StoryRanges.Cast<Range>().Any(r => r.Font.Superscript != 0);
我正在构建一个 Word 文件内容分析器,我被代码困住了,关于如何检查 doc/docx 文件是否有 Superscripts/Subscripts 或内容中的方程式。
我目前的代码是:
WordApp = new Microsoft.Office.Interop.Word.Application();
WordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone;
WordApp.AutomationSecurity = MsoAutomationSecurity.msoAutomationSecurityForceDisable;
WordApp.Visible = false;
WordApp.Options.SaveInterval = 0;
Document DocObj = WordApp.Documents.Open(FileName, OpenAndRepair: false, NoEncodingDialog: true, ConfirmConversions: false, ReadOnly: true, PasswordDocument: "dummy", PasswordTemplate: "dummy");
PageCount = DocObj.ActiveWindow.ActivePane.Pages.Count;
我知道我必须使用 Ranges()
到 select 范围,但我不知道如何使用它。
此外,方程式是使用 Insert/Equations 面板创建的方程式。
如果您只想检查主文档故事范围内的任何部分(不包括页眉、页脚和其他 WdStoryType
),则类似:
var font = DocObj.Content.Font;
var hasSuperscripts = font.Superscript != 0;
var hasSubscripts = font.Subscript != 0;
var hasEquations = DocObj.OMaths.Count > 0;
大多数 return int
而不是 bool
的词范围属性(例如 .Font.Superscript 和 .Font.Subscript) return如果它们在整个范围内为真则为 -1,如果它们在整个范围内为假则为 0,或者如果它们仅在部分范围内为真则为 9999999 (wdUndefined)。
如果您也想搜索 .StoryRanges
的其余部分:
var hasSubscripts = DocObj.StoryRanges.Cast<Range>().Any(r => r.Font.Subscript != 0);
var hasSuperscripts = DocObj.StoryRanges.Cast<Range>().Any(r => r.Font.Superscript != 0);