以编程方式自定义报表的页面大小和页边距
此示例演示如何使用编程方法自定义PDF或Microsoft®Word报表中的页面大小和页边距、页眉、页脚和排水沟。或者,您也可以使用基于模板的方法。有关使用基于模板的方法的示例,请参见使用模板自定义Word报表的页面大小和页边距而且使用模板自定义PDF报表的页面大小和页边距.如果计划对模板进行其他修改,则使用基于模板的方法。否则,请使用编程方法。
默认情况下,Report API生成的页面高度为11英寸,宽度为8.5英寸,页边距为1英寸。页眉和页脚都是0.5英寸宽,排水沟是0像素。您可能需要在报告中更改这些维度。例如,如果要为欧洲地区生成报告,则可能需要生成A4页,其高为11.69英寸,宽为8.27英寸,页边距为0.98英寸。
若要以编程方式自定义Report API报表的页面尺寸,请指定custommlreportgen.dom.PageSize
而且mlreportgen.dom.PageMargins
对象添加到整个报表或报表部分使用的布局对象。整个报告的布局对象是mlreportgen.report.ReportLayout
对象,该对象被赋给布局
的属性mlreportgen.report.Report
对象。报表部分的布局是mlreportgen.report.ReporterLayout
对象,该对象被赋给布局
表示节的报告对象的属性。这些报告器类的对象具有布局
属性,可用于自定义节的页面尺寸:
mlreportgen.report.TitlePage
mlreportgen.report.TableOfContents
mlreportgen.report.ListOfFigures
mlreportgen.report.ListOfTables
mlreportgen.report.ListOfCaptions
mlreportgen.report.Chapter
控件的所有属性。如果您自定义整个报表的页面尺寸,然后重写报表部分的尺寸,请指定页大小
或PageMargins
为节创建的对象。否则,未指定的属性具有默认值,该值可能与为整个报表指定的值不同。
在本例中,您将创建一个具有A4页尺寸的报告,然后覆盖标题页的这些尺寸。
创建报表容器
导入DOM和Report API包,这样就不必使用长且完全限定的类名。
进口mlreportgen.dom。*;进口mlreportgen.report。*;
为Word报表创建报表容器。对于PDF报告,请替换“多克斯”
与“pdf”
.
rpt = mlreportgen.report.Report(“myreport”,“多克斯”);
为整个报表指定自定义页面尺寸
创建一个页大小
对象,该对象指定11.69英寸的页面高度、8.27英寸的页面宽度和纵向方向。分配页大小
对象添加到报表布局对象中。
pageSizeObj = PageSize(“11.69”,“8.27”,“画像”);rpt.Layout.PageSize = pageSizeObj;
创建一个PageMargins
对象,它指定
上,下,左,右距0.98英寸
页眉和页脚高度0.5英寸
排水沟尺寸为0英寸
pageMarginsObj = PageMargins();pageMarginsObj。顶级=“0.98”;pageMarginsObj。底=“0.98”;pageMarginsObj。离开了=“0.98”;pageMarginsObj。正确的=“0.98”;pageMArginsObj。头=“0.5”;pageMarginsObj。页脚=“0.5”;pageMarginsObj。地沟=“0”;
分配PageMargins
对象添加到报表布局对象中。
rpt.Layout.PageMargins = pageMarginsObj;
重写标题页部分的页面尺寸
创建一个标题页并指定2英寸边距,而不是为整个报告指定的0.98边距。指定0.5英寸的页眉和页脚以及0英寸的排水沟。
标题=标题页(“标题”,“魔术方块”);标题。字幕=列,行,对角线:全部相等和;标题。作者=“Albrecht Durer”;pageMarginsObj = PageMargins();pageMarginsObj。顶级=“2”;pageMarginsObj。底=“2”;pageMarginsObj。离开了=“2”;pageMarginsObj。正确的=“2”;pageMArginsObj。头=“0.5”;pageMarginsObj。页脚=“0.5”;pageMarginsObj。地沟=“0”;
分配PageMargins
对象的TitlePage
布局对象。
title.Layout.PageMargins = pageMarginsObj;追加(rpt、标题);
页面大小将是为整个报告指定的大小,因为您没有分配页大小
对象的TitlePage
对象的布局。
使用为整个报表指定的页面尺寸创建报表的其余部分
创建目录部分。不要指定自定义页面大小或自定义页边距。页面尺寸将是为整个报告指定的尺寸。
toc = TableOfContents;追加(rpt, toc);
创建一个使用默认页面尺寸的章节。
章节=章节“介绍”);sec1 = Section(“魔方是什么?”);para =段落([魔方是n × n矩阵...'由整数1到N^2构成'...'行,列,对角线和相等']);追加(sec1, para);追加(章,sec1);sec2 =部分(《丢勒与魔方》);para =段落([...德国艺术家阿尔布雷希特·丢勒(1471-1528)..."许多带有宗教色彩的木刻和版画"...“科学的象征。他最著名的作品之一,...《忧郁症I,探索抑郁的精神状态》...“这与灵感和表达相悖。”...文艺复兴时期的占星家认为木星...“魔方”(显示在“魔方”的右上角。...(这是一个形象)可以帮助治疗忧郁。“...雕刻的日期(1514年)可在...“广场上的下一排数字。”]);追加(sec2, para);追加(章,sec2);追加(rpt,章);
关闭并查看报表
关闭(rpt);rptview (rpt);
另请参阅
mlreportgen.report.ReportLayout
|mlreportgen.report.ReporterLayout
|mlreportgen.report.Report
|mlreportgen.report.Reporter
|mlreportgen.dom.PageSize
|mlreportgen.dom.PageMargins