Main Content

slreportgen.report.ElementDiagram Class

Namespace: slreportgen.report
Superclasses: slreportgen.report.Reporter

Element diagram snapshot and caption reporter

Description

Create a Simulink® or Stateflow® element diagram reporter. When added to a report, the ElementDiagram reporter creates a snapshot of an element. The reporter adds the snapshot to the report in the form of an image with a caption. Use the Source property to specify the desired element.

Note

To use an ElementDiagram reporter in a report, you must create the report using the slreportgen.report.Report class.

The slreportgen.report.ElementDiagram class is a handle class.

Creation

Description

diagram = ElementDiagram creates an empty element diagram reporter. Set its properties to capture a Simulink or Stateflow element snapshot.

example

diagram = ElementDiagram(source) creates a diagram reporter for an element of a block diagram or chart specified by source. Adding this reporter to a report creates a snapshot of the element's diagram and adds the snapshot, with a caption, to the report. The snapshot image file is stored in the report's temporary folder. When the report is closed, the image file is copied into the report and the temporary folder is deleted. To prevent the deletion, use the Debug property of the report. See mlreportgen.report.Report.

example

Input Arguments

expand all

See the Source property.

Properties

expand all

Diagram element source, specified as one of these values:

  • Character vector or string scalar that contains the path to a Simulink block or Stateflow chart block

  • Handle to a Simulink block or Stateflow chart block

  • Stateflow object

  • Simulink Identifier (SID) of a block, annotation, or Stateflow object

  • slreportgen.finder.DiagramElementResult object

Note

Simulink.Port objects are not valid sources for this reporter.

Snapshot reporter, specified as an mlreportgen.report.FormalImage object. Use the properties of the FormalImage object to specify the caption for the snapshot image or to further customize the size of the image.

Note

The reporter initializes the Snapshot property. Do not reset this property.

Snapshot image format, specified as "svg", "emf", "gif", "jpg", "pdf", "png", or "tif". The table lists which image formats are supported for which report types.

Image FormatFile ExtensionSupported in HTMLSupported in WordSupported in PDF
Windows® metafile.emfNoYesNo
Graphics Interchange Format .gifYesYesYes
JPEG image.jpgYesYesYes
PDF.pdfNoNoYes
Portable Network Graphics .pngYesYesYes
Scalable Vector Graphics.svgYesYesYes
TIFF image.tifNoYesYes

Data Types: char | string

Scaling options for the snapshot image, specified as "auto", "custom", or "zoom". This property controls the size of the snapshot image in the image file. Supported scaling options are:

  • "auto" — For PDF or Word (DOCX) output, use this option to scale the snapshot image to fit the current page layout while maintaining its aspect ratio. First, the reporter scales the snapshot image to the page width. If the image height exceeds the page height, the reporter scales the image down again. This additional scaling ensures that the image fits the current page with an extra one inch spacing. Scaling does not apply to HTML output.

  • "custom" — Use this option to scale the snapshot image based on the values of the Height and Width properties.

  • "zoom" — Enlarges or reduces the element image size to the percent value specified by the Zoom property. To specify the maximum image height and maximum image width, use the MaxHeight and MaxWidth properties, respectively.

For a PDF image, the size limit is 10000px for width and height. For all other image types, the size limit is the screen size.

Note

The "auto" and "custom" options use the MATLAB® print command to resize the figure. If the figure is too large to fit in the specified space, the print command crops the snapshot image. To avoid cropping, set the Scaling property to "none" and use the reporter specified by the Snapshot property to size the image. Because the reporter reduces the size of the text with the rest of the image, fine details may not be legible unless you zoom the image. See Resize Figure Snapshot Image.

Note

A java.lang.OutOfMemoryError can occur when either of these combinations of property settings occur:

  • Scaling set to "zoom", and Zoom, MaxHeight, and MaxWidth properties set to large values

  • Scaling set to "custom", and Height and Width properties set to large values

To avoid this error, for zoom Scaling, use smaller Zoom, MaxHeight, and MaxWidth property values. For Scaling is set to "custom", use smaller Height and Width property values.

Data Types: char | string

Height of the snapshot image, specified as a character vector or string scalar that consists of a number followed by an abbreviation for a unit of measurement. For example, "2in" specifies two inches. The default snapshot is 6 inches. Valid abbreviations are:

  • "px" — pixels

  • "cm" — centimeters

  • "in" — inches

  • "mm" — millimeters

  • "pc" — picas

  • "pt" — points

For PDF images, the height limit is 10000 pixels. For all other image types, the height limit is the screen height.

Example: "2in"

Data Types: char | string

Width of the snapshot image, specified as a character vector or string scalar that consists of a number followed by an abbreviation for a unit of measurement. For example, "2in" specifies two inches. The default snapshot width is 6.5 inches. Valid abbreviations are:

  • "px" — pixels

  • "cm" — centimeters

  • "in" — inches

  • "mm" — millimeters

  • "pc" — picas

  • "pt" — points

For PDF images, the width limit is 10000 pixels. For all other image types, the width limit is the screen width.

Example: "2in"

Data Types: char | string

Amount to zoom the snapshot image, specified as a string. The Zoom format is "value%", where value is the percentage by which the snapshot image is enlarged or reduced.

Example: "100%"

Data Types: char | string

Maximum height for zoom scaling, specified as a string. This property applies only if Scaling is set to "zoom".

The MaxHeight format is valueUnits, where Units is an abbreviation for the height units and value is the number of units. See the Height property for a table of valid Units abbreviations.

Example: "5in"

Data Types: char | string

Maximum width for zoom scaling, specified as a string. This property applies only if Scaling is set to "zoom".

The MaxWidth format is valueUnits, where Units is an abbreviation for the height units and value is the number of units. See the Height property for a table of valid Units abbreviations.

Example: "5in"

Data Types: char | string

Source of the template for this reporter, specified in one of these ways:

  • Character vector or string scalar that specifies the path of the file that contains the template for this reporter

  • Reporter or report whose template is used for this reporter or whose template library contains the template for this reporter

  • Document Object Model (DOM) document or document part whose template is used for this reporter or whose template library contains the template for this reporter

The specified template must be the same type as the report to which you append this reporter. For example, for a Microsoft® Word report, TemplateSrc must be a Word reporter template. If the TemplateSrc property is empty, this reporter uses the default reporter template for the output type of the report.

Name of the template for this reporter, specified as a character vector or string scalar. The template for this reporter must be in the template library of the template specified by the TemplateSrc property of this reporter.

Data Types: char | string

Hyperlink target for this reporter, specified as a character vector or string scalar that specifies the link target ID, or an mlreportgen.dom.LinkTarget object. A character vector or string scalar value converts to a LinkTarget object. The link target immediately precedes the content of this reporter in the output report.

Methods

expand all

Examples

collapse all

import slreportgen.report.*
import mlreportgen.report.*

openExample('f14')

rpt = slreportgen.report.Report("output","pdf");
open(rpt)
chap = Chapter();
chap.Title = "Element Diagram Reporter Example";

diag = ElementDiagram("f14/Actuator Model");
diag.Snapshot.Caption = "f14 Simulink Model - Actuator Model block";

add(chap,diag)
add(rpt,chap)

close(rpt)
rptview(rpt)

Element diagram with caption that reads f14 Simulink Model - Actuator Model block

openExample('f14')
modelsys = "f14/Aircraft Dynamics Model";

rpt = slreportgen.report.Report("output","pdf");
open(rpt)
chapter = mlreportgen.report.Chapter();
chapter.Title = "Element Snapshots";

diag = slreportgen.report.ElementDiagram(modelsys);
add (chapter,diag)

blkfinder = slreportgen.finder.BlockFinder(modelsys);
blks = find(blkfinder);
for blk = blks
   blkDiag = slreportgen.report.ElementDiagram...
       (blk.Object);
   blkDiag.Snapshot.Caption = strcat(blk.DiagramPath,...
       "/", blk.Name);
   add(chapter,blkDiag)   % Add diagram element image
   add(chapter,blk)       % Add property table
end

add(rpt,chapter)
close(rpt)
rptview(rpt)

Element diagram followed by property table

Version History

Introduced in R2018b

expand all