Создайте нижние колонтитулы и заголовки

Можно создать верхние колонтитулы страницы и нижние колонтитулы в отчетах PDF и Word. Можно создать верхние колонтитулы страницы и нижние колонтитулы в каждом размещении для каждого из этих типов страниц:

  • Первая страница раздела

  • Четные страницы

  • Нечетные страницы, которые включают первую страницу, если вы не задаете первый верхний колонтитул страницы или нижний колонтитул

Можно создать верхние колонтитулы страницы отчета и нижние колонтитулы программно или в шаблоне, чтобы использовать с отчетом. Можно добавить содержимое к нижним колонтитулам.

Когда вы открываете отчет, API DOM:

  1. Читает заголовки и нижние колонтитулы из шаблона и преобразует их в PDF или PageHeader DOCX и PageFooter объекты

  2. Сопоставляет заголовки и объекты нижнего колонтитула с DOCX или PDF PageLayout объект, который задает свойства раздела, который содержит заголовки и нижние колонтитулы

  3. Добавляют заголовки и нижние колонтитулы к вашему отчету, когда ваш код перемещается по разделам, заданным шаблоном

Когда ваша программа отчета перемещается по разделам, она может добавить содержимое к заданным шаблоном заголовкам и нижним колонтитулам.

Используйте верхние колонтитулы страницы и нижние колонтитулы в шаблоне

Можно вставить верхние колонтитулы страницы и нижние колонтитулы в основном шаблоне или в шаблоне части документа. Подход отличается для Word и для PDF.

Верхние колонтитулы страницы и нижние колонтитулы, одним словом, обрабатывают по шаблону

Каждая страница, одним словом, документирует, имеет заголовок и нижний колонтитул, который можно отредактировать. Чтобы включить режим редактирования, дважды кликните заголовок или область нижнего колонтитула. В качестве альтернативы на вкладке Word Insert, в разделе Header & Footer, кликают по стреле кнопки Header или Footer. В меню выберите соответствующую команду Edit. Когда вы закончите редактировать заголовок или нижний колонтитул на вкладке Header & Footer Tools Design, нажмите Close Header and Footer.

В режиме редактирования можно изменить заголовок или нижний колонтитул:

  • Вставляя текст, отверстия, номера страниц и изображения

  • При форматировании элементов вы добавляете, например, путем определения типа номера страницы

  • Изменение размеров заголовка или нижнего колонтитула

  • Определение различного заголовка или нижнего колонтитула для первой страницы, нечетных страниц и четных страниц

  • Поля Inserting Word

    Полевой механизм помогает вам сгенерировать заголовок или содержимое нижнего колонтитула, которое варьируется от страницы до страницы. Чтобы видеть поля, можно вставить, нажать кнопку Explore Quick Parts и выбрать Field. StyleRef поле полезно для вставки главы или заголовков раздела в нижнем колонтитуле. Смотрите Создают Рабочие Верхние колонтитулы страницы и Нижние колонтитулы.

Для получения дополнительной информации о работе с верхними колонтитулами страницы Word и нижними колонтитулами, см. https://support.microsoft.com/en-us/word.

Можно изменить верхние колонтитулы страницы и нижние колонтитулы непосредственно в основном шаблоне. Чтобы добавить верхний колонтитул страницы или нижний колонтитул в шаблоне части документа, измените верхний колонтитул страницы и нижний колонтитул, как вы хотите. Выберите целую страницу с помощью CTRL+A, прежде чем вы сохраните часть в галерею Quick Parts. Для получения дополнительной информации при добавлении и изменении шаблонов части документа, смотрите, Создают Библиотеку шаблонов Части Документа Microsoft Word.

Можно вставить номер страницы в заголовок или нижний колонтитул. На вкладке Header & Footer Design используйте меню Page Number, чтобы вставить номер страницы. К параметрам форматирования доступа, в заголовке или нижнем колонтитуле, щелкают правой кнопкой по номеру страницы и выбирают Format Page Numbers.

Верхние колонтитулы страницы и нижние колонтитулы в шаблоне PDF

Добавление верхних колонтитулов страницы и нижних колонтитулов в шаблоне PDF включает эти шаги:

  • Добавьте <pheader> и <pfooter> элементы к макету страницы, что вы задаете использование <layout> элемент. Можно добавить заголовок и элементы нижнего колонтитула к размещению в основном шаблоне (root.html) или в шаблоне части документа.

  • Задайте шаблон части документа для каждого верхнего колонтитула страницы или стиля нижнего колонтитула.

Примечание

Если вы вставляете заголовок или нижний колонтитул в размещение только программно, вы не должны добавлять <pfooter> или <pheader> элемент к шаблону <layout> элемент.

Таблица показывает атрибуты, что можно использовать с <pheader> и <pfooter>. Эти элементы соответствуют классам DOM mlreportgen.dom.PDFPageHeader и mlreportgen.dom.PDFPageFooter.

ЭлементАтрибутыЗначения
pheadertypedefault, first, even
template-nameШаблон части документа, который задает заголовок
pfootertypedefault, 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> элемент.

  • Нечетные номера страниц выравнивают по правому краю. 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 API DOM полезны в заголовках и нижних колонтитулах. Например, можно добавить номера страниц в заголовки и нижние колонтитулы на Странице 1 формы 3 использований <page> и <numpages>. Смотрите mlreportgen.dom.NumPages для эквивалентного программируемого подхода. Можно также сгенерировать содержимое в заголовке или нижнем колонтитуле, который изменяется на основе содержимого указанного элемента (стиль) на странице. Смотрите Создают Рабочие Верхние колонтитулы страницы и Нижние колонтитулы.

ЦельЭлементАтрибутыЗначения
Формат номера страницы (то же самое как first-page-number и page-number-format на размещении)pnumberformatn или N для числового, aAii
initial-valueНомер для первой страницы в размещении, которое использует этот элемент
Текущий номер страницы pageНикакие атрибутыn/A
Общее количество страниц в документеnumpagesНикакие атрибутыn/A
Вставьте содержимое заголовка или другого стиля в верхний колонтитул страницы или нижний колонтитул (для рабочих заголовков и нижних колонтитулов)stylerefНикакие атрибутыВставляет содержимое самого близкого h1 элемент.
style-name илиИмя стиля с содержимым, чтобы вставить в заголовок или нижний колонтитул, или
outline-levelОбрисуйте в общих чертах уровень стиля с содержимым, чтобы вставить в заголовок или нижний колонтитул

Заданные шаблоном доступа заголовки и нижние колонтитулы

Используйте CurrentPageLayout свойство Document или DocumentPart возразите, чтобы получить доступ к заданным шаблоном заголовкам и нижним колонтитулам для текущего раздела части документа или документа.

Значение CurrentPageLayout свойством является DOCXPageLayout или PDFPageLayout возразите чей PageHeaders и PageFooters свойства содержат массив ячеек объектов, соответствующих заданным шаблоном заголовкам и нижним колонтитулам текущего раздела. Каждый массив ячеек может содержать до трех объектов, в зависимости от того, сколько из трех типов заголовков и нижних колонтитулов (первая страница, четная страница, нечетная страница) вы задаете для раздела. Объекты могут появиться в любом порядке в массиве ячеек. Таким образом, чтобы получить доступ к заголовку или нижнему колонтитулу конкретного типа, ищите массив ячеек, чтобы найти тот, к которому вы хотите получить доступ.

Добавьте содержимое к заданному шаблоном заголовку или нижнему колонтитулу

Можно использовать API DOM, чтобы добавить содержимое к заданному шаблоном заголовку или нижнему колонтитулу, который появляется на каждой странице в разделе. Чтобы добавить содержимое к заголовку или нижнему колонтитулу в текущем разделе части документа или документа, сначала используйте часть документа или документа 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. Чтобы добавить обычный текст, вставьте StyleRef поле . Это поле эквивалентно API DOM mlreportgen.dom.StyleRef класс. Чтобы вставить это поле, одним словом, обрабатывают по шаблону или шаблон части документа:

  1. Откройте заголовок или нижний колонтитул для редактирования.

  2. На вкладке Insert, в меню кнопки Quick Parts, выбирают Field.

  3. В диалоговом окне Field, из списка Field names, выбирают StyleRef. Из списка Style name выберите имя стиля, который содержит текст, который вы хотите включать в рабочий заголовок или нижний колонтитул.

    Например, выберите Heading 1 использовать содержимое абзацев, отформатированных с Заголовком 1 стиля. Ваш отчет должен создать содержимое, которое использует тот стиль для содержимого, чтобы появиться в заголовке или нижнем колонтитуле.

  4. Нажмите OK.

Для документов в формате PDF, чтобы включать обычный текст, используют <styleref> элемент. Добавьте код как это к docpart_templates.html вашего шаблона файл библиотеки. <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);

Создайте рабочие верхние колонтитулы страницы и нижние колонтитулы программно

API DOM обеспечивает классы, которые помогают вам создать рабочие заголовки и нижние колонтитулы программно в Word и документах в формате PDF.

Создайте верхние колонтитулы страницы и нижние колонтитулы программно

Программно создайте верхний колонтитул страницы или нижний колонтитул в текущем разделе отчета. Можно использовать тот же метод для PDF, с помощью PDFPageHeader и PDFPageFooter вместо соответствующих частей DOCX.

  1. Используйте DOCXPageHeader или DOCXPageFooter конструктор, чтобы создать желаемый тип верхнего колонтитула страницы или нижнего колонтитула (первая страница, нечетная страница, четная страница или четная и нечетная страница) на основе шаблона, который задает форму шаблона (фиксированное содержимое и отверстия для переменного содержимого).

  2. Заполните отверстия в заголовке или нижний колонтитул с содержимым.

  3. Вставьте заголовок или нижний колонтитул в массиве верхних колонтитулов страницы или нижние колонтитулы текущего 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);

Смотрите также

Функции

Классы

Похожие темы