В этом примере показано, как определить поля страницы в отчете PDF. Вы можете задать верхние, нижние, левые, правые поля для PDF, плюс ее верхний, нижний и нижний колонтитулы и размеры желоба.
Импортируйте пакеты DOM API, чтобы не использовать длинные, полные имена классов
import mlreportgen.dom.*;
Создание и открытие отчета.
d = Document('myreport', 'pdf'); open(d);
Получите текущий объект макета страницы.
currentLayout = d.CurrentPageLayout;
Создайте определение заголовка страницы для PDF.
pdfheader = PDFPageHeader();
Создайте Paragraph DOM
объект и сделать его выровненным по центру и полужирным. Установите размер шрифта равным 12pt. Добавьте его к 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
и включите выборочные данные в разделы Заголовок (Header) и Тело (Body).
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
объект. Используйте DOM- ScaleToFit
формат для масштабирования изображения в соответствии со строкой страницы. Назначьте созданные 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 дюйма (левое поле + желоб) с левой стороны страницы. The Right
значение запаса составляет 0,5 дюйма.
currentLayout.PageMargins.Gutter = '0.25in'; currentLayout.PageMargins.Left = '0.5in'; currentLayout.PageMargins.Right = '0.5in';
Сгенерируйте и отобразите отчет.
close(d); rptview(d.OutputPath);