2012-10-24 49 views
1

我一直在搜索互聯網上如何獲得單詞doc中的分頁符,但無濟於事。 Microsoft對此主題提供的幫助很少。我會很感激任何幫助獲得使用word interop的分頁數。我正在使用winform。 感謝使用word interp統計單詞doc中的分頁符

+0

你見過[上移開段和分頁符這個博客(http://blogs.msdn.com /b/brian_jones/archive/2009/06/15/removing-page-and-section-breaks-from-a-word-document.aspx)? (或者它不適用,因爲它使用XML SDK?)我不熟悉'Office.Interop.Word'庫,但我會想象一些傳真的Document.Descendants存在於其中。 –

+0

Thanks @Brad。是的,他沒有使用word interop。 – FadelMS

+0

@FadeIMS:只要判斷[MSDN](http://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.word.aspx)我會看看['DocumentClass。 Sections'](http://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.word.documentclass.sections.aspx)。它出現['Break'](http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.break)屬於這個類別,這將導致我相信你可以迭代必要時可枚舉並刪除。 (只是一個受過教育的猜測)。 –

回答

2

您可以通過搜索^ 012,像這樣算分頁:

  int totalPageBreaks = 0; 
      Microsoft.Office.Interop.Word.Range rng; 

      rng = doc.Range(); 
      rng.Collapse(WdCollapseDirection.wdCollapseStart); 

      while (true) { 
       rng.Find.ClearFormatting(); 
       rng.Find.Text = "^012"; 
       rng.Find.Forward = true; 
       rng.Find.Wrap = WdFindWrap.wdFindStop; 
       rng.Find.Format = false; 
       rng.Find.MatchCase = false; 
       rng.Find.MatchWholeWord = false; 
       rng.Find.MatchWildcards = false; 
       rng.Find.Execute(); 

       if (!rng.Find.Found) 
        break; 

       // increment counter 
       totalPageBreaks++; 

       // do some processing here if you'd like 

       // reset the range 
       rng.Collapse(WdCollapseDirection.wdCollapseEnd); 
      } 
+0

如果我在Word文檔中添加空白頁面或封面頁面,上面的代碼會將空白頁面視爲分頁符,會發生什麼? –