本節說明在 linux 環境中如何打印文件、檢查列印隊列、從列印隊列刪除打印任務、打印前文檔排版和設置打印環境等。 2.1 Linux 打印系統的演變 Linux 打印系統 - lp 系統 - 是將加利福尼亞大學校方為 UNIX 操作系統的 BSD 版編寫的源代碼改編而成。 2.2 利用 lPR 打印文檔 到目前為止,在 Linux 系統中打印文檔的最簡單方法就是將文檔直接送到打印設備打印。使用 cat 指令就是方法之一。作為 root,發送下列指令就可打印文檔: # cat thesis.txt > /dev/lp 在這個例子中,/dev/lp 是實際打印設備的符號連接 - 不論打印機是點陣列印機、激光打印機、排版打印機或圖表打印機均可使用這個指令。(關於符號連接的進一步說明見 ln(1)) 由于安全上的考量,只有 root 和屬於打印監控程式的同一群組的使用者才可書寫到打印機,使打印機進行打印。這就是必需使用 lpr、lprm 和 lpq 等指令才能使用打印機的理由。 因此,使用者必需使用 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,此處表示所有打印機。 disable 選項 - 不讓打印機再接受新的打印任務 down 選項 - 停止打印機的一切打印 enable 選項 - 允許打印任務進入打印列隊 quit (或 exit) - 停止 lpc 運行 restart 選項 - 重新開始打印機的 lpd status 選項 - 印出打印機的機況 up 選項 - 重新起始并開始新的 lpd 2.6 RedHat 的打印工具(printtool) RedHat 的 printtool 是一個非常好用的工具。它幾乎無所不能。下文說明如何通過 RedHat 4.0 在并聯埠接連 HP LJ 4L 的方法(此法也可用于其他 RedHat 版本)。 以 root 身份登錄,并啟動 printtool (如果作為 su ,還記得 SETENV DISPLAY :0.0 和 xhost + 嗎?) 按 "Add",然後在本地打印機項按 "OK" 填入打印機名稱 (如 /dev/lp1) 填入參數 - 選擇打印機種類、分辨率和紙張大小 (ljet4、300x300 和 信紙尺寸) 按 "OK" 一直到底,重新啟動 lpd。 利用這種方法可為一臺打印機設定多種打印方式,例如為各種打印設定不同的紙張尺寸、分辨率等。 -------------------------------------------------------------------------------- |
新聞熱點
疑難解答