首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Word Interop -检查doc/x文件是否有上标/子脚本文本或等式

Word Interop -检查doc/x文件是否有上标/子脚本文本或等式
EN

Stack Overflow用户
提问于 2016-10-10 02:04:15
回答 1查看 393关注 0票数 1

我正在构建一个Word文件内容分析器,我一直在使用代码,如何检查一个doc/docx文件中是否包含Superscripts/Subscripts等式

到目前为止,我的代码是:

代码语言:javascript
复制
            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()来选择范围,但我不知道如何处理它。

另外,这些方程是使用Insert/Insert面板创建的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-10 16:33:02

如果您只想检查主文档故事范围的任何部分(不包括头、页脚和其他WdStoryType),那么如下所示:

代码语言:javascript
复制
var font = DocObj.Content.Font;
var hasSuperscripts = font.Superscript != 0;
var hasSubscripts = font.Subscript != 0;
var hasEquations = DocObj.OMaths.Count > 0;

大多数返回int而不是bool (如.Font.Superscript和.Font.Subscript)的单词range属性返回-1如果它们对整个范围是真的,0如果它们对于整个范围是假的,或者9999999 (wdUndefined)如果它们只对范围的一部分是真的。

如果您也想搜索.StoryRanges的其余部分:

代码语言:javascript
复制
var hasSubscripts = DocObj.StoryRanges.Cast<Range>().Any(r => r.Font.Subscript != 0);
var hasSuperscripts = DocObj.StoryRanges.Cast<Range>().Any(r => r.Font.Superscript != 0);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39950402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档