Programmatically Print Models from MATLAB Command Window
You can print Simulink® model diagrams and export them to image file formats programmatically. To print and export model diagrams interactively, see Print Model Diagrams.
Printing Commands
The MATLAB®
print
command provides several printing options. For example, to print the
Compression
subsystem in the sldemo_enginewc
model
to your default printer, enter these commands in the MATLAB Command Window.
openExample('sldemo_enginewc'); print -sCompression
When you use the print
command, you can print only one diagram. To
print multiple levels in a model hierarchy, use multiple print
commands, one for each diagram that you want to print.
Tip
Alternatively, consider printing interactively. In the Simulink Toolbar, on the Simulation tab, in the File section, click Print. Then, use the Print Model dialog box in the Simulink Editor to specify the diagrams to print. For details, see Select the Systems to Print.
You can use the set_param
function with these parameters to
specify printing options for models.
Model Parameters for Printing
Parameter | Description | Values |
---|---|---|
| Printing paper orientation. |
|
| Paper position mode.
|
|
| Printing paper type. |
|
| Printing paper size units. |
|
| Size of the margins associated with each tiled page. Each element in the vector represents a margin at the particular edge. | vector — |
Print Systems with Multiline Names or Names with Spaces
To print a system whose name appears on multiple lines, assign the name to a variable
and use that variable in the print
command. This example shows how to
print the subsystem named Aircraft Dynamics Model
.
openExample('simulink_aerospace/AircraftLongitudinalFlightControlExample') open_system('slexAircraftExample/Aircraft Dynamics Model'); sys = sprintf('slexAircraftExample/Aircraft\nDynamics\nModel'); print (['-s' sys])
To print a system whose name includes one or more spaces, specify the name as a
character vector. For example, to print the Throttle & Manifold
subsystem, enter these commands.
openExample('sldemo_enginewc'); open_system('sldemo_enginewc/Throttle & Manifold'); print (['-sThrottle & Manifold'])
Set Paper Orientation and Type
To set just the paper orientation, use the orient
function. Alternatively, set the paper orientation by using
set_param
function with the PaperOrientation
model
parameter.
To set the paper type, use the set_param
function with the
PaperType
model parameter. For example, to print to US letter-sized
paper, set the paper type to 'usletter'
.
Print Diagrams over Multiple Pages
By default, each block diagram is scaled during the printing process so that the diagram fits on a single page. In the case of a large diagram, this automatic scaling can compromise the printed image.
Tiled printing allows you to print even the largest block diagrams without sacrificing clarity and detail. Tiled printing allows you to distribute a block diagram over multiple pages. For example, you can use tiling to divide a model as shown in the figure, with each white box and each gray box representing a separate printed page.
Enable Tiled Printing
Use the
set_param
function to set thePaperPositionMode
parameter totiled
.Use the
print
command with the-tileall
argument.
For example, to enable tiled printing for the Compression
subsystem
in the sldemo_enginewc
model, use these commands.
openExample('sldemo_enginewc'); set_param('sldemo_enginewc/Compression', 'PaperPositionMode', ... 'tiled'); print('-ssldemo_enginewc/Compression', '-tileall')
Display Tiled Page Boundaries
To display the page boundaries programmatically, use the
set_param
function with the model parameter
ShowPageBoundaries
set to on
.
openExample('sldemo_enginewc'); set_param('sldemo_enginewc', 'ShowPageBoundaries', 'on')
Set Tiled Page Margins
By decreasing the margin sizes, you can increase the printable area of the tiled
pages. To specify the margin sizes associated with tiled pages, use the
set_param
function with the TiledPaperMargins
parameter. Each margin is 0.5 inches by default. The value of
TiledPaperMargins
is a vector that specifies margins in this order:
[left top right bottom]
. Each element specifies the size of the
margin at a particular edge of the page. The value of the PaperUnits
parameter determines the units of measurement for the margins.
Specify Range of Tiled Pages to Print
To specify a range of tiled page numbers programmatically, use the
print
command with the -tileall
argument and the
-pages
argument. Append to -pages
a two-element
vector that specifies the range.
Note
Simulink uses a row-major scheme to number tiled pages. For example, the first page of the first row is 1, the second page of the first row is 2, and so on.
For example, to print the second, third, and fourth pages, use these commands.
openExample('simulink_general/VanDerPolOscillatorExample'); print('-svdp','-tileall','-pages[2 4]')
Print Models to Image File Formats
To print your model to an image file format such as .png
or
.jpeg
, use the -device
argument with the MATLAB
print
command. For example, to print the vdp
model to a
.png
format, use these commands.
openExample('simulink_general/VanDerPolOscillatorExample'); print -dpng -svdp vdp_model.png
To programmatically export a model into an image format:
Call your model in the MATLAB command line.
model %model is your model name
Use the print command to save your model in a
.jpeg
format.print('-smodel','-djpeg','new_name')
By default, the canvas (background) of the exported model matches the color of the model. To use a white or transparent canvas for model files that you export to another file format, set the Simulink Preferences > General > Export preference. For more information, see Simulink Preferences.