在 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 页眉和页脚的大小是固定的。从页面顶部到正文内容的总高度是 Top
对象的 PageMargins
属性值加上 Header
属性值。
将 Top
边距属性设置为 0.75 英寸。为了适应 PDF 页眉中创建的 12 pts Paragraph
,请将页眉大小设置为 0.25 英寸。1 英寸等于 72 磅,因此 0.25 英寸等于 18 磅。Paragraph
内容仅占用 12 磅,因此 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);