如何查找Word段落的页码?

leo*_*nfo 12 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 */ 
    // }
}
Run Code Online (Sandbox Code Playgroud)

ioW*_*int 17

从这篇文章VSTO 2007:我如何确定范围的页面和段落编号?我可以看到你可以从一个范围获得页码

/// <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);
    }
Run Code Online (Sandbox Code Playgroud)

从这篇文章,如何使用C#4.0中的Microsoft.Office.Interop.Word检测Word文档中的空段落?我相信你可以从段落中找到范围!

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

你应该把你的解决方案结合起来,我敢打赌!


小智 6

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

您可能正在寻找类似的东西。阅读wdActiveEndPageNumber与wdActiveEndAdjustedPageNumber之间的区别,以了解哪一个适合您的需求。