Этот пример показывает, как задать поля страницы в отчете PDF. Можно задать верхнюю часть, нижнюю часть, оставленную, правые поля для страницы PDF, плюс ее заголовок, нижний колонтитул и размеры поля.
Импортируйте пакеты API DOM, таким образом, вы не должны использовать долго, полностью определенные имена классов
import mlreportgen.dom.*;
Создайте и откройте отчет.
d = Document('myreport', 'pdf'); open(d);
Получите текущий объект макета страницы.
currentLayout = d.CurrentPageLayout;
Создайте определение верхнего колонтитула страницы для документа в формате PDF.
pdfheader = PDFPageHeader();
Создайте объект DOM Paragraph
и заставьте его центрироваться выровненный и полужирный. Установите его размер шрифта на 12 ПБ. Добавьте его к объекту PDFPageHeader
.
p = Paragraph('Sample Traffic Data in Austin'); p.Style = [p.Style, {HAlign('center'), Bold(true), FontSize('12pt')}]; append(pdfheader, p);
Присвойте созданный объект pdfheader
PageHeaders
текущего макета страницы.
currentLayout.PageHeaders = pdfheader;
Создайте массивы ячеек для стилей, которые будут использоваться формальной таблицей и ее записями таблицы.
dataTableStyle = {Border('solid'), ColSep('solid'), RowSep('solid'), Width('100%')... OuterMargin('0pt', '0pt', '0pt', '0pt')};
Создайте некоторые выборочные данные из камеры трафика Остина, чтобы включать в таблицу. Затем создайте объект FormalTable
и включайте выборочные данные в разделы Заголовка и Тела.
dataHeader = {'Camera ID', 'Status', 'Manufacturer', 'Signal Engineer Area'}; dataBody = {'1', 'TURNED_ON', 'Spectra', 'NORTHEAST'; '2', 'TURNED_ON', 'Sarix', 'NORTHWEST'; '3', 'TURNED_OFF', 'Spectura', 'SOUTHWEST'; '3', 'TURNED_ON', 'Spectura', 'NORTHEAST'; '4', 'TURNED_ON', 'Sarix', 'SOUTHEAST'; '5', 'TURNED_ON', 'Spectra', 'NORTHEAST'; '6', 'TURNED_ON', 'Sarix', 'NORTHWEST'; '7', 'TURNED_OFF', 'Spectura', 'SOUTHWEST'; '8', 'TURNED_ON', 'Spectura', 'NORTHEAST'; '9', 'TURNED_ON', 'Sarix', 'SOUTHEAST'}; dataTable = FormalTable(dataHeader, dataBody); dataTable.Header.Style = [dataTable.Header.Style {Bold}]; dataTable.Style = [dataTable.Style dataTableStyle]; append(d, dataTable);
Верхние колонтитулы страницы PDF и нижние колонтитулы фиксируются в размере. Общая высота от начала страницы до содержимого тела является значением свойства Top
объекта PageMargins
плюс значение свойства Header
.
Установите свойство поля Top
на 0,75 дюйма. Чтобы разместить 12 pts Paragraph
, созданный в Заголовке PDF, установите размер заголовка на 0,25 дюйма. 1 дюйм равняется 72 pts, таким образом, 0,25 дюйма равняются 18 pts. Содержимое Paragraph
занимает только 12 pts, таким образом, 0,25 дюймов достаточно, чтобы разместить заголовок. Содержимое тела запускается в 1 дюйме от начала страницы с высоты заголовка 0,25 дюймов.
currentLayout.PageMargins.Top = '0.75in'; currentLayout.PageMargins.Header = '0.25in';
Создайте определение нижнего колонтитула для документа в формате PDF.
pdffooter = PDFPageFooter();
Добавьте горизонтальное правило к объекту pdffooter
.
append(pdffooter, HorizontalRule());
Добавьте изображение к объекту pdffooter
. Используйте формат ScaleToFit
DOM, чтобы масштабировать изображение, чтобы поместиться в страницу. Присвойте созданный объект pdffooter
PageFooters
текущего макета страницы.
imgStyle = {ScaleToFit(true), HAlign('right'), Height('0.30in')}; img = Image('Logo.Png'); img.Style = imgStyle; append(pdffooter, img); currentLayout.PageFooters = pdffooter;
Расстояние от конца страницы до содержимого тела является значением свойства Bottom
объекта PageMargins плюс значение свойства Footer
.
Установите значение свойства Bottom
на 0,5 дюйма. Чтобы разместить 0.30 в высоте Image
и горизонтальное правило в нижнем колонтитуле, установите значение свойства Footer
на 0,5 дюйма. Это делает расстояние от конца страницы до содержимого тела 1 дюймом.
currentLayout.PageMargins.Bottom = '0.5in'; currentLayout.PageMargins.Footer = '0.5in';
Этот пример использует установку Gutter
, чтобы покинуть комнату на левой стороне страницы для привязки отчета. размер The Gutter
установлен в 0,25 дюйма, и поле Left
установлено в 0,5 дюйма. Так, содержимое начинает с 0,75 дюймов (левое поле + поле) с левой стороны страницы. Поле Right
установлено в 0,5 дюйма.
currentLayout.PageMargins.Gutter = '0.25in'; currentLayout.PageMargins.Left = '0.5in'; currentLayout.PageMargins.Right = '0.5in';
Сгенерируйте и отобразите отчет.
close(d); rptview(d.OutputPath);