В этом примере добавляется сложный номер страницы в нижний колонтитул документа Microsoft ® Word. Комплексное число имеет вид [Глава #] [Разделитель] [Страница #], например, 7-1. Этот тип номера можно добавить в колонтитул. Это можно сделать с помощью шаблона, вставив номер страницы в нижний колонтитул и указав свойства номера страницы.
Независимо от того, используется ли шаблон или программа, шаблон должен использовать многоуровневый список для уровня заголовка, содержащего главу для ссылки. Чтобы создать список этого типа, выполните следующие действия.
В шаблоне Word на вкладке Главная нажмите кнопку Многоуровневый список.
Выберите нумерованный элемент заголовка.

Примените к абзацу стиль «Обычный».
Сохраните и закройте шаблон.
Затем можно использовать такую программу, как эта, для использования сложного номера страницы. ChapterStartStyle и ChapterSeparator свойства на панели PageNumber объект указывает использовать уровень заголовка 1 для номера главы и en-тире в качестве разделителя.
import mlreportgen.dom.*; d = Document('mypages','docx','numberChapters'); open(d); layout = d.CurrentPageLayout; % Page number formatting pgnum = PageNumber(1,'n'); pgnum.ChapterStartStyle = '1'; pgnum.ChapterSeparator = 'endash'; % Add page number object to page layout styles layout.Style = {pgnum}; % layout.Style = [layout.Style {pgnum}]; % Create the footer object and insert a page number myfooter = DOCXPageFooter(); para = Paragraph(); para.HAlign = 'center'; append(para,Page()); append(myfooter,para); % Set PageFooters on the current layout to your footer object layout.PageFooters = myfooter; % Create content for i=1:5 title = append(d,Heading1(['Chapter' num2str(i)])); title.Style = {PageBreakBefore}; for j=1:30 append(d,'This is the body of the chapter'); end end close(d); rptview(d.OutputPath);
Совет
Создайте макет страницы для каждой главы, чтобы перезапустить нумерацию страниц для каждой главы в 1.
mlreportgen.dom.DOCXPageFooter | mlreportgen.dom.DOCXPageLayout | mlreportgen.dom.PageNumber