簡體   English   中英

從Word.Range讀取頁眉和頁腳 - VSTO Word Interop C#

[英]Read page headers and footer from Word.Range - VSTO Word Interop C#

我有一個Range對象,我想用它從Range所在的頁面中提取信息。信息在表格的頁眉和頁腳中,我想從表中讀取文本。

我試過: word.Sections[1].Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Shapes.Range(ref pageNumber).TextFrame.TextRange.Text;

其中word是RangepageNumber是此范圍所在的頁碼。問題是我無法獲得真實的頁碼! 使用word.get_information(WdInformation.wdActiveEndPageNumber)返回錯誤的頁碼!

我找到了任何1感興趣的答案:

int i = (int)range.get_Information(WdInformation.wdActiveEndPageNumber) % 2;
WdHeaderFooterIndex index;
if (i == 0 && range.Sections[1].PageSetup.OddAndEvenPagesHeaderFooter == 1)
    index = WdHeaderFooterIndex.wdHeaderFooterEvenPages;
else
    index = WdHeaderFooterIndex.wdHeaderFooterPrimary;

Range sRange = range.Sections[1].Range;
object direction = Word.WdCollapseDirection.wdCollapseStart;
sRange.Collapse(ref direction);
if (range.get_Information(WdInformation.wdActiveEndPageNumber) == sRange.get_Information(WdInformation.wdActiveEndPageNumber)
    && range.Sections[1].PageSetup.DifferentFirstPageHeaderFooter == 1)
    index = WdHeaderFooterIndex.wdHeaderFooterFirstPage;

object rangeIndex = 1;
Range headerRange = range.Sections[1].Headers[index].Range.ShapeRange.TextFrame.TextRange;

string profession = headerRange.Tables[1].Cell(4, 1).Range.Text;
string manPower = headerRange.Tables[1].Cell(4, 2).Range.Text;
string registration = headerRange.Tables[1].Cell(4, 3).Range.Text;
string taggingListNum = headerRange.Tables[1].Cell(4, 4).Range.Text;

閱讀所有文本文件。 隨后我用它來分析和提取數據:

        Document doc = Globals.ThisAddIn.Application.ActiveDocument; 

        string headers = "";

        foreach (Section section in doc.Sections)
        {
            foreach (HeaderFooter hf in section.Headers)
            {
                headers += hf.Range.Text;
            }
        }

        string docText = headers + doc.Range(doc.Content.Start, doc.Content.End).Text;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM