Main Content

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

在 PDF 报告中设置页边距

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

创建报告

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

import mlreportgen.dom.*;

创建并打开报告。

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

创建 PDF 页眉

获取当前页面布局对象。

currentLayout = d.CurrentPageLayout;

为 PDF 文档创建页眉定义。

pdfheader = PDFPageHeader();

创建一个 DOM Paragraph 对象并使其居中对齐且加粗。将其字体大小设置为 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 页眉和页脚的大小是固定的。从页面顶部到正文内容的总高度是 PageMargins 对象的 Top 属性值加上 Header 属性值。

Top 边距属性设置为 0.75 英寸。为了适应 PDF 页眉中创建的 12 pts Paragraph,请将页眉大小设置为 0.25 英寸。1 英寸等于 72 点,因此 0.25 英寸等于 18 点。Paragraph 内容仅占用 12 pt,因此 0.25 英寸足以容纳标题。正文内容从页面顶部 1 英寸处开始,页眉高度为 0.25 英寸。

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

创建 PDF 页脚

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

设置底部边距和页脚大小

页面底部到正文内容的距离是 PageMargins 对象的 Bottom 属性值加上 Footer 属性值。

Bottom 属性值设置为 0.5 英寸。为了适应 Image 的 0.30 英寸高度和页脚中的水平规则,请将 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);