主要内容

以编程方式自定义报表的页宽和页边距

此示例演示如何使用编程方法自定义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);

另请参阅

|||||

相关的话题