exponenta event banner

Программно-числовые страницы

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

Простые номера страниц с помощью DOM API

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

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

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

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