В этих примерах показано, как программно нумеровать страницы отчета с помощью API DOM и Report. Этот рабочий процесс применяется только к выводимым данным Word и PDF.
В этом примере каждая страница содержит нижний колонтитул с номером страницы в арабских цифрах. Вот первая страница:

Импортируйте пакет DOM, чтобы не использовать длинные, полные имена классов.
import mlreportgen.dom.*;Создание и открытие документа PDF. Чтобы создать документ Word, измените тип вывода с "pdf" кому "docx".
d = Document("pageNumberExample","pdf"); open(d);
Создайте нижний колонтитул PDF и добавьте его в текущий макет страницы. Задайте тип нижнего колонтитула как "default" чтобы он появился на всех страницах документа. Если документ является документом Word, создайте DOCXPageFooter вместо PDFPageFooter.
footer = PDFPageFooter("default");
d.CurrentPageLayout.PageFooters = footer;Определение Paragraph объект, содержащий текст, появляющийся перед номером страницы. Отформатируйте абзац так, чтобы он располагался по горизонтали на странице.
pagePara = Paragraph("Page"); pagePara.WhiteSpace = "preserve"; pagePara.HAlign = "center";
Создание DOM Page объект, являющийся местозаполнителем для номера страницы. Этот местозаполнитель будет заменен текущим номером страницы при записи документа PDF или при открытии документа Word в Word. Это Page объект можно добавить непосредственно в нижний колонтитул или верхний колонтитул, но в этом примере содержится дополнительный текст и форматирование номера страницы.
pageNum = Page();
Добавьте номер страницы в абзац и добавьте абзац в нижний колонтитул.
append(pagePara,pageNum); append(footer,pagePara);
Демонстрация нумерации страниц путем добавления абзацев и разрывов страниц в документ для создания нескольких страниц.
page1Para = Paragraph("Hello World"); append(d,page1Para); append(d, PageBreak()); page2Para = Paragraph("Another page"); append(d,page2Para); append(d, PageBreak()); page3Para = Paragraph("Another page"); append(d,page3Para);
Закройте и просмотрите документ.
close(d); rptview(d);
В этом примере демонстрируются различные способы настройки нумерации страниц в документе. DOM PageNumber объект задает нумерацию страниц, начинающуюся с 4, и формат чисел, начинающийся с римских цифр верхнего регистра. Другая настройка в объекте заголовка страницы приводит к тому, что заголовок имеет только четные страницы. Вот вершины каждой страницы в документе:

Импортируйте пакет DOM, чтобы не использовать длинные, полные имена классов.
import mlreportgen.dom.*;Создание и открытие документа Word. Чтобы создать документ PDF, измените тип вывода с docx кому pdf.
d = Document("customPageNumberExample","docx"); open(d);
Создать PageNumber объект, чтобы указать, что номера страниц начинаются с 4 и используют прописные римские цифры. Добавление объекта в текущий макет страницы документа.
romanPageNumber = PageNumber(4,"I");
layout = d.CurrentPageLayout;
layout.Style = [layout.Style {romanPageNumber}];Создайте заголовок и добавьте его в текущий макет страницы. Задайте тип заголовка как even чтобы он был включен только на ровных страницах документа. Если документ является документом PDF, создайте PDFPageHeader вместо DOCXPageHeader.
evenPageHeader = DOCXPageHeader("even");
layout.PageHeaders = evenPageHeader;Создайте абзац, содержащий местозаполнитель номера страницы. Установка параметров абзаца HAlign для центрирования номера страницы в заголовке. Добавьте абзац в заголовок.
headerPara = Paragraph();
headerPara.HAlign = "center";
append(headerPara,Page());
append(evenPageHeader,headerPara);Демонстрация нумерации страниц путем добавления абзацев и разрывов страниц в документ для создания нескольких страниц.
page4Para = Paragraph("This is page four."); append(d,page4Para); append(d, PageBreak()); page5Para = Paragraph("This page does not have a page number."); append(d,page5Para); append(d, PageBreak()); page6Para = Paragraph("This is another page."); append(d,page6Para);
Закройте и просмотрите документ.
close(d); rptview(d);
Номера страниц автоматически включаются в отчеты, созданные с помощью API отчетов. Можно задать начальный номер и формат номера для всего отчета или для отдельных глав. В этом примере форматом цифр по умолчанию для отчета являются арабские цифры, но в последней главе этот параметр переопределяется для использования буквенных символов верхнего регистра. В оглавлении показаны параметры нумерации страниц:

Импортируйте пакеты Report и DOM, чтобы не использовать длинные, полные имена классов.
import mlreportgen.report.* import mlreportgen.dom.*
Создание отчета в формате PDF. Чтобы создать отчет Word, измените тип вывода с pdf кому docx. Можно задать номер первой страницы и формат номера для всего отчета, изменив PageNumberFormat и FirstPageNumber свойства объекта отчета Layout , как показано в комментированных строках кода. Поскольку нумерация страниц по умолчанию - это арабские цифры, начинающиеся с 1, нет необходимости задавать свойства для этого примера.
rpt = Report("newReport", "pdf"); % rpt.Layout.PageNumberFormat = "n"; % rpt.Layout.FirstPageNumber = 1;
Создание титульной страницы и оглавления. Добавьте их в отчет. Титульная страница не имеет номера. Оглавление пронумеровано по умолчанию строчными римскими цифрами, начинающимися с i. Чтобы изменить нумерацию оглавления, используйте Layout свойство объекта, как показано в коде комментария для Report объект.
tp = TitlePage(); tp.Title = "New Report"; tp.Author = "MathWorks"; add(rpt,tp); toc = TableOfContents(); add(rpt, toc);
Создайте две главы, используя номер страницы по умолчанию и формат отчета. Добавьте их в отчет.
ch = Chapter("Introduction"); sec = Section("First Section of Chapter 1"); add(sec, "This is the first section of chapter 1."); add(ch,sec); add(rpt,ch); ch = Chapter("Next chapter"); sec = Section("First Section of Chapter 2"); add(sec,"This is the first section of chapter 2."); add(ch,sec); add(rpt,ch)
Создайте заключительную главу для отчета. Установите для номера начальной страницы значение 1, а для формата номера - буквенные символы верхнего регистра.
ch = Chapter("Last Chapter"); ch.Layout.FirstPageNumber = 1; ch.Layout.PageNumberFormat = "A";
Создайте два раздела, разделенных разрывом страницы, и добавьте их в отчет для демонстрации нумерации страниц последней главы.
sec = Section("First Section of the last chapter"); add(sec,"This is the first section of the last chapter."); add(ch,sec); add(ch, PageBreak()); sec = Section("Second Section of the last chapter"); add(sec,"This is the second section of the last chapter."); add(ch,sec); add(rpt, ch);
Закройте и просмотрите отчет.
close(rpt); rptview(rpt);