2012-10-24 31 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文档中添加空白页面或封面页面,上面的代码会将空白页面视为分页符,会发生什么? –