主要内容

以编程方式自定义报表的页面大小和页边距

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

另请参阅

|||||

相关的话题