2012-07-04 66 views
0

我想查找字號大於其下方文本字體大小的所有標題,所有標題都是相同的字體大小,否則所有標題都是粗體,而下面的文本不是粗體,我想將所有這些標題保存在列表中。我怎樣才能做到這一點?我是Office.Interop.Word的學習者,任何幫助都會對我有所幫助。如何使用Microsoft.Office.Interop.Word區分Microsoft Word文件中的標題?

+0

這些標題段落是否應用了特定的樣式?通常標題是風格的。如果是這種情況,請參考問題11327304.「將所有這些標題保存在列表中」是否指列表數據結構?或者你的意思是一個單詞列表(例如bulleted,numbereed,multilievel)?這絕對是我們可以幫助的事情,但您需要清理問題並使其更具體。 – JohnZaj

+0

連續的'標題'呢,這些屬於這個列表嗎?那麼文檔中的'最後'段呢?忽略它? (最後一段通常不是標題......但仍然是一個角落案例) – JohnZaj

+0

雅,雖然這不是一個完美的方式來找到所有標題..如果我部分成功地找到文檔的標題 – Dolo

回答

0

循環遍歷每個段落,如果段落符合您的要求(您應該澄清),然後將其添加到列表中(您還應該澄清列表結構,如列表<>或列表中的文檔作爲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)); 
} 
+0

@傑克謝謝很多傑克這是我希望的傑克,代碼是直接和簡單易懂再次感謝 – Dolo

+0

@傑克我只需要添加列表<>中的所有標題.. – Dolo

相關問題