如何使用Microsoft.Office.Interop.Word区分Microsoft Word文件中的标题?

时间:2012-07-04 10:31:44

标签: c# ms-word office-interop

我想在word文档中查找字体大小比下面文本大的所有标题,所有标题都是相同的字体大小,否则所有标题都是粗体,而下面的文字不是粗体我想要将所有这些标题保存在列表中。我怎么能实现这个?我是Office.Interop.Word的学习者。任何帮助都会对我有所帮助。

1 个答案:

答案 0 :(得分:0)

循环遍历每个段落,如果段落符合您的要求(您应该澄清),则将其添加到列表中(您还应该明确列表结构,例如List<>或word文档中的列表是否可以如ListParagraph)。如果此代码无效,请说出来并澄清您的问题:

foreach (MSWord.Paragraph paragraph in doc.Paragraphs)
{
    if (paragraph.Next() != null)
    {
        if (IsHeading(paragraph))
        {
            myList.Add(paragraph.Range.Text.ToString());
        }
    }
}

private static bool IsHeading(MSWord.Paragraph paragraph)
{
    float para1FontSize = 0;
    float para2FontSize = 0;
    bool para1IsBold = false;
    bool para2IsBold = false;

    para1FontSize = paragraph.Range.Font.Size;
    para2FontSize = paragraph.Next().Range.Font.Size;
    para1IsBold = paragraph.Range.Font.Bold.Equals(1);
    para2IsBold = paragraph.Next().Range.Font.Bold.Equals(0);

    return ((para1FontSize > para2FontSize) || (para1IsBold && !para2IsBold));
}