ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

print

Figure の印刷またはファイルへの保存

構文

print
print('argument1','argument2',...)
print(handle,'filename')
print argument1 argument2 ... argumentn
cdata = print('-RGBImage')
cdata = print(fig,'-RGBImage')

説明

関数 print は、任意のユーザー インターフェイス コントロールのビットマップ表現を含めて、現在の Figure の内容を関数 printopt で定義されたデバイスとシステム プリント コマンドを使用してプリンターに送ります。

print('argument1','argument2',...) は、print の関数の形式です。いくつかの入力引数に変数を渡すことができます。この形式は、ファイル名やハンドル (print(handle,'filename') など) を渡す場合に役立ちます。例については、バッチ処理を参照してください。他の例については、印刷する Figure の指定を参照してください。

    メモ:   印刷の入力では、文字列変数とオブジェクト ハンドルのみを入力として受け取ります。セル配列または構造体入力として渡される文字列は受け入れません。

print argument1 argument2 ... argumentn は、指定した引数を使用して Figure を印刷します。

cdata = print('-RGBImage') は、現在の Figure の RGB イメージ データを返します。この構文では、引用符で囲まれた文字列 '-RGBImage' をかっこ内で使用します。

cdata = print(fig,'-RGBImage') は、指定した Figure の RGB イメージ データを返します。引用符で囲まれた文字列 '-RGBImage' をかっこ内で使用します。

'-RGBImage' オプションの使用は画面キャプチャとは異なり、解像度の設定や InvertHardcopy の使用などの、すべての印刷機能が出力に適用されます。

次の引数は、関数とコマンド形式の両方に適用されます。

引数説明

handle

指定したオブジェクトを印刷します。

filename

filename で指定される PostScript® ファイルに出力します。filename が拡張子を含まない場合、関数 print は適切な拡張子を付加します。

-ddriver

指定したプリンターの driver (たとえば、カラーの PostScript) を使用して Figure を印刷します。-ddriver を省略した場合、関数 printprintopt.m で格納される既定値を使用します。プリンター ドライバー の表は、サポートされているすべてのデバイス タイプを示しています。

-dformat

Figure をシステムのクリップボードにコピーします (Microsoft® Windows® プラットフォームのみ)。この操作を有効にするには、format-dmeta (Windows 拡張メタファイル) または -dbitmap (Windows ビットマップ) でなければなりません。

-dformat filename

指定したグラフィックスの format (たとえば TIFF) を使用して、指定したファイルに Figure をエクスポートします。グラフィックス ファイル形式の表は、サポートされているすべてのグラフィックス ファイル形式を示しています。

-smodelname

現在の Simulink® モデル modelname を印刷します。

-options

print コマンドの機能を修正するプリント オプションを指定します (たとえば、-noui オプションは、ユーザー インターフェイス コントロールの印刷を省略します)。印刷のオプションは、使用可能なオプションを示しています。

プリンター ドライバー

以下の表は、MATLAB® ソフトウェアでサポートされ、幅広く使用されているプリンター ドライバーを示します。ドライバーを指定しない場合は、前の表に示す既定の設定が使用されます。サポートされているすべてのプリンター ドライバーのリストを表示するには、MATLAB プロンプトで「print -d」と入力してください。以下は留意すべき点です。

  • 説明に示すように、-d スイッチはプリンター ドライバーまたはグラフィックス ファイル形式を指定します。

    • ファイル名またはプリンター名 (-P オプション) のないプリンター ドライバーを指定した場合、指定したドライバーによって書式化された出力が既定のプリンターに送られます。これは意図した操作とは異なる場合があります。

        メモ:   Windows システムでは、プリンターを -P オプションで識別すると、-dwin または -dwinc 以外のドライバーを指定している場合、MATLAB は適切な拡張子をもつファイルに出力を書き込みますが、プリンターには送信しません。

        ただし、共有ネットワーク プリンターをセットアップし、print コマンド内でそのネットワーク パスを使用してプリンターを指定した場合、そのプリンターに印刷できます。

    • -dmeta または -dbitmap グラフィックス形式をファイル名なしで指定すると、グラフィックは可能な場合、システムのクリップボードに配置されます (Windows プラットフォームのみ)。

    • ファイル名なしで他のグラフィックス形式を指定すると、figureN.fmt などの名前をもつファイルが現在のフォルダーに作成されます。ここで、N は 1、2、3、... で、fmt はたとえば epspng などの形式タイプを示します。

  • すべてのドライバーがすべてのプラットフォームでサポートされているわけではありません。サポート対象は、表の最初の列に記載されています。

  • -P オプションを使用して特定のプリンターを指定し、ドライバーを指定しなかった場合は、そのプリンターの既定のドライバーがプラットフォームに応じてオペレーティング システムまたは MATLAB によって選択されます。

    • Windows では、この特定の印刷デバイスに関連付けられているドライバーが使用されます。

    • Macintosh および UNIX® プラットフォームでは、printopt.m で指定されているドライバーが使用されます。

詳細は、『グラフィックス』ドキュメンテーションの「プリンターの選択」を参照してください。

プリンター ドライバー

print コマンドのオプション文字列

PostScript レベル 3 モノクロ

-dps

PostScript レベル 3 カラー

-dpsc

PostScript レベル 2 モノクロ

-dps2

PostScript レベル 2 カラー

-dpsc2

Windows カラー (Windows のみ)

-dwinc

Windows モノクロ (Windows のみ)

-dwin

グラフィックス ファイル形式

Figure を標準グラフィックス形式で保存するには、形式オプションとファイル名を指定します。MATLAB の組み込み形式に出力ファイルの解像度を設定するには、-r スイッチを使用します(たとえば、-r300 はインチあたり 300 ドットの出力解像度を設定します)。-r スイッチは、Windows 拡張メタファイル、JPEG、TIFF および PNG ファイルもサポートします。

詳細は、ディスプレイなしの印刷とエクスポート解像度についてを参照してください。

    メモ:   ファイルに印刷するとき、ファイル名はパス名も含めて 128 文字未満でなければなりません。現在のフォルダー内のファイルに印刷する場合のファイル名は 126 文字未満でなければなりません。MATLAB がファイル名の参照時に './' または '.\'' をファイル名の先頭に配置するためです。

次の表に、Figure のエクスポートがサポートされている出力形式と使用するオプション設定を示します。EMF を除くすべての形式は、Windows と UNIX プラットフォームの両方でサポートされています。

グラフィックス形式

ビットマップまたはベクトル

print コマンドのオプション文字列

BMP モノクロ BMP

ビットマップ

-dbmpmono

BMP 24 ビット BMP

ビットマップ

-dbmp16m

BMP 8 ビット (256 色) BMP (固定カラーマップを使用)

ビットマップ

-dbmp256

BMP 24 ビット

ビットマップ

-dbmp

EMF

ベクトル

-dmeta

EPS レベル 3 モノクロ

ベクトル

-deps

EPS レベル 3 カラー

ベクトル

-depsc

EPS レベル 2 モノクロ

ベクトル

-deps2

EPS レベル 2 カラー

ベクトル

-depsc2

HDF 24 ビット

ビットマップ

-dhdf

JPEG 24 ビット

ビットマップ

-djpeg

PBM (標準形式) 1 ビット

ビットマップ

-dpbm

PBM (未処理形式) 1 ビット

ビットマップ

-dpbmraw

PCX 1 ビット

ビットマップ

-dpcxmono

PCX 24 ビット カラー PCX ファイル形式、3 つの 8 ビット平面

ビットマップ

-dpcx24b

PCX 8 ビット新色 PCX ファイル形式 (256 色)

ビットマップ

-dpcx256

PCX 旧色 PCX ファイル形式 (EGA/VGA、16 色)

ビットマップ

-dpcx16

PDF カラー PDF ファイル形式

ベクトル

-dpdf

PGM Portable Graymap (標準形式)

ビットマップ

-dpgm

PGM Portable Graymap (未処理形式)

ビットマップ

-dpgmraw

PNG 24 ビット

ビットマップ

-dpng

PPM Portable Pixmap (標準形式)

ビットマップ

-dppm

PPM Portable Pixmap (未処理形式)

ビットマップ

-dppmraw

"SVG" Scalable Vector Graphics (Simulink モデルのみ)

ベクトル

-dsvg

TIFF 24 ビット

ビットマップ

-dtiff または -dtiffn

EPS ファイル用 TIFF プレビュー

ビットマップ

-tiff

TIFF イメージ形式は、イメージをインポートするために、ほとんどのワード プロセッサによってすべてのプラットフォーム上でサポートされています。変形 -dtiffn は、圧縮されていない TIFF を書き込みます。JPEG はロスが大きいですが、画像処理や Web 上の HTML ドキュメントに挿入する場合などのために、すべてのプラットフォームでサポートされている圧縮度の高い形式です。これらの形式を作成するために、MATLAB では opengl のレンダリング方法を使用して Figure をレンダリングし、指定したファイルに結果のビットマップを保存します。

ディスプレイなしの印刷とエクスポート

MATLAB -nodisplay モード (matlab -nodisplay) での起動が可能な UNIX プラットフォームでは、ディスプレイ モードで使用可能なほとんどのドライバーを使って印刷ができ、同じファイル形式のほとんどにエクスポートできます。

すべての PostScript デバイスが、UNIX プラットフォーム上で -nodisplay モードで動作します。グラフィックス デバイス -djpeg-dpng-dtiff (圧縮済み TIFF ビットマップ) および -tiff(TIFF プレビュー付き EPS) が機能します。

同じことがすべてのプラットフォームで Figure を非表示にする -noFigureWindows 起動オプションにも言えます。Windows プラットフォームでは、-dwin-dwinc および -dsetup オプションは、-noFigureWindows で通常どおりに機能します。ただし、printpreview GUI はこのモードでは機能しません。したがって、Windows のみでサポートされている -dwin および -dwinc 出力形式は、ディスプレイを使用するかしないかにかかわらず、UNIX または Mac プラットフォームでは使用できません。

UNIX および Mac プラットフォームの nodisplay モードで生成できない形式は次のとおりです。

  • ビットマップ (-dbitmap) — Windows ビットマップ ファイル

  • bmp (-dbmp...) — モノクロおよびカラー ビットマップ

  • hdf (-dhdf) — Hierarchical Data Format

  • svg (-dsvg) — Scalable Vector Graphics ファイル

  • tiffn (-dtiffn) — TIFF イメージ ファイル、非圧縮

MATLAB を任意のプラットフォーム上で -nodisplay モードまたは -noFigureWindows モードで起動した場合、MATLAB は次のように動作します。

  • uicontrol を印刷またはエクスポートしません。

  • print コマンドで -opengl オプションを指定した場合でも、常に painters レンダラーを使用します。

印刷のオプション

次の表は、関数 print に指定できるオプションを表示します。2 番目の列は、詳しい操作方法を掲載しているチュートリアルにリンクしています。また、出力解像度の制御の詳細は、解像度についてを参照してください。

オプション

説明

-append

PostScript デバイスのみ ('-dps''-dpsc''-dpsc2' および '-dpsc2')。Figure を既存の PostScript ファイルに付加します。

-cmyk

PostScript デバイスのみ。RGB の代わりに、CMYK カラーを使用して印刷。「CMYK カラーの設定」を参照。

-ddriver

印刷のみ。使用するプリンター ドライバー。プリンター ドライバーの表を参照。

-dformat

エクスポートのみ。使用するグラフィックス形式。「グラフィックス形式ファイル」の表を参照。

-fhandle

印刷する Figure のハンドル。このオプションと -swindowtitle オプションを同時に設定できないことに注意してください。「Figure の選択」を参照。

-loose

PostScript 印刷のみ。PostScript に出力する場合は、周りに十分な空白がある境界ボックスを使用します。「Uncropped Figure の生成」を参照。

-noui

ユーザー インターフェイス コントロールの印刷を省略。「ユーザー インターフェイス コントロールの除外」を参照。

-opengl

OpenGL® レンダラーを使用したレンダリング。ビットマップ形式でエクスポートする場合にこのレンダラーを使用します。

-painters と共にこの方法を指定することはできません。

-painters

Painter アルゴリズムを使用したレンダリング。PostScript、PDF、Scalable Vector Graphics などのベクトル形式でエクスポートする場合にこのレンダラーを使用します。

-opengl と共にこの方法を指定できないことに注意してください。

-Pprinter

使用するプリンターの名前の設定。Macintosh コンピューターでは、[プリント] ダイアログに表示されるプリンター名を -P オプションを使用してコマンド ラインで指定しても印刷できない場合があります。詳細は、「プリンターの選択」を参照してください。

-rnumber

PostScript および組み込みのラスター形式のみ。インチあたりのドット数で解像度を指定。既定値は、Simulink の場合は 90、イメージ形式 の Figure および OpenGL の場合は 150、メタファイルの場合は画面解像度、その他の場合は 864 です。画面解像度の指定は、-r0 を使用します。詳細は、解像度について「解像度の設定」を参照してください。

-swindowtitle

印刷する Simulink システム ウィンドウ名を指定します。このオプションと -fhandle オプションを同時に設定できないことに注意してください。「Figure の選択」を参照。

-v

すべてのプラットフォーム上で Java® の [印刷] ダイアログを表示します。

解像度について

生成された出力の解像度を指定するには、-rnumber を使用します。一般的に大きな値を使用すると出力の品質は高くなりますが、出力ファイルのサイズは大きくなります。解像度は、MATLAB に組み込まれているすべての "ラスター" 形式の解像度と出力サイズに影響します。

    メモ:   ヘッドレス (nodisplay) モードでは、ディスプレイが使用されている場合とは異なり、特定のイメージ形式への書き込みは組み込みのドライバーによって行われません。これらの形式は、-djpeg-dtiff、および -dpng です。さらに、-dhdf および -dbmp 形式はヘッドレス モードでは生成できません (ただし -dbmp-dbmp16m に置き換えることができます)。ディスプレイを使用しない場合の印刷の詳細は、ディスプレイなしの印刷とエクスポートを参照してください。

出力品質に対する -r オプションの影響は、OpenGL レンダラーを使用して MATLAB の組み込みラスター形式のいずれかで書き込む場合または組み込みラスター イメージ (PostScript や PDF など) を含むベクトル出力を生成する場合、通常の倍率ではあまり目立ちません。高い解像度の指定による影響は、出力を高い倍率で表示するか、印刷した場合により明らかになります。大きな -r 値を設定すると、イメージのスケーリングに使用するデータがより多く提供されるためです。

完全にベクトル化された出力を生成する場合 (painters レンダラーを使用して PostScript や PDF などのベクトル形式を出力する場合など)、解像度の設定は出力の詳細度に影響します。高い解像度を設定すると、よりシャープな出力が生成されます (ただし、解像度をわずかに変更した場合には明らかな影響は見られないことがあります)。たとえば、実線 ('-') ラインスタイル以外の線において、破線間のスペースが影響を受けることがあります。

用紙サイズ

MATLAB は、いくつかの標準の用紙サイズをサポートしています。Figure の PaperType プロパティを設定するか、印刷ダイアログ ボックスからサポートされている用紙サイズを選択することにより、以下の一覧から選択できます。

プロパティ値

サイズ (幅 x 高さ)

usletter

8.5 x 11 インチ

uslegal

8.5 x 14 インチ

tabloid

11 x 17 インチ

A0

841 x 1189 インチ

A1

594 x 841 インチ

A2

420 x 594 mm

A3

297 x 420 mm

A4

210 x 297 mm

A5

148 x 210 mm

B0

1029 x 1456 インチ

B1

728 x 1028 インチ

B2

514 x 728 mm

B3

364 x 514 mm

B4

257 x 364 mm

B5

182 x 257 mm

arch-A

9 x 12 インチ

arch-B

12 x 18 インチ

arch-C

18 x 24 インチ

arch-D

24 x 36 インチ

arch-E

36 x 48 インチ

A

8.5 x 11 インチ

B

11 x 17 インチ

C

17 x 22 インチ

D

22 x 34 インチ

E

34 x 43 インチ

印刷のヒント

既定のプリンターの設定

ファイル printopt.m を編集して、既定のプリンター タイプと出力先を設定できます。新しいプリンターをセットアップする場合、オペレーティング システムのプリンター管理ユーティリティを使用します。既に設定されているプリンターが表示されない場合、MATLAB を再起動します。

サイズ変更関数を使用した figure

print コマンドは、Figure のResizeFcn に定義されたコールバック ルーチンをもつ Figure を印刷する場合、警告を生じます。この警告を避けるために、Figure の PaperPositionMode プロパティを auto に設定するか、または [ファイル]、[ページ設定] ダイアログ ボックスの [自動 (実際のサイズ、中央)] を選択するかのいずれかを行ってください。

Microsoft Windows の印刷のトラブルシューティング

Microsoft プリンター ドライバーを使用中に、セグメンテーション違反、一般保護違反エラー、アプリケーション ウィンドウ、予期した出力が表示されない場合は、以下のようにしてください。

  • プリンターが PostScript 互換である場合は、MATLAB の組み込み PostScript ドライバーのいずれかで印刷してみます。print と共に使用可能なさまざまな PostScript デバイス オプションが用意されています。これらのオプションはいずれも -dps で始まります。

  • プリンター ドライバーの特定のバージョンでのみ問題が生じることがあります。他のドライバーの取得方法やインストール方法は、プリンター ドライバーのベンダーに問い合わせてください。

  • Figure ウィンドウ メニューの [編集]、[Figure のコピー] メニュー アイテムを使用するか、コマンド ラインで print -dmeta オプションを使用して、Windows 拡張メタファイルとして Figure をコピーします。その後、印刷を実行するために、別のアプリケーションにファイルをインポートできます。

    Figure の [ファイル]、[設定]、[コピー オプション]ダイアログ ボックスで、コピー オプションを設定できます。Windows 拡張メタファイル クリップボード形式は、Windows ビットマップよりも高品質なイメージを出力します。

MATLAB GUI の印刷

以下の主なプロパティを設定すると、MATLAB の uicontrols を含む Figure ウィンドウを印刷する場合に、一般的に良い結果を取得できます。

  • Figure の PaperPositionMode プロパティを auto に設定してください。これにより、印刷されたものが画面上と同じサイズになります。PaperPositionModeauto に設定した場合、MATLAB は Figure のプロパティ値 PaperPosition の現在の値に合うように Figure のサイズを変更することはありません。MATLAB が印刷処理中に Figure をサイズ変更すると ResizeFcn が自動的に呼び出されるため、Figure の ResizeFcn を指定した場合はこれが特に重要です。

    現在の Figure で PaperPositionMode を設定するには、以下のコマンドを使用します。

    set(gcf,'PaperPositionMode','auto')
    
  • Figure の InvertHardcopy プロパティを off に設定します。既定の設定では、MATLAB は印刷された出力の Figure の背景色を白に変更しますが、uicontrols の色は変更しません。たとえば、背景色を GUI デバイスのグレーと一致するように設定した場合、カラー スキームを保存するために、InvertHardcopyoff に設定しなければなりません。

    現在の Figure で InvertHardcopy を設定するには、以下のコマンドを使用します。

    set(gcf,'InvertHardcopy','off')
    
  • 画面上の色付けされた線やテキストを、色付きのオブジェクトとして出力ファイルに書き込む場合は、カラー デバイスを使用します。モノクロ デバイスは、バックグラウンドと最良のコントラストとなり、ディザリングを防ぐために、色付きの線やテキストをモノクロに変換します。

  • Figure に含まれるオブジェクトのまわりの境界ボックスが狭くなりすぎないようにするには、print コマンドの -loose オプションを使用してください。これは、uicontrols または Axes と Figure の端の間でスペースを意図的に使用する場合や、印刷出力でもこの外観を保持する場合に重要です。PDF 出力は -loose オプションを無視します。

nodisplay モードで印刷またはエクスポートした場合、Figure がもつ uicontrols はいずれも表示されません。Figure が非表示のときに uicontrols を Figure に追加するコードを実行した場合は、Figure を表示するまでコントロールが印刷されません。

PostScript ドライバーを使用した内挿シェーディングの印刷

MATLAB の表面オブジェクト (surf または mesh で作成されたグラフなど) は、内挿された色を使用して印刷できます。しかし、三角形の面で構成されている Patch オブジェクトのみは、内挿されたシェーディングを使用して印刷できます。

印刷された出力は、常にカラーマップの色ではなく、RGB 空間に内挿されています。これは、インデックス付きカラーや内挿された面のカラーを使用している場合、印刷出力は画面上に表示されたものと異なって見えることを意味します。

内挿シェーディングで生成される PostScript ファイルは、グラフィックス オブジェクトの頂点の色情報を含み、プリンターに内挿の計算を行うように命令します。これは、時間が余計にかかり、プリンターが印刷ジョブを終了する前にタイムアウトになる場合があります。この問題の 1 つの解決法は、データを内挿して、フラット シェーディングされる多くの面を作成することです。

高解像度を得るためには、(たとえば、テキストをよりきれいに表示するには)、解像度を上げる -r オプションを使用してください。しかし、これは解像度と作成される PostScript ファイルのサイズとのトレードオフであり、ファイルのサイズは高解像度では非常に大きくなります。既定の解像度 150dpi は、一般的に良い結果を出力します。印刷する前に Figure を小さくし、figure の PaperPositionModeauto に設定するか、PaperPosition プロパティを小さいサイズに設定することによって、出力ファイル サイズを小さくできます。

画面のサイズおよび解像度での Figure のエクスポート

この例では、表面プロットを .png ファイルにエクスポートします。現在の Figure (gcf) の PaperPositionMode'auto' に設定すると、Figure ウィンドウのサイズを変更して画面上に表示されているサイズで印刷できます。

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

詳細は、『MATLAB グラフィックス』ドキュメンテーションの「イメージの印刷」を参照してください。

ベクトル形式でのエクスポート

painters レンダラーを使用してベクトル形式で Figure をエクスポートします。

bar(1:10)
print -depsc -painters BarPlot

印刷する Figure の指定

変数として Figure ハンドルを関数 print の関数型に渡します。以下に例を示します。

h = figure; 
plot(1:4,5:8)
print(h)

ハンドル番号 h をもつ Figure を PostScript ファイル Figure2 として保存し、後で印刷できるようにします。

print(h,'-dps','Figure2.ps')

ファイル名を変数として渡します。

filename = 'mydata';
print(h, '-dpsc', filename);

(ファイル名が指定されるため、Figure はファイルに出力されます)

印刷するモデルを指定

ウィンドウのタイトルと共に -s オプション (この場合は、f14) を使用して、別の Simulink モデルを印刷します。

print('-sf14')

ウィンドウのタイトルにスペースが含まれている場合、関数 print のコマンド形式よりも関数形式で呼び出す必要があります。たとえば次のコマンドは、Simulink ウィンドウ タイトル Thruster Control を保存します。

print('-sThruster Control')

現在のシステムを印刷するには、次のようにします。

print('-s')

Simulink ウィンドウの印刷に固有の問題については、Simulink のドキュメンテーションを参照してください。

Figure のイメージ RGB データを返す

Figure の RGB イメージを作成します。

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

imshow を使用してフル解像度でイメージ データを表示します。

imshow(cData)

バッチ処理

関数形式の print を使用して、ファイル名を含む変数を渡すことができます。たとえば次の for ループは、セル配列に格納されているファイル名を使用して一連のグラフを作成し、異なるファイル名で各グラフを印刷します。

fnames = {'file1', 'file2', 'file3'};
for k=1:length(fnames)
    surf(peaks)
    print('-dtiff','-r200',fnames{k}) 
end

fnames は文字列配列のセルであるため、各要素は文字列です。

Tiff プレビュー

コマンド

print('-depsc','-tiff','-r300','picture1')

は、カラーの Encapsulated PostScript ファイル picture1.eps に、300 dpi の解像度で現在の Figure を保存します。-tiff オプションは、72dpi TIFF プレビューを作成し、多くのワード プロセッサ アプリケーションを使用して、EPS ファイルにインポートした後、画面上に表示できます。これにより、画面上のイメージをワード プロセッサで表示し、300 dpi の解像度を使用して PostScript プリンターでドキュメントを印刷できるようになります。

代替方法

Figure ウィンドウで [ファイル]、[印刷] を選択し、[印刷] ダイアログ ボックスを開きます。[ファイル]、[印刷プレビュー] を選択し、[印刷プレビュー] GUI を開きます。詳細は、「印刷およびエクスポートの方法」を参照してください。

この情報は役に立ちましたか?