主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

slreportgen.report.Diagram 类

命名空间: slreportgen.report
超类: slreportgen.report.Reporter

创建图报告器

描述

为 Simulink® 或 Stateflow® 图创建图报告器,包括图快照和标题。

注意

要在报告中使用图报告器,您必须使用 slreportgen.report.Report 类创建报告。

slreportgen.report.Diagram 类是 handle 类。

创建对象

描述

diagram = Diagram() 创建一个空的图报告器。设置其属性以捕获 Simulink 或 Stateflow 图。

diagram = Diagram(source) source 指定的 Simulink 或 Stateflow 图创建一个图报告器。将此报告器添加到报告将创建图的快照。然后,快照将作为带有标题的图像显示在报告中。快照图像存储在报告的临时文件夹中。当报告关闭时,快照图像会被复制到报告中,然后从临时文件夹中删除该图像。为了防止快照图像文件被删除,请使用报告的 Debug 属性。请参阅 slreportgen.report.Report

示例

diagram = Diagram(Name=Value) 使用名称-值参量设置属性。您可以按任意顺序指定多个名称-值参量。

输入参量

全部展开

请参阅 Source 属性。

属性

全部展开

图快照图像源,指定为这些值之一。

  • 打开或加载的 Simulink 模型的名称

  • 包含 Simulink 图或 Simulink 图的 Stateflow 子系统模块的路径

  • slreportgen.finder.DiagramResult 对象

  • 包含 Simulink 图或 Stateflow 图的子系统模块的句柄

  • Stateflow.Chart 或 Stateflow 子图对象。子图是可以包含与顶级图相同的对象的图形对象,包括其他子图。子图通常由 Stateflow.StateStateflow.FunctionStateflow.Box 对象指定。

属性:

NonCopyable
true

快照报告器,指定为 mlreportgen.report.FormalImage 对象。使用 FormalImage 对象的属性指定快照图像的标题或进一步自定义图像的大小。

注意

报告器初始化 Snapshot 属性。请勿重置此属性。

属性:

GetAccess
公共
SetAccess
公共

快照中要捕获的图区域,指定为 1×4 的双精度数组。数组的前两个值是 Simulink 编辑器坐标空间中图区域左上角的 x 和 y 坐标(以像素为单位)。最后两个值是宽度和高度(以像素为单位)。空数组指定整个图。

您可以在 Simulink 编辑器中设置想要捕获的视图,然后将 SnapshotArea 属性设置为 slreportgen.utils.getCurrentEditorView 函数的输出。有关示例,请参阅截取部分图的快照

数据类型: double

快照图像格式,指定为以下格式之一:

导入图像格式支持 HTML支持 Word支持 PDF

支持 PDF/A 格式 (自 R2025a 起)

Windows® 元文件 (.emf)
图形交换格式 (.gif)
JPEG 图像 (.jpg)
PDF (.pdf)
PDF/A (.pdf)
可移植网络图形 (.png)
可缩放矢量图 (.svg)
TIFF 图像 (.tif)

注意

与 PDF 报告输出格式不同,PDF/A 格式不支持包含 PDF 或 PDF/A 图像。使用表中列出的图像格式之一将图像包含在 PDF/A 报告中。

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

选择包含每个图元素的超链接,指定为逻辑值。如果此属性为 true,则每个元素将成为指向报告中描述它的对象的超链接。此属性仅适用于 PDF 和 HTML 报告。超链接允许您使用 Simulink 和 Stateflow 图浏览报告。

DiagramSimulinkObjectPropertiesStateflowObjectProperties 报告器共同努力,使用超链接实现导航。每个报告器都会在其创建的报告对象前面加上一个超链接目标。该目标的 ID 基于模型中报告元素的路径。图报告器还将图快照的元素与指向相应基于元素的目标 ID 的超链接叠加。图元素链接到的报告对象取决于元素类型。

  • 基于图的模块(子系统、图、模型)链接到模块的图。

  • 其他块链接到文本模块描述,通常模块属性表。

  • 具有封装参数的封装子系统模块链接到该模块的文本描述,例如封装参数表。仅当图报告器的 MaskedSystemLinkPolicy 属性设置为 "block""default" 时,与文本描述的链接才成立。否则,封装的系统模块将链接到其图。

  • 没有封装参数的封装子系统模块链接到模块图。

要自定义基于图的导航,请根据 slreportgen.utils.getObjectID 工具函数生成的目标 ID 创建自定义链接目标。

数据类型: logical

确定封装系统模块的超链接目标的策略,指定为这些值之一。

  • "default" - 具有参数的封装系统模块链接到文本描述,例如封装参数表。没有参数的封装系统模块链接到报告中对应的模块图。

  • "system" - 封装系统模块链接到报告中的对应的模块图。

  • "block" - 封装系统模块链接到其文本描述,例如封装参数或子系统参数表。

数据类型: char | string

快照图像的缩放选项,指定为 "auto""custom""zoom"。此属性控制图像文件中快照图像的大小。支持的缩放选项包括:

  • "auto" - 对于 PDF 或 Word (DOCX) 输出,使用此选项可缩放快照图像以适合当前页面布局,同时保持其纵横比。首先,报告器将快照图像缩放至页面宽度。如果图像高度超出了页面高度,报告器会再次缩小图像。这种额外的缩放可确保图像适合当前页面,并有额外一英寸的间距。缩放不适用于 HTML 输出。

  • "custom" - 使用此选项可根据 HeightWidth 属性的值缩放快照图像。

  • "zoom" - 将元素图像尺寸放大或缩小到 Zoom 属性指定的百分比值。要指定最大图像高度和最大图像宽度,请分别使用 MaxHeightMaxWidth 属性。

注意

"auto" "custom" 选项使用 MATLAB®print 命令来调整图形大小。如果图形太大,无法放入指定的空间,print 命令会裁剪快照图像。为了避免裁剪,请将 Scaling 属性设置为“none”,并使用 Snapshot 属性指定的报告器来调整图像大小。由于报告器将文本与图像的其他部分一起缩小,因此,除非放大图像,否则细节可能无法辨认。请参阅调整图片快照大小

注意

当出现以下任一属性设置组合时,就会出现 java.lang.OutOfMemoryError

  • Scaling 设置为 "zoom",并且 ZoomMaxHeightMaxWidth 属性设置为较大值

  • Scaling 设置为 "custom",并且 HeightWidth 属性设置为较大值

为了避免此错误,对于缩放 Scaling,请使用较小的 ZoomMaxHeightMaxWidth 属性值。对于 Scaling 设置为 "custom" ,请使用较小的 HeightWidth 属性值。

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

快照图像的高度,指定为字符向量或字符串标量,其中包含一个数字,后跟一个测量单位的缩写。例如,"2in" 表示两英寸。默认快照为 6 英寸。有效的缩写为:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 像素

  • "pt" - 点

注意

对于 PDF 图像,宽度和高度的尺寸限制为 10000px。对于所有其他图像类型,尺寸限制是屏幕尺寸。

示例: "2in"

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

快照图像的宽度,指定为字符向量或字符串标量,其中包含一个数字,后跟一个测量单位的缩写。例如,"2in" 表示两英寸。默认快照宽度为 6.5 英寸。有效的缩写为:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 像素

  • "pt" - 点

注意

对于 PDF 图像,宽度和高度的尺寸限制为 10000px。对于所有其他图像类型,尺寸限制是屏幕尺寸。

示例: "2in"

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

快照图像的缩放量,指定为字符串。Zoom 格式为 "value%" ,其中 value 是快照图像放大或缩小的百分比。

示例: "100%"

数据类型: char | string

缩放比例的最大高度,指定为字符向量或字符串标量,其中包含一个数字,后跟一个测量单位的缩写。例如,"10px" 指定 10 像素。有效的缩写为:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 像素

  • "pt" - 点

注意

此属性仅在 Scaling 设置为 "zoom" 时适用。

示例: "5in"

数据类型: char | string

缩放比例的最大宽度,指定为字符向量或字符串标量,其中包含一个数字后跟一个测量单位的缩写。例如,"10px" 指定 10 像素。有效的缩写为:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 像素

  • "pt" - 点

注意

此属性仅在 Scaling 设置为 "zoom" 时适用。

示例: "5in"

数据类型: char | string

此报告器的模板来源,以下列方式之一指定:

  • 字符向量或字符串标量,指定包含此报告器模板的文件的路径

  • 此报告器使用的模板或其模板库中包含此报告器模板的报告器或报告

  • 文档对象模型 (DOM) 文档或文档部分,该报告器使用其模板或其模板库包含该报告器的模板

指定的模板必须与您附加此报告器的报告类型相同。例如,对于 Microsoft® Word 报告,TemplateSrc 必须是 Word 报告模板。如果 TemplateSrc 属性为空,则此报告器将使用默认报告器模板作为报告的输出类型。

属性:

GetAccess
公共
SetAccess
公共
NonCopyable
true

此报告器的模板名称,指定为字符向量或字符串标量。此报告器的模板必须位于此报告器 TemplateSrc 属性所指定模板的模板库中。

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

此报告器的超链接目标,指定为指定链接目标 ID 的字符向量或字符串标量,或 mlreportgen.dom.LinkTarget 对象。字符向量或字符串标量值转换为 LinkTarget 对象。链接目标紧接在输出报告中此报告器的内容之前。

属性:

GetAccess
公共
SetAccess
公共

方法

全部展开

示例

全部折叠

vdp 模型顶层的快照添加到报告中。

load_system("vdp")
import slreportgen.report.*
import mlreportgen.report.*
rpt = slreportgen.report.Report("output","pdf");
 
chapter = Chapter();
chapter.Title = "Diagram Reporter Example";
 
diagram = Diagram("vdp");
diagram.Snapshot.Caption = "The van der Pol Equation";
diagram.SnapshotFormat = "svg";
diagram.Snapshot.Height = "4in";

add(chapter,diagram);
add(rpt,chapter);
rptview(rpt);

Snapshot of the top-level model in the report

创建一个 PDF 报告并向其中添加来自 sf_car 模型的根系统和子系统的图快照。向传输子系统添加超链接,并添加一个段落作为该链接的目标。

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.utils.*
import mlreportgen.dom.*
rpt = slreportgen.report.Report("output","pdf");
chapter = Chapter("sf_car");

model_name = "sf_car"
model_name = 
"sf_car"
load_system(model_name);
diag1 = Diagram("sf_car");
diag1.Snapshot.Caption = "Root System: sf_car";
add(chapter,diag1);
add(chapter,PageBreak);

diag2 = Diagram("sf_car/Engine");
diag2.Snapshot.Caption = "Subsystem: sf_car/Engine";
add(chapter,diag2);
add(chapter, PageBreak);

para = Paragraph("Custom target for sf_car/transmission");
id = getObjectID("sf_car/transmission");
append(para,mlreportgen.dom.LinkTarget(id));
add(chapter,para);
add(chapter,PageBreak);

add(rpt,chapter);
close(rpt);
rptview(rpt);
close_system(model_name);

First chapter of the report, showing an image of the model sf_car.

使用 SnapshotArea 属性指定要在快照中捕获的图区域。此示例在 Simulink 编辑器中设置视图,然后通过调用 slreportgen.utils.getCurrentEditorViewSnapshotArea 属性设置为该视图。

打开模型。

openExample("f14")

在 Simulink 编辑器中,显示您想要在快照中捕获的图部分。通过调用 slreportgen.utils.getCurrentEditorView 获取当前 Simulink 编辑器视图区域。

editorViewArea = getCurrentEditorView();

创建报告和图报告器。将图快照区域设置为当前编辑器查看区域。将图报告器添加到报告中。

import slreportgen.report.*
import Slreportgen.utils.*
rpt = Report("output","pdf");

diag = Diagram("f14");
diag.SnapshotArea = editorViewArea;
add(rpt, diag);

close(rpt);
rptview(rpt);

限制

  • slreportgen.report.Diagram 无法从以下函数获取图快照:

    • Stateflow.StateTransitionTableChart

    • Stateflow.TruthTableChart

    • Stateflow.TruthTable

    • Stateflow.EMChart

版本历史记录

在 R2017b 中推出

全部展开