Можно создавать верхние и нижние колонтитулы страниц в отчетах Word и PDF. Можно создать верхние и нижние колонтитулы страниц в каждом размещении для каждого из следующих типов страниц:
Первая страница раздела
Четные страницы
Нечетные страницы, которые включают первую страницу, если вы не задаете верхний или нижний колонтитул первой страницы
Можно создавать верхние и нижние колонтитулы страниц отчетов программно или в шаблоне, который будет использоваться вместе с отчетом. Можно добавить содержимое в нижние колонтитулы.
Когда вы открываете отчет, DOM API:
Считывает колонтитулы из шаблона и преобразует их в PDF или DOCX PageHeader
и PageFooter
объекты
Связывает объекты колонтитулов с DOCX или PDF PageLayout
объект, который определяет свойства раздела, содержащего колонтитулы
Добавляет колонтитулы к отчету, когда код перемещается по разделам, определенным шаблоном
Когда программа отчетов перемещается по разделам, она может добавлять содержимое в верхние и нижние колонтитулы, заданные шаблоном.
Можно вставлять верхние и нижние колонтитулы страниц в основной шаблон или в шаблон детали документа. Подход отличается в Word и PDF.
Каждая страница документа Word имеет верхний и нижний колонтитулы, которые можно отредактировать. Чтобы включить режим редактирования, дважды щелкните верхний или нижний колонтитул. Кроме того, на вкладке Insert Word, в разделе Колонтитул и колонтитул, нажмите стрелу Header или Footer. В меню выберите соответствующую команду Edit. После завершения редактирования колонтитула на вкладке Header & Footer Tools Design нажмите Close Header and Footer.
В режиме редактирования можно изменить колонтитул или нижний колонтитул следующим образом:
Вставка текста, отверстий, номеров страниц и изображений
Форматирование добавляемых элементов, например, путем определения типа номера страницы
Изменение размера верхнего или нижнего колонтитула
Указание другого колонтитула для первой страницы, нечетных страниц и четных страниц
Вставка полей Word
Механизм полей помогает вам генерировать содержимое верхнего или нижнего колонтитула, которое варьируется от страницы к странице. Чтобы увидеть поля, которые можно вставить, нажмите кнопку Explore Quick Parts и выберите Field. The StyleRef
поле полезно для вставки заголовков глав или разделов в нижний колонтитул. См. раздел «Создание колонтитулов и нижних колонтитулов выполняемых страниц».
Для получения дополнительной информации о работе с верхними и нижними колонтитулами страниц Word смотрите https://support.microsoft.com/en-us/word.
Можно изменять верхние и нижние колонтитулы страниц непосредственно в основном шаблоне. Чтобы добавить верхний или нижний колонтитул страницы в шаблон детали документа, измените верхний и нижний колонтитулы страницы по своему усмотрению. Выберите всю страницу с помощью CTRL+A перед сохранением детали в коллекции быстрых деталей. Дополнительные сведения о добавлении и изменении шаблонов деталей документа см. в разделе Создание библиотеки шаблонов деталей документов Microsoft Word.
Вы можете вставить номер страницы в верхний или нижний колонтитул. На вкладке Header & Footer Design используйте меню Page Number для вставки номера страницы. Чтобы получить доступ к опциям форматирования, в верхнем или нижнем колонтитуле щелкните правой кнопкой мыши номер страницы и выберите Format Page Numbers.
Добавление колонтитулов и колонтитулов страниц в шаблон PDF включает следующие шаги:
Добавить <pheader>
и <pfooter>
элементы макета страницы, заданные с помощью <layout>
элемент. Вы можете добавить элементы верхнего и нижнего колонтитулов в размещение в основном шаблоне (root.html
) или в шаблоне детали документа.
Определите шаблон детали документа для каждого стиля верхнего или нижнего колонтитула страницы.
Примечание
Если вы вставляете колонтитул в размещение только программно, вам не нужно добавлять <pfooter>
или <pheader>
элемент в шаблон <layout>
элемент.
Таблица показывает атрибуты, которые можно использовать с <pheader>
и <pfooter>
. Эти элементы соответствуют классам DOM mlreportgen.dom.PDFPageHeader
и mlreportgen.dom.PDFPageFooter
.
Элемент | Признаки | Значения |
---|---|---|
pheader | type | default , first , even |
template-name | Шаблон позиции документа, определяющий заголовок | |
pfooter | type | default , first , even |
template-name | Шаблон детали документа, определяющий нижний колонтитул |
Например, этот код определяет шаблон детали документа Chapter
который использует два нижнего колонтитула страниц: один для нечетных страниц и один для четных страниц. Формат номера страницы - арабские цифры.
<dptemplate name="Chapter"> <layout style="page-margin: 1in 1in 1in 1in 0.5in 0.5in 0in; page-size: 8.5in 11in portrait"> <pfooter type="default" template-name="MyPageFooter"/> <pfooter type="even" template-name="MyEvenFooter"/> <pnumber format="1" /> </layout> <!-- Define content for your chapter here--fixed text and holes as needed --> </dptemplate>
Определите шаблоны деталей документа MyPageFooter
и MyEvenFooter
в docpart_templates.html
файл. Для примера задайте нижние колонтитулы страниц так, чтобы:
Все нижние колонтитулы вставляют номер страницы. Чтобы вставить номер страницы, используйте <page>
элемент.
Нечетные номера страниц выравниваются вправо. The default
значение для type
на pfooter
элемент задает первые и нечетные страницы.
Четные номера страниц выравниваются влево.
Эти шаблоны деталей документа определяют нижние колонтитулы страниц.
<dptemplate name="MyPageFooter"> <p style="text-align:right;font-family:Arial,Helvetica,sans-serif;font-size:10pt"> <page/></p> </dptemplate> <dptemplate name="MyEvenFooter"> <p style="text-align:left;font-family:Arial,Helvetica,sans-serif;font-size:10pt"> <page/></p> </dptemplate>
Эти элементы HTML DOM API полезны в колонтитулах и колонтитулах. Например, вы можете добавить номера страниц в колонтитулы и колонтитулы в форме Страница 1 из 3 с помощью <page>
и <numpages>
. См. mlreportgen.dom.NumPages
для эквивалентного программного подхода. Можно также сгенерировать содержимое в верхнем или нижнем колонтитуле, которое изменяется на основе содержимого заданного элемента (стиля) на странице. См. раздел «Создание колонтитулов и нижних колонтитулов выполняемых страниц».
Цель | Элемент | Признаки | Значения |
---|---|---|---|
Формат номера страницы (тот же, что и first-page-number и page-number-format на размещении) | pnumber | format | n или N для числового, a , A , i , I
|
initial-value | Номер для первой страницы в размещении, который использует этот элемент | ||
Текущий номер страницы | page | Атрибутов нет | n/a |
Общее количество страниц в документе | numpages | Атрибутов нет | n/a |
Вставка содержимого заголовка или другого стиля в верхний или нижний колонтитул страницы (для работающих колонтитулов и нижнего колонтитула) | styleref | Атрибутов нет | Вставка содержимого ближайших h1 элемент. |
style-name или | Имя стиля с содержимым для вставки в верхний или нижний колонтитул или | ||
outline-level | Уровень стиля контура с содержимым для вставки в верхний или нижний колонтитул |
Используйте CurrentPageLayout
свойство Document
или DocumentPart
для доступа к заданным шаблоном верхним и нижним колонтитулам для текущего раздела документа или детали документа.
Значение CurrentPageLayout
свойство является DOCXPageLayout
или PDFPageLayout
объект, чей PageHeaders
и PageFooters
свойства содержат массив ячеек объектов, соответствующих заданным шаблоном верхним и нижним колонтитулам текущего раздела. Каждый массив ячеек может содержать до трех объектов, в зависимости от того, сколько из трех типов колонтитулов (первая страница, четная страница, нечетная страница) вы задаете для раздела. Объекты могут появиться в любом порядке в массиве ячеек. Таким образом, чтобы получить доступ к верхнему или нижнему колонтитулу определенного типа, выполните поиск в массиве ячеек, чтобы найти тот, к которому вы хотите получить доступ.
Вы можете использовать DOM API, чтобы добавить содержимое в верхний или нижний колонтитул, заданный шаблоном, который появляется на каждой странице в разделе. Чтобы добавить содержимое в верхний или нижний колонтитул в текущем разделе документа или детали документа, сначала используйте часть документа или документа CurrentPageLayout
свойство для доступа к DOCX или PDF- PagerHeader
или PageFooter
объект. Затем используйте append
метод PageHeader
или PageFooter
объект для добавления содержимого.
Объекты верхнего и нижнего колонтитулов являются типом объекта детали документа. Можно добавить любой тип содержимого в верхний или нижний колонтитул страницы, который можно добавить к части документа, например, абзацы, изображения и таблицы.
Можно использовать отверстия в верхнем и нижнем колонтитулах основного шаблона, чтобы управлять позиционированием содержимого, которое вы добавляете в верхние и нижние колонтитулы. Например, эта программа добавляет текущую дату к отверстию с именем Date
на первом заданном шаблоном заголовке страницы первого раздела отчета. Этот пример принимает, что шаблон Word MyReportTemplate
имеет одно размещение, который задает первую страницу, нечетную страницу и четный колонтитул страницы.
import mlreportgen.dom.*; d = Document('MyReport','docx','MyReportTemplate'); open(d); sect = d.CurrentPageLayout; for i = 1:numel(sect.PageHeaders) if strcmpi(sect.PageHeaders(i).PageType,'first') firstPageHeader = sect.PageHeaders(i); while ~strcmp(firstPageHeader.CurrentHoleId,'#end#') switch firstPageHeader.CurrentHoleId case 'Date' append(firstPageHeader,date); end moveToNextHole(firstPageHeader); end break; end end close(d); rptview(d.OutputPath);
Текущий верхний или нижний колонтитул страницы содержит содержимое, которое варьируется от страницы к странице в зависимости от контекста. Например, имя текущей главы или раздела изменяется от страницы к странице. Можно вставить текущее содержимое в верхний или нижний колонтитул страницы.
Вы можете создавать верхние и нижние колонтитулы страниц программно или в шаблоне.
Верхние и нижние колонтитулы страниц в шаблоне Word описывают общий подход к редактированию верхних и нижних колонтитулов страниц в Word. Чтобы добавить текущий текст, вставьте StyleRef
поле. Это поле эквивалентно DOM API mlreportgen.dom.StyleRef
класс. Чтобы вставить это поле в шаблон Word или шаблон детали документа:
Откройте колонтитул для редактирования.
На вкладке Insert в меню кнопки Quick Parts выберите Field.
В диалоговом окне Field из списка Field names выберите StyleRef
. В списке Style name выберите имя стиля, содержащего текст, который необходимо включить в текущий верхний или нижний колонтитул.
Для примера выберите Heading 1
использовать содержимое абзацев, отформатированных в стиле Заголовок 1. В отчете необходимо создать содержимое, которое будет использовать этот стиль для отображения содержимого в верхнем или нижнем колонтитуле.
Нажмите OK.
Для PDF документов, включая текущий текст, используйте <styleref>
элемент. Добавьте такой код к docpart_templates.html
своего шаблона файл библиотеки. The
<styleref>
элемент использует Heading1
объект для содержимого по умолчанию.
<dptemplate name="RunningFooter"> <p style="text-align:center;font-family:sans-serif;font-size:10pt"> <styleref/> </p> </dptemplate>
Чтобы увидеть эффект, добавьте нижний колонтитул страницы в <layout>
элемент root.html
шаблона файл. Вставить его можно в любое
<layout>
элемент, заданный шаблоном.
<layout style="page-margin: 1in 1in 1in 1in 0.5in 0.5in 0in; page-size: 8.5in 11in portrait"> <pfooter template-name="RunningFooter" /> </layout>
Используйте код, который создает Heading1
объекты и вызовы ваш шаблон, чтобы увидеть результат. Этот код предполагает, что в шаблоне определен шаблон позиции нижнего колонтитула RunFooters
.
import mlreportgen.dom.*; d = Document('mydoc','pdf','RunFooters'); open(d); title = append(d, Paragraph('Document Title')); title.Bold = true; title.FontSize = '28pt'; h1 = append(d,Heading1('My First Chapter')); p1 = append(d,Paragraph('Hello World')); h2 = append(d,Heading1('My Second Chapter')); h2.Style = {PageBreakBefore(true)}; p2 = append(d,Paragraph('Text for this chapter.')); close(d); rptview(d.OutputPath);
Для программной ссылки на нижний колонтитул страницы используйте код в этой форме. Первый аргумент - это тип нижнего колонтитула, второй - это пакет шаблона, а третий - это шаблон детали документа.
PDFPageFooter('default','RunFooters','RunningFooter');
Этот код создает нижний колонтитул в текущем макете страницы, не полагаясь на шаблон для вставки нижнего колонтитула. Шаблон используется только для определения шаблона детали документа.
import mlreportgen.dom.*; d = Document('mydoc','pdf','RunFooters'); open(d); myfooter = PDFPageFooter('default','RunFooters','RunningFooter'); d.CurrentPageLayout.PageFooters = myfooter; title = append(d,Paragraph('Document Title')); title.Bold = true; title.FontSize = '28pt'; h1 = append(d,Heading1('My First Chapter')); p1 = append(d,Paragraph('Hello World')); h2 = append(d,Heading1('My Second Chapter')); h2.Style = {PageBreakBefore(true)}; p2 = append(d,Paragraph('Text for this chapter.')); close(d); rptview(d.OutputPath);
DOM API предоставляет классы, которые помогают программно создавать работающие колонтитулы и колонтитулы в документах Word и PDF.
Для вставки заголовка главы в верхний или нижний колонтитул страницы см. раздел mlreportgen.dom.StyleRef
.
Для работы с верхними и нижними колонтитулами страниц см. mlreportgen.dom.DOCXPageHeader
, mlreportgen.dom.DOCXPageFooter
, mlreportgen.dom.PDFPageHeader
, и mlreportgen.dom.PDFPageFooter
.
Программно создайте верхний или нижний колонтитул страницы в текущем разделе отчета. Можно использовать тот же метод для PDF, используя PDFPageHeader
и PDFPageFooter
вместо соответствующих деталей DOCX.
Используйте DOCXPageHeader
или DOCXPageFooter
конструктор, чтобы создать требуемый тип верхнего или нижнего колонтитула страницы (первая страница, нечетная страница, четная страница или нечетная и четная страница) на основе шаблона, который задает форму шаблона (фиксированное содержимое и отверстия для переменного содержимого).
Заполните отверстия в верхнем или нижнем колонтитуле содержимым.
Вставьте колонтитул в массив колонтитулов или колонтитулов страниц текущей PageLayout
объект.
Этот код создает заголовок первой страницы из шаблона, хранящегося в библиотеке шаблонов деталей документа отчета.
import mlreportgen.dom.*; d = Document('MyReport','docx','MyReportTemplate'); open(d); pageHeaders(1) = DOCXPageHeader('first',d,'FirstPageHeader'); while ~strcmp(pageHeaders(1).CurrentHoleId,'#end#') switch pageHeaders(1).CurrentHoleId case 'Date' append(pageHeaders(1),date); end moveToNextHole(pageHeaders(1)); end d.CurrentPageLayout.PageHeaders = pageHeaders; close(d); rptview(d.OutputPath);
Чтобы вставить номер страницы, используйте mlreportgen.dom.Page
объект.
Для вставки номера страницы в форму Страница [текущая страница] [всего страниц] см. mlreportgen.dom.NumPages
.
Для вставки сложных номеров страниц в отчет Word в форме [Глава #] - [Текущая страница #] см. раздел Добавление сложных номеров страниц в Microsoft Word.
mlreportgen.dom.Document
| mlreportgen.dom.DocumentPart
| mlreportgen.dom.DOCXPageFooter
| mlreportgen.dom.DOCXPageHeader
| mlreportgen.dom.DOCXPageLayout
| mlreportgen.dom.NumPages
| mlreportgen.dom.Page
| mlreportgen.dom.PDFPageFooter
| mlreportgen.dom.PDFPageHeader
| mlreportgen.dom.PDFPageLayout
| mlreportgen.dom.StyleRef