Эти примеры показывают, как пронумеровать страницы отчета программно с обоими API Отчета и DOM. Этот рабочий процесс применяет только к 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 Отчета. Можно определить стартовый номер и числовой формат для целого отчета или для отдельных глав. В этом примере числовой формат по умолчанию для отчета является арабскими цифрами, но последняя глава заменяет эту установку, чтобы использовать прописные буквенные символы. Оглавление демонстрирует настройку нумерации страницы:
Импортируйте Отчет и пакеты 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);