Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

print

打印图窗或保存为特定文件格式

说明

示例

print(filename,formattype) 使用指定的文件格式将当前图窗保存到文件中,例如 print('BarPlot','-dpng')。如果该文件不包括扩展名,则 print 会附加适用的扩展名。

print(filename,formattype,formatoptions) 指定可用于某些格式的其他选项。

示例

print 将当前图窗输出到默认打印机。

print(printer) 指定打印机。将打印机指定为字符向量或字符串,其中包含以 -P 开头的打印机名称,例如 '-Pmy printer'。该打印机必须已设置在您的系统上。

print(driver) 指定驱动程序。如果您要确保打印的输出为黑白色或彩色,则使用此选项。

print(printer,driver) 指定打印机和驱动程序。

示例

print('-clipboard',clipboardformat) 使用 clipboardformat 指定的格式将当前图窗复制到剪贴板。您可以将复制的图窗粘贴到其他应用程序中。

示例

print(resize,___) 将图窗最大化以填满页面。将 resize 指定为 '-bestfit' 可保留图窗的纵横比,指定为 '-fillpage' 则忽略纵横比。这些选项仅当保存为页面格式(PDF 和 PS)或者发送给打印机进行打印时才有效。此选项可与先前语法中的任何输入参数一起使用。

示例

print(resolution,___) 使用指定的分辨率。将分辨率指定为字符向量或字符串,其中包含以 -r 开头的整数值,例如 '-r200'。此选项可与先前语法中的任何输入参数一起使用。

print(renderer,___) 使用指定的渲染器。渲染器可指定为 '-painters''-opengl'

示例

print('-noui',___) 在已保存或已打印输出中不包括用户界面控件(如普通按钮和滑块)。它不排除可包含坐标区的用户界面对象,例如 uitab 或 uipanel。

示例

print(fig,___) 保存或打印 fig 指定的图窗或 Simulink® 模块图。

示例

cdata = print('-RGBImage'); 返回当前图窗的 RGB 图像数据。此选项与截屏的区别在于所有打印功能都可应用于输出。您还可以使用此语法指定 resolutionrenderer'-noui'fig 选项。但是,您不能指定 Simulink 模块图。

示例

全部折叠

创建一个条形图并将其输出到系统默认打印机。如果您不指定要打印的图窗,则 print 使用当前图窗。

bar(1:10)
print

创建一个绘图并将其复制到系统剪贴板。

plot(1:10)
print('-clipboard','-dmeta')

您可以将复制的绘图粘贴到其他应用程序中。

创建一个绘图并将其另存为 PNG 图像文件。

bar(1:10)
print('BarPlot','-dpng')

print 将绘图另存为 BarPlot.png

创建一个绘图并将其另存为封装的 PostScript® 文件。

bar(1:10)
print('BarPlot','-depsc')

print 将绘图另存为 BarPlot.eps

将当前图窗另存为封装的 PostScript 文件并添加 TIFF 预览。

surf(peaks)
print('SurfacePlot','-depsc','-tiff')

通过将特定图窗的对象变量传递到 print 来保存该图窗。

fig = figure;
plot(1:10)
print(fig,'MySavedPlot','-dpng')

或者,使用其 Number 属性的值引用图窗,该值是显示在图窗窗口标题栏中的整数值。例如,保存图窗并在标题栏中显示 Figure 2。在整数值前面加上 -f

figure(2);
plot(1:10)
print('-f2','MySavedPlot','-dpng')

将曲面图保存到 PNG 文件中。将图窗的 PaperPositionMode 属性设置为 'auto' 以使其保存为屏幕上显示的大小。使用 '-r0' 可按屏幕分辨率保存它。

surf(peaks)
set(gcf,'PaperPositionMode','auto')
print('PeaksSurface','-dpng','-r0')

使用 '-fillpage' 选项保存填满页面的图窗。

bar([1 10 7 8 2 2 9 3 6])
print('FillPageFigure','-dpdf','-fillpage')

创建一个图窗,其中包含用于清除坐标区的普通按钮。将该图窗保存到 JPEG 文件中而不保存普通按钮。

surf(peaks)
uicontrol('Style','pushbutton','String','Clear',...
    'Position',[20 20 50 20],'Callback','cla');
print('SurfacePlot','-djpeg','-noui')

返回图窗的 RGB 图像数据。

surf(peaks)
cdata = print('-RGBImage');

使用 imshow 以完全分辨率显示图像数据。

imshow(cdata)

创建一个曲面图。返回图窗的 RGB 图像数据,并指定图像分辨率。然后,将图像数据转换为影片帧 F

surf(peaks)
cdata = print('-RGBImage','-r120');
F = im2frame(cdata);

输入参数

全部折叠

文件名,指定为字符向量或字符串,其中包含所需的文件名和路径。

示例: 'My Saved Chart'

示例: 'Folder\My Saved Chart'

示例: "My Saved Chart"

文件名最大长度(包括路径)特定于操作系统和文件格式。通常,文件名不应超过 126 个字符,如果您包括路径,则不应超过 128 个字符。

数据类型: char | string

文件格式,指定为这些表中的选项之一。

位图文件

位图图像是以像素表示的图窗。生成的文件的大小取决于图窗、格式和系统分辨率。Web 浏览器和其他显示图形的应用程序广泛使用位图。但是,它们无法很好地支持透明度或缩放,而且您也无法在其他图形应用程序中修改其中的图形对象,例如线条和文本。

此表列出了支持的位图格式。

选项位图格式对应的文件扩展名
'-djpeg'JPEG 24 位.jpg
'-dpng'PNG 24 位.png
'-dtiff'TIFF 24 位(压缩).tif
'-dtiffn'TIFF 24 位(未压缩).tif
'-dmeta'增强型图元文件(仅限 Windows).emf
'-dbmpmono'BMP 单色 .bmp
'-dbmp'BMP 24 位 .bmp
'-dbmp16m'BMP 24 位 .bmp
'-dbmp256'BMP 8 位(256 色,使用固定颜色图) .bmp
'-dhdf'HDF 24 位.hdf
'-dpbm'PBM(普通格式)1 位.pbm
'-dpbmraw'PBM(原始格式)1 位.pbm
'-dpcxmono'PCX 1 位.pcx
'-dpcx24b'PCX 24 位彩色(三个 8 位平面).pcx
'-dpcx256'PCX 8 位新彩色(256 色).pcx
'-dpcx16'PCX 旧彩色(EGA/VGA 16 色).pcx
'-dpgm'PGM(普通格式).pgm
'-dpgmraw'PGM(原始格式).pgm
'-dppm'PPM(普通格式).ppm
'-dppmraw'PPM(原始格式).ppm

向量图形文件

向量图形文件存储用于重新绘制图窗的命令。这种格式类型适合缩放,但可能导致文件较大。另外,它可能会在某些情况下产生三维排列有误的对象。某些应用程序支持对向量图形格式进行大量编辑。但是,某些应用程序不支持调整图形大小以外的编辑。通常,应尽量在 MATLAB® 内对图窗进行所有必要的更改。

如果设置图窗的 Renderer 属性,则 print 在生成输出时使用该渲染器。否则,print 会选择适当的渲染器。通常,print 在生成向量图形文件时使用 Painters 渲染器。对于某些复杂的图窗,print 会改用 OpenGL® 渲染器。如果它使用 OpenGL 渲染器,则向量图形文件会包含嵌入式位图图像,这可能会限制您可在其他应用程序中编辑该图像的程度。为确保 print 使用 Painters 渲染器,请将图窗的 Renderer 属性设置为 'painters' 或将 '-painters' 指定为 print 的输入参数。

如果希望输出具有透明度,则使用图元文件、PDF 或 SVG 格式创建向量图形文件。如果使用 PS 或 EPS 格式,则仅图窗和坐标区背景支持透明度。位图图像不支持透明度,但会与屏幕显示接近一致,呈现透明的效果。

注意

默认图窗渲染器为 OpenGL。如果图窗渲染器不同于生成输出时使用的渲染器,则已保存图窗的某些详细信息可能不同于显示的图窗。如果需要,您可以让显示的图窗和保存的图窗使用同一渲染器。设置图窗的 Renderer 属性或指定 print 函数的 renderer 输入参数。

此表列出了支持的向量图形格式。

选项向量图形格式对应的文件扩展名
'-dpdf'整页可移植文档格式 (PDF) 颜色.pdf
'-deps'PostScript (EPS) 3 级黑白.eps
'-depsc'封装的 PostScript (EPS) 3 级彩色.eps
'-deps2'封装的 PostScript (EPS) 2 级黑白.eps
'-depsc2'封装的 PostScript (EPS) 2 级彩色.eps
'-dmeta'增强型图元文件(仅限 Windows®.emf
'-dsvg'SVG(可伸缩向量图).svg
'-dps'全页 PostScript (PS) 3 级黑白.ps
'-dpsc'全页 PostScript (PS) 3 级彩色.ps
'-dps2'全页 PostScript (PS) 2 级黑白.ps
'-dpsc2'全页 PostScript (PS) 2 级彩色.ps

您无法以 PostScript 或 EPS 格式保存 Simulink 模块图。

注意

只有 PDF 和全页 PS 格式使用 PaperPosition 属性的前两个元素。其他格式会忽略这些值。

某些文件格式支持的其他格式选项,指定为下列一个或多个值:

  • '-tiff' - 包括 TIFF 预览。仅限 EPS 文件。

  • '-loose' - 使用宽松边界框。仅限 EPS 和 PS 文件。

  • '-cmyk' - 使用 CMYK 颜色而非 RGB 颜色。仅限 EPS 和 PS 文件。

  • '-append' - 将图窗附加到现有的 PS 文件。仅限 PS 文件。

示例: print('my file','-deps','-tiff','-loose') 使用松散边界框将当前图窗保存到文件 my file.eps 中,并包括 TIFF 预览。

打印机名称,指定为字符向量或字符串,其中包含 -P 和打印机名称。

示例: '-Pmy local printer'

示例: "-Pmy local printer"

要查看可用打印机列表,请使用此命令:

[~,printers] = findprinters

如果您不指定打印机,则 print 使用系统默认打印机。如果您要设置新的打印机或选择不同默认打印机,请使用操作系统打印机管理实用工具。如果看不到已设置好的打印机,请重新启动 MATLAB。

数据类型: char | string

打印机驱动程序,指定为 '-dwin''-dwinc''-dprn''-dprnc'。如果您不指定驱动程序,print 将使用从 printopt 函数返回的驱动程序。

您所用的选项取决于您的系统,例如:

系统驱动程序输出
Windows'-dwin'黑白
'-dwinc'颜色
Linux®Mac'-dprn' 黑白
'-dprnc'颜色

复制到剪贴板的格式,指定为下列选项之一:

  • '-dmeta' - 增强型图元文件(仅限 Windows)

  • '-dbitmap' - 位图(Windows 和 Mac OS

  • '-dpdf' - PDF 文件(Windows 和 Mac OS

用来扩大图窗以填满页面的选项,指定为下列值之一:

  • '-fillpage' - 将图窗最大化以填满页面。在页面四周留出 0.25 英寸的边距。图窗的刻度线、布局和纵横比可能会更改。

  • '-bestfit' - 将图窗最大化以填满页面,但保留图窗的纵横比。图窗可能不会填满整个页面。此选项将保留 0.25 英寸的最小页边距。

这两个选项仅当将图窗发送给打印机进行打印或者保存为页面格式(如 PDF 和 PS)时才有效。它们对于 Simulink 模块图无效。

分辨率,指定为字符向量或字符串,其中包含 -r 和一个指示分辨率(每英寸点数)的整数值。例如,'-r300' 将输出分辨率设置为每英寸 300 dpi。请使用 '-r0' 指定屏幕分辨率。

通常,使用较高的分辨率值可产生较高质量的输出,但代价是使用的内存更多且输出的文件也较大。分辨率设置得越高,渲染图窗所花的时间越长。

在创建位图图像时,或使用包含矢量图文件格式的 OpenGL 渲染器时(OpenGL 会生成位图图像,即使使用矢量格式也是如此),指定分辨率很有用。当使用 Painters 渲染器与向量图形文件格式时,指定分辨率没有任何作用,因为 Painters 会生成真向量图形文件,其中包含重新绘制图窗的命令。

注意

Simulink 打印不支持分辨率选项。要获得 Simulink 模型的更高质量输出,请使用矢量格式,如 SVG 或 PDF。

数据类型: char | string

图形渲染器,指定为 '-opengl''-painters'

  • '-opengl' - OpenGL 渲染器。在保存位图时使用此渲染器。OpenGL 即使是矢量格式也生成位图,这可能会限制您可在其他应用程序中编辑该图像的程度。

  • '-painters' - Painters 渲染器。在保存向量图形文件时使用此渲染器。如果您保存到向量图形文件且图窗的 RendererMode 属性设置为 'auto',则 print 自动尝试使用 Painters 渲染器。如果您想确保您的输出格式是真正的向量图形文件,则指定 Painters 渲染器。例如:

    print('-painters','-deps','myVectorFile')

注意

在某些情况下,使用 '-painters' 选项保存文件可能导致更长的渲染时间,且在极少数情况下,可能无法在三维视图中准确排列图形对象。另外,Painters 渲染器无法打印或保存粗度小于 1 个像素的线条。

如果您不指定渲染器,则 print 自动使用相应的渲染器生成所请求的输出格式。但是,如果设置图窗的 Renderer 属性,则 print 在生成输出时使用该渲染器。

图窗对象或 Simulink 模块图。您可以使用图窗的对象变量名称或使用 -f 前面的图窗编号引用该图窗。例如,-f2 引用 Number 属性值为 2 的图窗。指定 Simulink 模块图时,请在模型名称前面加上 -s。使用 '-s' 指定当前模型。

您无法以 PostScript 或 EPS 格式保存 Simulink 模块图。

输出参数

全部折叠

以 n×m×3 数组形式返回的图像数据。图像数据数组的大小取决于图窗的 PaperPosition 属性和输出分辨率。

注意

从 R2015b 开始,如果您在高分辨率系统中将 print'-r0' 选项结合使用,则 cdata 输出数组的大小会大于在以前版本中或在其他系统上的大小。此外,cdata 中的元素数可能与以像素为单位的图窗的大小不匹配,具体取决于图窗的 PaperPosition 属性和根的 ScreenPixelsPerInch 属性。有关详细信息,请参阅 DPI-Aware Behavior in MATLAB

局限性

  • 在 Linux 上以非显示模式启动 MATLAB 或在任何平台上使用 -noFigureWindows 启动选项会对 print 施加以下限制:

    • 打印或保存具有可见 uicontrol 错误的图窗。要打印或保存该图窗,请将 uicontrol 的 Visible 属性设置为 'off' 或将 print 函数与 '-noui' 选项结合使用,从而隐藏 uicontrol。

    • 始终使用 Painters 渲染器,即使您指定 '-opengl' 选项也如此。

  • MATLAB Online™ 中,print 仅打印到 PDF。有关其他文件格式选项,请通过指定 filename 将图窗保存到文件。

详细信息

全部折叠

当前图窗

当前图窗通常是您最近一次创建或用鼠标点击的图窗。通过用户交互方式可以更改当前图窗。

要打印特定图窗,请将该图窗指定为第一个输入参数。如果不指定图窗,则 print 函数将作用于由 gcbf 返回的图窗。如果 gcbf 返回空,则 print 将作用于由 gcf 返回的图窗。

兼容性考虑

从 R2016a 开始,打印和保存的图窗大小在默认情况下与屏幕上的图窗大小一致。以前,打印和保存的图窗在默认情况下为 8×6 英寸。

提示

  • 您可以设置图窗的属性以控制某些打印和保存参数。此表列出了与打印和保存相关的图窗的属性。

    图窗属性说明
    PaperPosition打印或保存的图窗的大小。如果输出到打印机或全页输出格式,则此属性还确定页面上的图窗位置。
    PaperPositionMode指定是否使用 PaperPosition 属性或屏幕上图窗的大小来设置打印或保存的图窗的大小。
    InvertHardcopy指定在打印或保存图窗时,是使用图窗的当前背景色还是将背景色更改为白色。
    PaperOrientation图窗在打印页上的方向。
    PaperType标准打印机纸张大小。
    PaperSize打印机纸张的自定义宽度和高度。
    PaperUnitsPaperSizePaperPosition 属性的单位。

  • 如果您使用的是 Linux 或 Mac 系统,并收到打印机无效或无法识别的错误,请尝试为 driver 选项指定 PostScript 驱动程序。如果打印机支持 PostScript 级别 3,请尝试使用 '-dps' 表示黑白色,或使用 '-dpsc' 表示彩色。如果打印机支持 PostScript 级别 2,请尝试使用 '-dps2' 表示黑白色,或使用 '-dps2c' 表示彩色。例如:

    print('-dpsc','-Pmy printer')
    要使用此驱动程序作为默认驱动程序,请编辑 printopt 文件。或者,将图窗打印为 PDF 文件。然后,从外部 PDF 查看器打印 PDF。

  • 如果您打印的图窗为 SizeChangedFcn 属性定义了回调,并且图窗的输出大小不同于屏幕上的图窗大小,print 函数将显示一条警告消息。要避免该警告消息,请将图窗的 PaperPositionMode 属性设置为 'auto'

替代功能

从 R2020a 开始,您可以使用 exportgraphics 函数保存下列任一项的内容:坐标区、图窗、可作为图窗子级的图、分块图布局或容器(如面板)。当您需要执行以下操作时,此函数比 print 函数更合适:

  • 保存在 App 或 MATLAB Online 中显示的图形

  • 最小化内容周围的空白

  • 用可嵌入的字体保存 PDF 片段

  • 保存图窗中内容的一部分

  • 控制背景颜色,而不必修改图窗的属性

copygraphics 函数(R2020a 中的新增函数)提供与 exportgraphics 函数大致相同的功能,只是前者会将内容复制到系统剪贴板,而不是保存到文件中。使用此函数可将 MATLAB 的内容复制并粘贴到其他应用程序中。

在 R2006a 之前推出