主要内容

在PDF报告中居中显示正式图像

此示例演示如何在PDF报表的横向页面上居中放置正式图像(带有标题的图像)。

示例创建了一个具有横向布局的Report API PDF报告,并使用中心图像在页面中心添加正式图像的本地函数。

创建报告

导入DOM和报表API包,这样就不必使用长的、完全限定的类名。

进口mlreportgen.dom*进口mlreportgen.report*

创建PDF报告。

rpt=报告(“myreport”,“pdf”);公开(rpt);

更新报告页面布局

创建页面布局对象。

pageLayoutObj = PDFPageLayout;

指定页面的方向、高度和宽度。

pageLayoutObj.PageSize.Orientation =“景观”;PageLayoutBj.PageSize.Height=“8.5英寸”;PageLayoutBj.PageSize.Width=“11英寸”

指定页边距。

PageLayoutBj.PageMargins.Top=“0.5”;pageLayoutObj.PageMargins.Bottom =“0.5”;pageLayoutObj.PageMargins.Left =“0.5”; PageLayoutBj.PageMargins.Right=“0.5”;pageLayoutObj.PageMargins.Header =“0.3”;pageLayoutObj.PageMargins.Footer =“0.3”

将页面布局对象添加到报告中。

add (rpt, pageLayoutObj);

创建并添加正式图像

创建正式的图像并调用中心图像本地函数将这些正式图像添加到页面中心。

formalImg1=FormalImage(...“图像”,其中(“ngc6543a.jpg”),...“标题”,“猫眼星云或NGC6543”);centerFormalImage (formalImg1 rpt);formalImg2 = FormalImage (...“图像”,其中(“peppers.png”),...“标题”,“辣椒”);centerFormalImage (formalImg2 rpt);

生成报告

关闭并查看报告。

关闭(rpt);rptview(rpt);

这个中心图像本地函数

这个函数在指定的PDF报告的页面中心添加指定的正式图像。该函数使用不可见的DOM表格来做布局。

函数centerFormalImage (formalImage rpt)

导入DOM API、报表API和报表生成器实用程序包,这样就不必使用长的、完全限定的类名。

进口mlreportgen.dom*进口mlreportgen.report*进口mlreportgen.utils。*

要确定当前页面大小和页边距,请获取报表的当前页面布局。页面布局信息用于调整在后续步骤中创建的表的大小。

pageLayout = getReportLayout (rpt);页大小= pageLayout.PageSize;pageMargins = pageLayout.PageMargins;

计算页面正文宽度。页面正文宽度表示可用于内容的页面宽度。对于PDF报表,页面正文宽度通过从页面宽度中减去左右边距大小来确定。

bodyWidth=单位.toInches(页面大小.Width)-...units.toInches (pageMargins.Left)...单位.toInches(页边距.右侧);正文宽度=sprintf(%0.2英寸,体宽);

计算页面体的高度。页面体高度表示内容可用的页面高度。对于PDF报告,页面主体高度是通过从页面高度减去顶部边距、底部边距、页眉和页脚大小来确定的。

bodyHeight = units.toInches(pagsize . height) -...单位.至英寸(页边距.顶部)-...单位.至英寸(页边距.底部)-...单位.toInches(页边距.页眉)-...单位.toInches(页边距.Footer);车身高度=sprintf(%0.2英寸, bodyHeight);

使用getImageReporter方法FormalImage记者要得到的形象记者和getCaptionReporter方法获取标题报告器。

imageReporter=getImageReporter(formalImage,rpt);captionReporter=getCaptionReporter(formalImage);

使用getImpl方法获取相应的DOM实现。

imageImpl = getImpl (imageReporter rpt);captionImpl = getImpl (captionReporter rpt);

DOM实现包含一个DOM段落包含图像和标题内容的。请更新段落的样式,以确保段落周围没有空格,并且段落在后续步骤中创建的表格条目中居中。

副样式={...OuterMargin (“0”,“0”,“0”,“0”),...HAlign (“中心”)...}; imagePara=克隆(imageImpl.Children(1));imagePara.Style=[imagePara.Style,paraStyle];captionPara=克隆(captionImpl.Children(1));captionPara.Style=[captionPara.Style,paraStyle];

创建一个1乘1的不可见布局表(lo_table)。如果没有为表格及其表格条目定义边框,则认为表格不可见。

LOU表格=表格(1);行=附加(LOU表格,表格行);条目=附加(行,表格条目);

将包含图像和标题内容的段落添加到不可见布局表中的唯一表项中。

附加(条目,图像段落);附加(条目,标题段落);

将表格跨距到可用的页面正文宽度。

lo_table。宽度= bodyWidth;

将唯一的表项扩展到可用的页面体高度。指定垂直和水平对齐格式,以确保图像和标题在表格条目内垂直和水平居中。

lo_table.TableEntriesStyle=[lo_table.TableEntriesStyle]...{...身高(体高),...HAlign (“中心”),...VAlign (“中间”)...}];

将布局表添加到报告中。

添加(rpt,lo_表);终止

另见

|||||

相关的话题