C# 如何查找单词段落的页码?

C# 如何查找单词段落的页码?,c#,ms-word,C#,Ms Word,我正在尝试解析Word文档,我要查找的信息应该仅位于第一页。有没有办法得到段落的页码 foreach (Word.Paragraph p in document.Paragraphs) { // pageNo = ..... // if(pageNo == 1 && p.Range.Text.StartsWith("This")) { // /* do some processing with the paragraph */ // }

我正在尝试解析Word文档,我要查找的信息应该仅位于第一页。有没有办法得到段落的页码

foreach (Word.Paragraph p in document.Paragraphs)
{
    // pageNo = .....
    // if(pageNo == 1 && p.Range.Text.StartsWith("This")) { 
    //     /* do some processing with the paragraph */ 
    // }
}
从这篇文章中,我可以看到你可以从一个范围内得到页码

/// <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);
    }
我敢打赌,你的解决方案应该结合这两个答案

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之间的差异,看看哪一个适合您的需要

foreach (Word.Paragraph p in document.Paragraphs)
{
   int page = p.Range.Information[Word.WdInformation.wdActiveEndAdjustedPageNumber];
   Console.WriteLine(p.Range.Text + " is on page " + page);
}