0

太字と斜体の単語を通常の単語から区別する方法がわかりません。

C#を使用して太字と斜体の単語を識別する方法を提案できる人はいますか?

これが私がこれまでに持っているものです:

foreach (Word.Paragraph objparagraph in document.Paragraphs)
{
    string sLine = objparagraph.Range.Text;
    if (sLine.Contains(Font.Bold && Font.Italic))
    { 

    }
}
4

1 に答える 1

0

まず第一に、私はこのコードをテストすることができなかったので、それが機能することを約束しません!私はこれを提供しますが、私の答えがAFAIKであることを率直に伝えたいと思います。

とはいえ、段落オブジェクト(必要な太字と斜体の情報を含む)を文字列オブジェクト(太字または斜体の情報を含まない)に変換しているため、現在行っていることは機能しません。つまり、失います。太字/斜体の情報があるかどうかをテストする前に!.Range.Textプロパティを使用する代わりに、.Rangeプロパティを使用するだけです。コードは次のようになります。

foreach (Word.Paragraph objparagraph in document.Paragraphs)
{
    int TRUE_CODE = 1;     // I do NOT know if this is correct, it could be another number!

    Range rWords = objparagraph.Range.Text;
    foreach (Range word in rWords.Words
        if (word.Bold == TRUE_CODE)
        { 
             // handle bold case
        }
        if (word.Italic == TRUE_CODE)
             // handle italic case
        }
    }
}

私はこのコードをテストしていないので、正しくするために微調整が必​​要になる可能性があることに注意してください。特に、word.Boldとword.Italicはtrueまたはfalseを返しますが、そうではありません。代わりに、3つのもののいずれかを表す整数を返します。

true - the word is bold (or italic)
false - the word is _not_ bold (or italic)
wdUndefined - the word is something else (combination, etc.)

(これに関するドキュメントについては、以下のリンクを参照してください)問題は、各カテゴリにどの整数が含まれるかわからないことです。上記のコードスニペットでは、1がtrueにマップされると想定していますが、これは正しくない可能性があります。うまくいけば、それはあなたが始めるのに十分です。ハッピーコーディング!

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.range.bold.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

于 2013-03-09T04:57:28.343 に答える