2011-08-17 23 views
10

Tôi đang cố gắng phân tích cú pháp tài liệu Word và thông tin tôi đang tìm kiếm sẽ chỉ được đặt trên trang đầu tiên. Có cách nào để lấy số trang cho một đoạn không?Tôi làm cách nào để tìm số trang cho một Đoạn văn bản?

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

Trả lời

16

Từ bài này VSTO 2007: how do I determine the page and paragraph number of a Range? tôi có thể thấy bạn có thể nhận được trang số tạo thành một dải

/// <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); 
    } 

Và từ bài này, how to detect Empty paragraph in Word Document using Microsoft.Office.Interop.Word in C#4.0? tôi chắc chắn u có thể tìm ra Range từ đoạn!

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

bạn nên có giải pháp kết hợp cả câu trả lời, tôi đặt cược!

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

Điều gì đó có thể là điều bạn đang tìm kiếm. Đọc về sự khác biệt giữa wdActiveEndPageNumber và wdActiveEndAdjustedPageNumber để xem cái nào phù hợp với nhu cầu của bạn.

Các vấn đề liên quan