Main Content

本页采用了机器翻译。点击此处可查看英文原文。

在 Word 报告中设置页边距

此示例显示如何在 Word(DOCX)报告中定义页边距。您可以定义 DOCX 页面的顶部、底部、左侧、右侧边距,以及页眉、页脚和装订线大小。

创建报告

导入 DOM API 命名空间,这样您就不必使用长而完全限定的类名。

import mlreportgen.dom.*;

创建并打开报告。

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

创建 DOCX 页眉

获取当前页面布局对象。

currentLayout = d.CurrentPageLayout;

为 DOCX 文档创建页眉定义。

docxheader = DOCXPageHeader();

创建一个 DOM Paragraph 对象并使其居中对齐且加粗。将其字体大小设置为 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);

设置上边距和页眉大小

PageMargins 对象的 Top 属性指定边距的高度。Header 属性指定从页面顶部到页眉开头的距离。页面顶部到页面主体的距离取决于 Top 属性、Header 属性和页眉内容的高度。例如,如果 Header 属性小于 Top 属性,则页眉从上边距开始,向下扩展以容纳页眉内容。正文从边距底部或页眉(以较大者为准)开始。

使用以下设置确保页眉适合 Top 边距。将 Top 属性设置为 1 英寸。1 英寸等于 72 点,因此 0.25 英寸等于 18 点。将 Header 值设置为 0.75 英寸,因为剩余的 0.25 英寸足以容纳在 DOCX 标题中创建的 12 pts Paragraph

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;

设置底部边距和页脚大小

PageMargins 对象的 Bottom 属性指定页边距的高度。Footer 属性指定从页面底部到页脚底部的距离。页面底部到页面主体的距离取决于 BottomFooter 属性的设置以及页脚内容的高度。例如,如果 Footer 属性小于 Bottom 属性,则页脚从下边距开始向上扩展以扩展页脚内容。正文从边距或页脚的顶部开始(以较大者为准)。

Bottom 属性值设置为 1 英 寸。为了适应 Image 的 0.30 英寸高度和在 DOCX 页脚中创建的水平规则,将 Footer 属性值设置为 0.5 英寸。

currentLayout.PageMargins.Bottom = '1in';
currentLayout.PageMargins.Footer = '0.5in';

设置左边距、右边距和装订线大小

此示例使用 Gutter 设置在页面左侧留出空间用于装订报告 .,将 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);