MATLAB Function Reference |
Syntax
print print -device
-options
filename
[pcmd,dev] = printopt
Description
print
和 printopt
產生資料列印稿的輸出。所有 print
指令的參數為非必須的,可依任何順序或組合使用它們。
print
將現行的圖表內容,包括任何表示使用者介面控制的點陣圖,送至使用裝置及 printopt
定義的系統列印指令之印表機。
print -device
定義列印驅動(如顏色附錄)或圖像檔案格式(如 TIFF)。若 -device
設定成 -dmeta
或 -dbitmap
(僅在視窗系統出現),圖表將存入 clipboard 中。若省略 -device
,列印將使用放置於 printopt
的預設值。在 Devices 這一部份列出了所有支援的裝置型態。
print -options
定義修改 print
指令的動作選項。(舉例來說,-noui
選項抑制使用者介面的列印。)在 Options 這一部份列出了提拱的選項。
print filename
將輸出標明為檔名為 filename
的檔案。若 filename
並沒有副檔名,則 print
將會依據其格式來設定副檔名(如 .ps
或 .tif
)。
print(...)
為列印的函數格式。可讓您傳送任何輸入參數的變數。通常用來傳送檔名或頭銜(handles)。可參考範例中的 Batch Processing。
[pcmd,dev] = printopt
回傳含有現在系統取決之列印指令及輸出裝置的字串。printopt
為一 M
檔案被 print
用來產生資料列印稿的輸出。可編輯 M 檔案 printopt.m
來設定預設的印表機型態。
pcmd
和 dev
為平台取決的字串。pcmd
含有 print
用來將檔案送至印表機的指令。dev
含有針對 print
指令的印表機驅動程式及圖像格式。其預設值取決於使用的平台。
平台 |
系統列印指令 | 驅動程式或格式 |
UNIX |
lpr -r -s |
-dps2 |
VMS |
PRINT/DELETE |
-dps2 |
Windows |
COPY /B %s LPT1: |
-dwin |
下表列出完整 MATLAB 所支援的印表機驅動程式。若沒有先定義驅動程式,MATLAB 使用先前表格顯示的預設值。
有些驅動程式是由 GhostScript 所提拱,最後一欄表示當 GhostScript 使用時的值。
注意
一般而言,Level 2 PostScript 檔案比 Level 1 PostScript 檔案更小且更快呈現。然而,不是所有的 PostScript
印表機都支援 Level 2,故必須在使用驅動程式前先決定印表機的性能。Level 2 PostScript 為 UNIX 的預設值。可藉由編輯 printopt.m
檔案來更改設定值。
|
Graphics Format Files
定義檔名及檔案格式以便儲存圖表時能存至對應的圖像格式檔案。如要設定內建 MATLAB 格式的輸出檔案解析度,使用 -r
。(例如 -r300
設定輸出的解析度為每英吋 300 點。)-r
並不支援 GhostScript 格式。
下表顯示 MATLAB 支援的輸出格式及設定的使用。在一些情況中,MATLAB 及 GhostScript 皆提拱相同的格式。第一欄在括號中表示其支援 "MATLAB" 或 "GhostScript"。第三欄表示那些作業平台支援該格式。
TIFF 影像格式在所有的平台上文字處理器的輸入影像幾乎都支援。JPEG 為一高度壓縮的格式其在所有平台上的影像處理及網際網路的 HTML 文件都支援。若要開啟這些格式,MATLAB 使用 Z-buffer 開啟並將其結果存入定義的檔案中。
下表列出可對 print
做定義的選項。第二欄也顯示了包含更多細節的章節。這些章節列在 Printing and Exporting Figures with MATLAB
中。
選項 |
敘述 |
-adobecset |
僅用於 PostScript。使用 PostScript 預設的字元設定。可參考
Early PostScript 1 Printers。 |
-append |
僅用於 PostScript。將圖表併入已存在的 PostScript 檔案。可參考 Appending Figures to a PostScript File。 |
-cmyk |
僅用於 PostScript。使用 CMYK 而不是 RGB 列印。可參考 Creating CMYK Output。 |
-device |
使用印表機驅動程式。可參考 Specifying a Printer Driver。 |
-dsetup |
顯示 Print Setup 對話盒。 |
-fhandle |
列印出圖表的頭銜。注意不能同時定義此選項及 -swindowtitle
選項。可參考 Which Figure Is Printed。 |
-loose |
僅用於 PostScript 和 GhostScript。對於 PostScript
使用不嚴謹約束的盒。可參考 Producing Uncropped Output。 |
-noui |
抑制使用者介面控制的列印。可參考 Excluding User Interface Controls from Output。 |
-OpenGL |
使用 OpenGL 演算法執行求得圖像。注意不能同時用 -zbuffer 或 -painters 。可參考 Setting the Rendering Method。 |
-painters |
使用 Painter's 演算法執行求得圖像。注意不能同時用 -zbuffer 或 -OpenGL 。參考 Setting the Rendering Method。 |
-Pprinter |
僅用於 UNIX。定義欲使用的印表機名。可參考 Specifying a Printer。 |
-rnumber |
僅用於 PostScript GhostScript。定義每英吋多少點的解析度。可參考 Setting Resolution。 |
-swindowtitle |
定義欲列印之 Simulink 系統視窗的名稱。注意不能同時定義此選項及 -fhandle
選項。可參考 Which Figure Is Printed。 |
-v |
僅用於 Windows。顯示視窗 Print 對話盒。v
代表 "verbose mode." |
-zbuffer |
使用 Z-buffer 演算法執行求得圖像。注意不能用 -OpenGL 或 -painters 。可參考 Setting the Rendering Method。 |
Paper Sizes
MATLAB 支援不少標準的頁面尺寸。可依下表從 Print 對話盒設定圖表的 PaperType
屬性或選擇支援的頁面列印尺寸。
Printing Tips
Figures with Resize Functions
當列印的圖表含有一針對圖表 ResizeFcn
定義的回收程序時,print
指令將會產生一警告訊息。如要避免警告,可設定圖表 PaperPositionMode
屬性改成 auto
或選擇在 File->Page Setup... 對話盒中的 Match Figure Screen Size。
Troubleshooting MS-Windows Printing
當使用 MS-Windows 的印表機驅動程式而遇到像分割妨害、一些保護錯誤、應用錯誤或輸出不存在等問題時,可試著用下列方法解決:
print
指令的使用:皆以 -dps
為起始。print
-dmeta
命令。而後可導入檔案至其他的應用程式列印。可在圖表的 File-->Preferences...-->Copying Options 對話盒設定複製選項。Windows Metafile clipboard 格式產生一影像品質比 Windows 點陣圖好的圖表。
Printing Thick Lines on Windows95
由於 Windows95 的限制,MATLAB 對於列印線的設定為下列兩者之一:
若建立一比一像素還粗的線條並使用非實心的型態,MATLAB 將會依定義的型態列印,但寬度為一像素。
然而,可藉由編輯在 Windows 目錄下的 matlab.ini
使得 MATLAB
列印出既粗且有定義型態的線。在此檔案中,找到以下這個部份,
[Matlab Settings]
ThinLineStyles=1
ThinLineStyles=0
Printing MATLAB GUIs
當列印包含設定上列關鍵屬性的 MATLAB uicontrols
之圖表視窗,則可以取得較好的結果:
PaperPositionMode
屬性為 auto
。這可讓列印版本的尺寸和螢幕上的尺寸一樣。而 PaperPositionMode
設定成 auto
時 MATLAB 並不會更改其圖表的尺寸以滿足 PaperPosition
的值。若您定義圖表的 ResizeFcn
則這相當重要,因為若 MATLAB 在列印運作時更改圖表的尺寸,ResizeFcn
將自動被呼叫。 InvertHardcopy
屬性為 off
。原先,MATLAB 會改變圖表列印輸出的 background
色彩為白色,但不會改變 uicontrols 的色彩。若您有設定背景顏色,則必須將 InvertHardcopy
設定成 off
以保留色彩架構。set(gcf,'InvertHardcopy','off')
Notes on Printing Interpolated Shading with PostScript Drivers
MATLAB 可使用插入色彩列印 surface
物件(例如用 surf
或 mesh
產生的圖像)。然而,只有由三角面組成的 patch 物件可使用插入明暗法列印。
列印總是以 RGB 的色彩輸出,而不是色盤的色彩。此意謂著,若使用索引色彩及插入面色彩,則列印出來的結果可能和螢幕上的顯示不同。
PostScript 檔案針對包含圖像物件頂端之色彩資訊的插入明暗法而產生,並需要印表機來執行內插的計算。這可能會耗上大量的時間,故印表機可能實際上在完成列印工作前先 "暫停"。另一針對此問題的解決辦法是插入資料並產生大量的表面,隨後即被平坦地遮蔽著。
為了確定列印輸出和您在螢幕上所看到的相對應,可使用 -zbuffer
選項。為了取得較高的解析度(例如為了讓字型更清楚),使用 -r
選項以增加解析度。然而,在解析度及 PostScript
檔案的大小有個交易關係,在高解析度時檔案通常容量也會很大。預設的 150 dpi 通常已能有相當好的效果。您也可以在列印之前先將圖表的 PaperPositionMode
屬性設定成 auto
或設定 PaperPosition
以減少輸出檔案的尺寸。
注意在一些 UNIX 的環境下,預設的 lpr
指令並不能列印出大於 1 Mbyte
的檔案,除非使用 -s
選項,其在 MATLAB 中是預設值。可參考 lpr
指令的頁面以得到更多的資訊。
Specifying the Figure to Print
可依定義的圖表頭銜(handles)來列印非當前的圖表。若一圖表其標題為 "Figure No. 2",而它的頭銜為 2,則語法為:
print -fhandle
此範例列印出頭銜為 2 的圖表,而不管該圖表是否為現行的圖表。
print -f2
此範例儲存頭銜為 -f2
的圖表至名為 Figure2
的 PostScript
檔案,其可稍後進行列印。
print -f2 -dps 'Figure2.ps'
若圖表使用非整數的頭銜,則使用 figure
指令以取得它的值,而後傳送至函數以當做第一個參數。
h = figure('IntegerHandle','off') print h -depson
h = figure; plot(1:4,5:8) print(h)
filename = 'mydata'; print('-f3', '-dpsc', filename);
Specifying the Model to Print
為了要列印非當前的 Simulink 樣式,使用 -s
選項再加上視窗的標題。舉例來說,此命令列印出 Simulink 視窗其標題為 f14
。
print -sf14
若視窗標題包含任何的空白,則必須呼叫 print
.的函數形式而不是指數形式。舉例來說,此命令儲存 Simulink
視窗標題 Thruster Control
。
print('-sThruster Control')
print -s
關於列印 Simulink 視窗特殊問題的資訊,可參考 Simulink 文件。
此範例列印出明暗變化的表面平面圖。設定現行圖表的 (gcf
) PaperPositionMode
屬性至 auto
使得您可以重新變更圖表視窗的尺寸並列印出在螢幕上所見的視窗大小。參考 Options
及前面關於 -zbuffer
和 -r200
選項的資訊。
surf(peaks) shading interp set(gcf,'PaperPositionMode','auto') print -dpsc2 -zbuffer -r200
可使用 print
內的函式傳送包含檔名的變數。舉例來說,這個 for
迴圈開啟一連串的圖像並每一個不同檔名的圖像。
for i=1:length(fnames) surf(Z(:,:,i)) print('-dtiff','-r200',fnames(i)) end
Tiff Preview
print -depsc -tiff -r300 picture1
用 300 dpi,色彩壓縮 PostScript 檔案格式,檔名為 picture1.eps
儲存現行的圖表。-tiff
選項開啟一 72 dpi TIFF 的預看,當讀入 EPS 檔案時,許多文字處理應用程式可顯示於螢幕上。這可讓您在螢幕上先預視檔案接著以 300
dpi的解析度於 PostScript 印表機中列印出文件。
See Also
primes | printdlg |