【问题标题】:How do I find the page number for a Word Paragraph?如何找到 Word 段落的页码?
【发布时间】:2014-10-05 11:14:30
【问题描述】:

我正在尝试解析 Word 文档,而我要查找的信息应仅位于第一页上。有什么方法可以获取段落的页码吗?

foreach (Word.Paragraph p in document.Paragraphs)
{
    // pageNo = .....
    // if(pageNo == 1 && p.Range.Text.StartsWith("This")) { 
    //     /* do some processing with the paragraph */ 
    // }
}

【问题讨论】:

    标签: c# ms-word


    【解决方案1】:

    从这个帖子VSTO 2007: how do I determine the page and paragraph number of a Range? 我可以看到你可以从一个范围内获得页码

    /// <summary>
        /// Determines the pagenumber of a range.
        /// </summary>
        /// <param name="range">The range to be located.</param>
        /// <returns></returns>
        private static int GetPageNumberOfRange(Word.Range range)
        {
            return (int)range.get_Information(Word.WdInformation.wdActiveEndPageNumber);
        }
    

    从这篇文章中,how to detect Empty paragraph in Word Document using Microsoft.Office.Interop.Word in C#4.0? 我相信你可以从段落中找到范围!

    for each p in Doc.Content.Paragraphs
        if (p.Range.End - p.Range.Start) > 1 then (The paragraph is empty)
    Next
    

    我敢打赌,您的解决方案应该结合了这两个答案!

    【讨论】:

      【解决方案2】:
      foreach (Word.Paragraph p in document.Paragraphs)
      {
         int page = p.Range.Information[Word.WdInformation.wdActiveEndAdjustedPageNumber];
         Console.WriteLine(p.Range.Text + " is on page " + page);
      }
      

      您可能正在寻找类似的东西。阅读 wdActiveEndPageNumber 和 wdActiveEndAdjustedPageNumber 之间的区别,看看哪一个适合您的需要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-02
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 2021-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多