2016-10-10 11 views
1

Wordファイルコンテンツアナライザーを構築していますが、doc/docxファイルにはがあるかどうかを確認する方法については、下付き文字またはコンテンツ内の式私がこれまで持ってWord Interop - doc/xファイルにSuperscript/Subscriptテキストまたは数式が含まれていないか確認します。

コードは次のとおりです。

  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()を使用する必要があることを知っているが、私はそれを行う方法がわかりません。

また、等式は、挿入/式パネルを使用して作成されたものです。その後、

+0

あなたが生成されたコードhttp://superuser.com/questions/140374/is-there-aをチェックするためにWordでマクロを記録することができます2007年の文書内の方程式検索、http://wordribbon.tips.net/T013110_Easily_Finding_Superscripts.html、https://msdn.microsoft.com/en-us/library/office /ff821988.aspx?f=255&MSPPError=-2147217396 – Slai

+0

if(DocObj.OMaths.Count> 0)Equations = true; これは、文書に方程式がありますが、上付き文字/下付き文字ではないことを確認するのに役立ちました。どのようにそれを行うことができますか? – naqushab

答えて

2

あなただけのメイン文書ストーリー範囲のいずれかの部分が(ヘッダー、フッター、およびその他のWdStoryTypeが含まれていない)かどうかをチェックしたい場合のようなもの:

var font = DocObj.Content.Font; 
var hasSuperscripts = font.Superscript != 0; 
var hasSubscripts = font.Subscript != 0; 
var hasEquations = DocObj.OMaths.Count > 0; 

返す言葉レンジプロパティのほとんどをbool(.Font.Superscriptや.Font.Subscriptなど)の代わりにintを指定すると、範囲全体でtrueの場合は-1、範囲全体ではfalseの場合は0、一部の場合はtrueの場合は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); 
関連する問題