Next Previous Contents

2. 在 Linux 系統內打印文檔

本節說明在 Linux 環境中如何打印文件、檢查列印隊列、從列印隊列刪除打印任務、 打印前文檔排版和設置打印環境等。

2.1 Linux 打印系統的演變

Linux 打印系統 - lp 系統 - 是將加利福尼亞大學校方為 UNIX 操作系統的 BSD 版編寫的源代碼改編而成。

2.2 利用 lpr 打印文檔

到目前為止,在 Linux 系統中打印文檔的最簡單方法就是將文檔直接送到打印設備打印。使用 cat 指令就是方法之一。作為 root,發送下列指令就可打印文檔:

# cat thesis.txt > /dev/lp

在這個例子中,/dev/lp 是實際打印設備的符號連接 - 不論打印機是點陣列印機、激光打印機、 排版打印機或圖表打印機均可使用這個指令。(關於符號連接的進一步說明見 ln(1))

由于安全上的考量,只有 root 和屬於打印監控程式的同一群組的使用者才可書寫到打印機, 使打印機進行打印。這就是必需使用 lprlprmlpq 等指令才能使用打印機的理由。

因此,使用者必需使用 lpr 列印文檔。lpr 為打印進行所有初始設定, 然後將任務交給打印監控程序 - lpd。這個打印監控程序隨即告知打印機如何打印文檔。

lpr 執行過程中,它首先將有待打印的文檔抄到一個目錄(假脫機目錄), 然後讓該文檔留在該目錄中等待 lpd 進行打印。一旦 lpd 得知有文檔等待打印, 它就自行生成一個備份(編程員稱為派生(forking))。這個派生的 lpd 監控程序就會打印有待打印的文檔, 同時原 lpd 仍繼續等待後面可能發出的打印指令。通過這種方式,Linux 系統可同時處理列隊打印任務。

使用 lpr(1) 指令的語法如下:

$ lpr [ options ] [ filename ... ]
#
# (譯註:$ lpr [ 選項 ] [ 文檔名 ... ])
#

如果 filename (譯註:文檔名)沒有標示,lpr 認為將由標準輸入口(通常為鍵盤或另一程式的輸出)提供輸入。通過這種方法, 使用者可將一個程式的輸出導入打印假脫機程序。例如,

$ cat thesis.txt | lpr

$ pr -l60 thesis.txt | lpr

均把運行的結果導入打印機印出。

lpr 指令還接受各種打印選項參數,使使用者能控制打印方式。最常用的選項參數有: -Pprinter 指明用何種打印機、-h 不印突發錯頁、-s 建立符號連接, 並且不將文檔抄到假脫機目錄(便于處理長文檔)和 -#num 標明打印份數。 具體使用 lpr 的例子如下:

$ lpr -#2 -sP dj thesis.txt

這個指令會在假脫機目錄內為稱為 dj 的打印機建立一個連接 thesis.txt 文檔的符號連接,然後由 lpd 對其進行打印。印完之後,它還會再打印一次 thesis.txt (譯註:共印兩份)。

關於 lpr 使用的所有選項參數,見 lpr(1)。

2.3 利用 lpq 察看打印隊列

使用 lpq 指令可察看當前的打印隊列。如直接使用指令,不加選項參數, 可察看默認打印機的打印隊列情況。

lpq 的結果有許多用途。

$ lpq
lp is ready and printing (譯註:打印機準備打印,下面列出打印信息)
Rank   Owner      Job  Files                            Total Size
active mwf        31   thesis.txt                       682048 bytes

2.4 利用 lprm 取消打印任務

對任何一個打印系統而言,都需要有一個取消打印任務的工具軟件。在 Linux 系統中,可用 lprm

$ lprm -

上述指令取消使用者發出的所有打印指令。如果只要取消一個打印任務,可用 lpq 查明打印任務編號,然後將該編號作為參數用于 lprm 指令。例如:

$ lprm 31

取消默認打印機第 31 號打印任務 (thesis.txt)。

2.5 利用 lpc 控制 lpd 程序

lpc(8) 程式用來控制 lpd 提供打印的打印機。通過 lpc 程式可控制打印機的打印功能、 打印任務列隊、重新安排列隊次序和提供打印機和列隊狀況。 lpc 多數用于設置系統時一機配置多打印機的情況。

$ lpc

上述指令啟動 lpc 程式。在不設置任何參數的情況下,這使用戶進入互動模式,此後可開始輸入指令。 使用 lpc 的另一個方式是從指令行輸入參數。

$ lpc status all

所有可用的指令均在 lpd 的使用說明(man page)內可以查到。此處列出一些主要指令。指令中作為 選項 列出的部分可以是打印機名(lp、print 等)或關鍵字 all,此處表示所有打印機。

2.6 RedHat 的打印工具(printtool)

RedHat 的 printtool 是一個非常好用的工具。它幾乎無所不能。下文說明如何通過 RedHat 4.0 在并聯埠接連 HP LJ 4L 的方法(此法也可用于其他 RedHat 版本)。

利用這種方法可為一台打印機設定多種打印方式,例如為各種打印設定不同的紙張尺寸、分辨率等。


Next Previous Contents