Можно добавить разделы в отчет с помощью класса mlreportgen.report.Section
. Этот предопределенный класс автоматически добавляет отформатированный раздел в ваш отчет. Форматирование по умолчанию является портретной ориентацией с поля по умолчанию и номер страницы в нижнем колонтитуле. Можно заменить размещение и содержимое раздела. Это намного легче и более эффективно использовать этот класс вместо того, чтобы использовать Объекты DOM, чтобы создать раздел. Для получения информации и примеры, смотрите mlreportgen.report.Section
Можно также использовать Объекты DOM, чтобы создать разделы. Можно разделить Word или документ в формате PDF в разделы, каждого с его собственным макетом страницы. Макет страницы включает поля страницы, ориентацию страницы, и заголовки и нижние колонтитулы.
Каждый шаблон Word имеет по крайней мере один раздел макета страницы. Можно использовать Word, чтобы создать столько дополнительных разделов, сколько вам нужно. Например, в основном шаблоне для отчета, можно создать разделы для титульного листа отчета, оглавления и глав. См. документацию Word для получения информации о том, как создать разделы макета страницы, одним словом, обрабатывают по шаблону.
Вы задаете макеты страницы в шаблоне PDF с помощью элемента <layout>
. Можно использовать элемент <layout>
в основном шаблоне (root.html
), и в шаблонах части документа.
Можно использовать эти атрибуты с элементом <layout>
.
style
|
|
first-page-number | Количество первой страницы в размещении |
page-number-format | n или N для числового, a , A , i , I
|
section-break | Где запустить раздел для этого размещения: Odd Page , Even Page или Next Page |
Например, этот элемент задает размещение с:
Верхняя часть, нижняя часть, оставленная, и правые поля 1 дюйма
Заголовок и высоты нижнего колонтитула 0,5 дюймов
Размер поля (пробел для обязательных страниц) 0
8,5 дюймов 11-дюймовым размером страницы в портретной ориентации
<layout style="page-margin: 1in 1in 1in 1in 0.5in 0.5in 0in; page-size: 8.5in 11in portrait" />
Этот элемент <layout>
включает нижний колонтитул. Нижний колонтитул DefaultPageFooter
должен быть задан в шаблоне части документа.
<layout style="page-margin: 1in 1in 1in 1in 0.5in 0.5in 0in; page-size: 8.5in 11in portrait"> <pfooter type="default" template-name="DefaultPageFooter" /> </layout>
Можно создать макеты страницы в частях документа. Например, этот код задает шаблон части документа под названием Chapter
, который включает макет страницы. Размещение включает верхний колонтитул страницы и нижний колонтитул и задает формат для номера страницы с помощью элемента <pnumber>
. В этом случае также задайте шаблоны части для элементы нижнего колонтитула и верхнего колонтитула страницы. Смотрите Верхние колонтитулы страницы Использования и Нижние колонтитулы в Шаблоне.
<dptemplate name="Chapter"> <layout style="page-margin: 1in 1in 1in 1in 0.5in 0.5in 0in; page-size: 8.5in 11in portrait"> <pheader type="default" template-name="MyPageHeader"/> <pfooter type="default" template-name="MyPageFooter"/> <pnumber format="1" /> </layout> <!-- Define content for your layout here--fixed text and holes as needed --> </dptemplate>
Чтобы использовать размещение, вставьте часть документа в свой отчет с помощью программы. Этот код принимает, что существует одна дыра в части документа Chapter
. Часть документа использует определение макета страницы, которое вы предоставили в шаблоне части документа Chapter
.
import mlreportgen.dom.* d = Document('myDocPartEx','pdf','mytemplate'); open(d); % Assign the Chapter document part template to the variable dp dp = DocumentPart(d,'Chapter'); % Move to each hole in this document part and append content moveToNextHole(dp); append(dp,'My text to fill hole'); % Append this document part to the document append(d,dp); close(d); rptview(d.OutputPath);
Можно поместить водяной знак в макет страницы PDF. Водяной знак является изображением, которое появляется в фоновом режиме страницы, такой как слово Draft
или Confidential
. Это запускается позади текста на каждой странице, к которой вы применяете его. Можно использовать любые из этих типов файлов для изображения: .bmp
, .jpg
, .pdf
, .png
, .svg
и .tiff
.
Используйте <watermark>
в элементе <layout>
. Задайте водяной знак как файл изображения, сохраненный в пакете шаблона. Чтобы сохранить изображение в пакете шаблона, разархивируйте пакет шаблона, скопируйте изображение в папку, и затем архивируйте шаблон снова. Например:
Разархивируйте шаблон.
unzipTemplate('MyTemplate.pdftx');
Скопируйте изображение водяного знака в папку MyTemplate
. Чтобы сохранить ваши изображения организованными, скопируйте изображение в папку images
.
Добавьте элемент watermark
в макет страницы в вашем шаблоне. Например, добавьте водяной знак в раскладку по умолчанию в root.html
.
<layout style="page-margin: 1in 1in 1in 1in 0.5in 0.5in 0in; page-size: 8.5in 11in portrait" > <watermark src="./images/myfile.png" width="6in" /> </layout>
Архивируйте шаблон.
zipTemplate('MyTemplate.pdftx','MyTemplate');
Удалите папку MyTemplate
.
Создайте отчет, который использует этот шаблон с помощью API DOM, или создайте основанный на форме отчет в Report Explorer, компонент PDF Page Layout которого использует это размещение.
Свойство CurrentPageLayout
части документа или документа указывает на объект макета страницы, который задает макет страницы текущего раздела на основе шаблона части документа или документа. Каждый раз вы перемещаетесь в новый раздел (путем перемещения в дыру в начале раздела), DOM обновляет свойство CurrentPageLayout
указать на объект макета страницы, который задает свойства макета страницы раздела. Можно изменить макет страницы раздела путем изменения свойств объекта размещения или заменяющий объект размещения на новый объект.
Например, можно изменить ориентацию раздела или добавить верхние колонтитулы страницы или нижние колонтитулы. Внесите эти изменения, прежде чем вы добавите любое содержимое в новый раздел. Когда заменяющий объект текущего макета, используйте объект mlreportgen.dom.DOCXPageLayout
для документов Word и mlreportgen.dom.PDFPageLayout
для документов в формате PDF.
Можно изменить заданные шаблоном свойства макета программно. Например, ориентация страницы шаблона Word по умолчанию DOM является портретом. Этот пример изменяет ориентацию, чтобы заниматься ландшафтным дизайном, чтобы разместить широкие таблицы. Код подкачивает высоту и ширину страницы к новой ориентации страницы.
import mlreportgen.dom.* rpt = Document('test','docx'); open(rpt); sect = rpt.CurrentPageLayout; pageSize = sect.PageSize; pageSize.Orientation = 'landscape'; saveHeight = pageSize.Height; pageSize.Height = pageSize.Width; pageSize.Width = saveHeight; table = append(rpt,magic(22)); table.Border = 'solid'; table.ColSep = 'solid'; table.RowSep = 'solid'; close(rpt); rptview(rpt.OutputPath);
Можно добавить объект DOCXPageLayout
(для документов Word) или объект PDFPageLayout
(для документов в формате PDF), чтобы запустить новый раздел макета страницы программно. Для отчетов DOCX метод append
может задать абзац, чтобы закончить предыдущий раздел.
append(rptObj,paraObj,LayoutObj)
Если вы не задаете абзац в своем методе append
, API DOM вставляет пустой абзац прежде, чем запустить новый раздел. Этот пример использует синтаксис абзаца конца, чтобы не вставлять пустой абзац в конце предыдущего раздела.
import mlreportgen.dom.* rpt = Document('test','docx'); append(rpt,Heading(1,'Magic Square Report','Heading 1')); sect = DOCXPageLayout; sect.PageSize.Orientation = 'landscape'; sect.PageSize.Height = '8.5in'; sect.PageSize.Width = '11in'; append(rpt,Paragraph('The next page shows a magic square.'),sect); table = append(rpt,magic(22)); table.Border = 'solid'; table.ColSep = 'solid'; table.RowSep = 'solid'; close(rpt); rptview(rpt.OutputPath);
mlreportgen.dom.DOCXPageLayout
| mlreportgen.dom.PDFPageLayout
| mlreportgen.dom.PageMargins
| mlreportgen.dom.PageSize