这个例子展示了如何在PDF和Microsoft®Word报表的横向页面上居中显示图形快照。
该示例创建一个具有横向布局的Report API报告,创建MATLAB图形,然后使用centerFigure
本地函数创建和添加页面中心这些图形的快照。
导入DOM和Report API包,这样就不必使用长且完全限定的类名。
进口mlreportgen.dom。*进口mlreportgen.report。*
创建一个PDF报告。要创建Microsoft®Word报表,请更改“pdf”
来“多克斯”
。
rpt =报告(“myreport”,“pdf”);打开(rpt);
创建一个页面布局对象。
如果strcmpi (rpt。类型,“pdf”) pageLayoutObj = PDFPageLayout;其他的pageLayoutObj = DOCXPageLayout;结束
指定页面方向、高度和宽度。
pageLayoutObj.PageSize.Orientation =“景观”;pageLayoutObj.PageSize.Height =“8.5”;pageLayoutObj.PageSize.Width =“11”;
指定页边距。
pageLayoutObj.PageMargins.Top =“0.5”;pageLayoutObj.PageMargins.Bottom =“0.5”;pageLayoutObj.PageMargins.Left =“0.5”;pageLayoutObj.PageMargins.Right =“0.5”;pageLayoutObj.PageMargins.Header =“0.3”;pageLayoutObj.PageMargins.Footer =“0.3”;
将页面布局对象添加到报表中。
add (rpt, pageLayoutObj);
创建一个带有线性情节的图形。
f =图();情节(1:1:10 2:2:20);网格在;
调用centerFigure
在页面中心添加图形快照的本地功能。然后,删除图形对象。
centerFigure (f, rpt);
删除(f);
同样,在页面的中心添加膜表面图快照。
centerFigure(冲浪(膜)、rpt);
删除(gcf);
关闭并查看报告。
关闭(rpt);rptview (rpt);
centerFigure
本地函数此函数创建指定图形的快照,并将其添加到指定报告中的页面中心。该函数使用报告API数字
记者取图快照和一个不可见的DOM表格
来做布局。
函数rpt centerFigure(图)
导入DOM API、Report API和Report generator实用程序包,这样您就不必使用长且完全限定的类名。
进口mlreportgen.dom。*进口mlreportgen.report。*进口mlreportgen.utils。*
获取报表的当前页面布局,以确定当前页面大小和页边距。页面布局信息用于计算页面主体大小,以便调整后续步骤中创建的布局表的大小。
pageLayout = getReportLayout (rpt);页大小= pageLayout.PageSize;pageMargins = pageLayout.PageMargins;
计算页面的宽度。页面主体宽度表示内容可用的页面宽度,由页面宽度减去左右页边距大小决定。对于DOCX输出,还需要减去gutter的大小。
bodyWidth =单位。toinch (pageSize.Width) -...units.toInches (pageMargins.Left)...units.toInches (pageMargins.Right);如果strcmpi (rpt。类型,“多克斯”) bodyWidth = bodyWidth -...units.toInches (pageMargins.Gutter);结束bodyWidth = sprintf (“% 0.2鳍”, bodyWidth);
计算页面主体的高度。页面主体高度表示可用于内容的页面高度,由页面高度减去顶部和底部的页边距大小决定。对于PDF输出,页眉和页脚的大小也需要减去,因为正文从页眉的底部延伸到页脚的顶部。
bodyHeight =单位。英寸(pageSize.Height) -...units.toInches (pageMargins.Top)...units.toInches (pageMargins.Bottom);如果strcmpi (rpt。类型,“pdf”) bodyHeight = bodyHeight -...units.toInches (pageMargins.Header)...units.toInches (pageMargins.Footer);结束bodyHeight = sprintf (“% 0.2鳍”, bodyHeight);
创建一个数字
对象的指定图形。然后,创建一个图像
对象包围的图形快照图像文件。缩放图像以适应后续步骤中创建的布局表的条目。
无花果=图(图);figImg =图像(getSnapshotImage(无花果、rpt));figImg。= [figImg风格。风格{ScaleToFit}];
将图像包装在一个段落中,因为PDF要求图像驻留在一个段落中。更新段落样式,确保图像周围没有空白。
帕拉=段(figImg);帕拉。风格=[帕拉。风格{OuterMargin (“0”,“0”,“0”,“0”)});
在一个1- 1不可见的布局表中添加包含图快照的段落(lo_table
).如果没有为表及其表项定义边框,则认为表是不可见的。
lo_table =表({para});
将表格扩展为可用的页体宽度。
lo_table。宽度= bodyWidth;
将唯一的表条目扩展到可用的页面主体高度。另外,指定垂直和水平对齐格式,以确保图像在表格条目中垂直和水平居中。
lo_table。表格EntriesStyle = [lo_table.TableEntriesStyle...{...高度(bodyHeight),...HAlign (“中心”),...VAlign (“中间”)...});
将布局表添加到报告中。
add (rpt, lo_table);结束
mlreportgen.report.Report
|mlreportgen.dom.PDFPageLayout
|mlreportgen.dom.DOCXPageLayout
|getReportLayout
|mlreportgen.utils.units
|mlreportgen.report.Figure
|mlreportgen.dom.Table