主要内容

图中图页面快照

这个例子展示了如何在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);结束

另请参阅

||||||

相关的话题