[英]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是Range
, pageNumber
是此范圍所在的頁碼。問題是我無法獲得真實的頁碼! 使用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.