Программно страницы номера

Эти примеры показывают, как пронумеровать страницы отчета программно с обоими API Отчета и DOM. Этот рабочий процесс применяет только к Word и PDF вывод.

Простые номера страниц Используя API DOM

В этом примере каждая страница содержит нижний колонтитул с номером страницы в арабских цифрах. Вот первая страница:

Импортируйте пакет 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);

Индивидуально настраиваемые номера страниц Используя API DOM

Этот пример демонстрирует различные способы, которыми можно настроить нумерацию страницы в документе. Объект 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 отчета

Номера страниц автоматически включены в отчеты, сделанные с 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);