Установка полей страницы в отчете Word

В этом примере показано, как задать поля страницы в отчете Word (DOCX). Вы можете задать верхние, нижние, левые, правые поля для страницы DOCX, плюс ее верхний, нижний и нижний колонтитулы и размеры желоба.

Создание отчета

Импортируйте пакеты DOM API, чтобы не использовать длинные, полные имена классов.

import mlreportgen.dom.*;

Создание и открытие отчета.

d = Document('myreport', 'docx');
open(d);

Создайте заголовок страницы DOCX

Получите текущий объект макета страницы.

currentLayout = d.CurrentPageLayout;

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

docxheader = DOCXPageHeader();

Создайте Paragraph DOM объект и сделать его выровненным по центру и полужирным. Установите размер шрифта равным 12pt. Добавьте его к DOCXPageHeader объект.

p = Paragraph('Sample Traffic Data in Austin');
p.Style = [p.Style, {HAlign('center'), Bold(true), FontSize('12pt')}];
append(docxheader, p);

Назначьте созданные docxheader объект для PageHeaders текущего макета страницы.

currentLayout.PageHeaders = docxheader;

Создание содержимого тела

Создайте массивы ячеек для стилей, которые будут использоваться формальной таблицей и ее записями.

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);

Установите верхний предел и размер заголовка

The Top свойство PageMargins объект задает высоту запаса. The Header свойство задает расстояние от верхней части страницы до начала заголовка. Расстояние от верхней части страницы до тела страницы зависит от Top свойство, Header свойство и высота содержимого заголовка. Для примера, если Header свойство меньше, чем Top свойство, заголовок начинается с верхнего поля и расширяется вниз, чтобы включать содержимое заголовка. Тело начинается в нижней части поля или заголовка, который всегда больше.

Используйте следующие настройки, чтобы убедиться, что заголовок помещается в Top маржа. Установите Top свойство до 1 дюйма. 1 дюйм равен 72 точкам, поэтому 0,25 дюйма равен 18 ст. Установите Header значение до 0,75 дюйма, так как оставшиеся 0,25 дюйма достаточно для размещения 12 pts Paragraph созданный в заголовке DOCX.

currentLayout.PageMargins.Top = '1in';
currentLayout.PageMargins.Header = '0.75in';

Создайте нижний колонтитул страницы DOCX

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

docxfooter = DOCXPageFooter();

Добавьте горизонтальное правило к docxfooter объект.

append(docxfooter, HorizontalRule());

Добавьте изображение к docxfooter объект. Используйте DOM- ScaleToFit формат для масштабирования изображения в соответствии со строкой страницы. Назначьте созданные docxfooter объект для PageFooters текущего макета страницы.

imgStyle = {ScaleToFit(true), HAlign('right'), Height('0.30in')};
img = Image('Logo_footer.Png');
img.Style = imgStyle;
append(docxfooter, img);
currentLayout.PageFooters = docxfooter;

Установите размер нижнего и нижнего полей

The Bottom свойство PageMargins объект задает высоту поля страницы. The Footer свойство задает расстояние от нижней части страницы до нижней части нижнего колонтитула. Расстояние от нижней части страницы до тела страницы зависит от настроек Bottom и Footer свойства и высота нижнего колонтитула. Для примера, если Footer свойство меньше, чем Bottom свойство, нижний колонтитул начинается с нижнего поля и расширяется вверх, расширяя содержимое нижнего колонтитула. Тело начинается в верхней части поля или нижнего колонтитула, в зависимости от того, что больше.

Установите Bottom значение свойства до 1 дюйма. Для размещения 0.30 high Image и горизонтальное правило, созданное в DOCX Footer, установите Footer значение свойства до 0,5 дюйма.

currentLayout.PageMargins.Bottom = '1in';
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);