Чтобы (заново) начать нумерацию в документе, необходим разрыв раздела. В следующем примере показано, как вставить разрыв раздела «Следующая страница» непосредственно перед целевой страницей, а затем отформатировать нижний колонтитул нового раздела, чтобы нумерация страниц начиналась в разделе с номера 1. 1. 1001 *
Примечание. Я также изменил назначение на TotalPages
в предположении, что общее количество страниц должно соответствовать количеству новых разделов, а не всего документа.
//Go to page where page numbering should start
string pageNum = "3";
wdApp.Selection.GoTo(Word.WdGoToItem.wdGoToPage, Word.WdGoToDirection.wdGoToNext, ref missing, pageNum);
Word.Range rngPageNum = wdApp.Selection.Range;
//Insert Next Page section break so that numbering can start at 1
rngPageNum.InsertBreak(Word.WdBreakType.wdSectionBreakNextPage);
Word.Section currSec = doc.Sections[rngPageNum.Sections[1].Index];
Word.HeaderFooter ftr = currSec.Footers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary];
//So that the footer content doesn't propagate to the previous section
ftr.LinkToPrevious = false;
ftr.PageNumbers.RestartNumberingAtSection = true;
ftr.PageNumbers.StartingNumber = 1;
//If the total pages should not be the total in the document, just the section
//use the field SectionPages instead of NumPages
object TotalPages = Microsoft.Office.Interop.Word.WdFieldType.wdFieldSectionPages;
object CurrentPage = Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage;
Word.Range rngCurrSecFooter = ftr.Range;
rngCurrSecFooter.Fields.Add(rngCurrSecFooter, ref CurrentPage, ref missing, false);
rngCurrSecFooter.InsertAfter(" of ");
rngCurrSecFooter.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
rngCurrSecFooter.Fields.Add(rngCurrSecFooter, ref TotalPages, ref missing, false);