以编程方式自定义报表的页宽和页边距
此示例演示如何使用编程方法自定义PDF或Microsoft®Word报表中的页面大小和页边距、页眉、页脚和页沟。另外,您也可以使用基于模板的方法。有关使用基于模板的方法的示例,请参见使用模板自定义Word报表的页宽和页边距而且使用模板自定义PDF报表的页宽和页边距。如果您计划对模板进行其他修改,请使用基于模板的方法。否则,使用编程方法。
默认情况下,Report API生成的页面高度为11英寸,宽度为8.5英寸,页边距为1英寸。页眉和页脚都是0.5英寸宽,沟槽是0像素。您可能需要在报告中更改这些维度。例如,如果为欧洲地区生成报告,可能需要生成A4页,其高11.69英寸,宽8.27英寸,页边距0.98英寸。
若要以编程方式自定义报表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英寸的水槽。
title = TitlePage(“标题”,“魔术方块”);标题。字幕=列,行,对角线:所有相等的和;标题。作者=“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(“魔方是什么?”);段=第([魔方是n × n矩阵...'由整数1到N²构成'...行,列,对角和相等]);追加(sec1, para);追加(章,sec1);sec2 = Section(“阿尔布雷特·丢勒和魔方”);段=第([...德国艺术家阿尔布雷希特·丢勒(1471-1528)创造了..."许多带有宗教色彩的木刻和版画"...“科学的象征。他最著名的作品之一,..."忧郁症1号,探索抑郁的精神状态"...“这与灵感和表达背道而驰。”...文艺复兴时期的占星家认为木星...“魔方”(显示于“...(图片)可以帮助治疗忧郁。“...刻版的日期(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