此示例演示如何在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_表);终止
mlreportgen.report.Report
|mlreportgen.dom.PDFPageLayout
|getReportLayout
|mlreportgen.utils.units
|mlreportgen.report.FormalImage
|mlreportgen.dom.Table