使用c#从word文档中读取粗体和斜体的单词

本文关键字:斜体 单词 读取 word 文档 使用 | 更新日期: 2023-09-27 18:02:19

我不知道如何区分粗体和斜体的单词。

谁能告诉我如何使用c#识别粗体和斜体?

到目前为止我写的是:

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

使用c#从word文档中读取粗体和斜体的单词

首先,我还没有能够测试这段代码,所以我不保证它会工作!我提供了这个,但我想要坦率地说,我的答案是AFAIK!

也就是说,你目前所做的事情将不起作用,因为你正在将段落对象(包含所需的粗体和斜体信息)转换为字符串对象(包含粗体或斜体信息)。也就是说,在您有机会测试它是否存在之前,您就丢失了粗体/斜体信息!而不是使用。range。文本属性,你只需要使用。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
        }
    }
}

由于我没有测试过这段代码,请注意,它可能需要调整才能使其正确。特别是,你会想到单词。大胆地说。斜体会返回真或假,但它们不会。相反,它们返回一个整数,表示以下三种情况之一:

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