跳轉至內容

Ict-innovation/LPI/108.4

來自華夏公益教科書

108.4 管理印表機和列印

[編輯 | 編輯原始碼]

考生應該能夠使用 CUPS 和 LPD 相容性介面來管理印表機佇列和使用者列印作業。


關鍵知識領域

  • 基本的 CUPS 配置(用於本地和遠端印表機)。
  • 管理使用者列印佇列。
  • 排除一般列印問題的故障。
  • 從配置的印表機佇列中新增和刪除作業。

介紹 CUPS

[編輯 | 編輯原始碼]

CUPS(通用 Unix 列印系統)是 Linux 上的標準列印系統。cups 伺服器是 cupsd;它在埠 631 上監聽,並使用 IPP(Internet 列印協議)接受列印作業。IPP 建立在 HTTP 之上,這意味著 IPP 請求是具有特定型別內容的 HTTP 請求。


圖示 108.4-1:CUPS 列印系統

CUPS 伺服器處理印表機佇列管理,還提供一個 Web 伺服器(也在埠 631 上),它支援基於瀏覽器的配置介面,允許新增和刪除印表機、印表機佇列管理等等。

圖 108.4-2:CUPS Web 介面:主頁

CUPS 過濾器

cups 內部的工作流程可能比較複雜

圖 108.4-3:Linux 列印架構

CUPS 的前端是實際的伺服器,它處理列印作業的排隊並提供基於 Web 的配置介面。除此之外,工作流程的核心是過濾器,它提供從初始輸入檔案(純文字、jpeg 影像等)到實際印表機理解的語言的格式轉換。這些過濾器基於Ghostscript(一個 GNU 專案)。它們參考 PPD(Postscript 印表機描述)檔案,該檔案指定了印表機的功能。過濾器位於(例如)/usr/share/ghostscript 中。

Ghostscript 也可以從命令列使用名稱 gs 呼叫。此命令將 Postscript 或 PDF 檔案作為輸入,併為特定印表機型別生成輸出檔案。它有一個可以處理的印表機驅動程式資料庫(此列表相當最新,例如支援許多 USB 印表機),並將 Postscript 直接轉換為這些已知型號的 PCL。執行命令 gs -h 可以檢視支援的裝置列表

# gs -h

GPL Ghostscript 8.71 (2010-02-10)

Copyright (C) 2010 Artifex Software, Inc. All rights reserved.

Usage: gs [switches] [file1.ps file2.ps ...]

Most frequently used switches: (you can use # in place of =)

-dNOPAUSE no pause after page | -q `quiet', fewer messages

-g<width>x<height> page size in pixels | -r<res> pixels/inch resolution

-sDEVICE=<devname> select device | -dBATCH exit after last file

-sOutputFile=<file> select output file: - for stdout, |command for pipe,

embed %d or %ld for page #

Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PostScriptLevel3 PDF

Default output device: x11alpha

Available devices

alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 alc9100 ap3250 appledmp

atx23 atx24 atx38 bbox bit bitcmyk bitrgb bitrgbtags bj10e bj10v bj10vh

bj200 bjc600 bjc800 bjc880j bjccmyk bjccolor bjcgray bjcmono bmp16 bmp16m

bmp256 bmp32b bmpgray bmpmono bmpsep1 bmpsep8 ccr cdeskjet cdj1600 cdj500

... many lines deleted ...


CUPS 後端

CUPS 支援多種後端。術語後端指的是用於連線印表機的技術或協議。下表給出了一些示例

表:CUPS 後端技術
後端 URI 語法 示例
並行埠 parallel:/dev/lpx parallel:/dev/lp0
USB usb://make/model?serial=number usb://hp/officejet123?serial=108442
ipp ipp://host/printers/queue ipp://neptune/printers/xerox1
LPD lpd://host/queue lpd://neptune/xerox1
套接字 socket://host:port socket://neptune:9100
CIFS smb://user:password@workgroup/host/share

可以使用基於 Web 的介面新增 CUPS 印表機。下圖顯示了此序列中的幾個螢幕中的兩個。

圖 108.4-4:新增印表機 - I

圖 108.4-5:新增印表機 - II

印表機也可以分配到類別。這主要在連線了多個相同型別印表機的重型列印伺服器上有用。使用者將列印作業傳送到類別;CUPS 將在第一個可用的印表機上列印它們。


列印的傳統命令

[編輯 | 編輯原始碼]

CUPS 替換了 UNIX 和 Linux 中使用的兩個早期列印系統。一個是來自 System V Unix,另一個來自 BSD(伯克利軟體發行版)。這兩個系統主要用於從命令列列印純文字檔案(例如,不是從 Open Office 等圖形應用程式列印包含嵌入影像的辦公文件)。這兩個系統雖然在概念上相似,但使用不同的命令、不同的配置檔案和不同的協議與列印伺服器通訊。

為了向後相容,CUPS 提供了許多這些命令列工具的“類似”版本。這些包括

命令 描述
lp, lpr 提交檔案以列印
lpq 列印印表機佇列狀態
lprm 刪除排隊的列印作業
accept 允許將作業傳送到列印佇列
reject 阻止將作業傳送到列印佇列
cupsenable 允許將作業從佇列傳送到印表機
cupsdisable 停止作業從佇列傳送到印表機
lpstat 顯示 CUPS 印表機佇列的狀態
lpadmin 配置 cups 印表機和類別

使用 CUPS 時,這些命令將作業提交到 CUPS 伺服器,CUPS 伺服器執行其通常的過濾和後端處理。


lp 和 lpr

lpr 和 lp 實用程式用於將作業提交到印表機。請注意,它們使用不同的命令選項。例如,lpr 使用 -P 標記指定印表機,lp 使用 -d 標記。


lpq

使用者可以使用 lpq 監控列印佇列的狀態。在下面的示例中,demo-1 是印表機的名稱。

# lpr -Pdemo-1 anaconda-ks.cfg

# lpq -Pdemo-1

demo-1 is not ready

Rank Owner Job File(s) Total Size

1st root 4 install.log 39936 bytes

2nd root 5 anaconda-ks.cfg 1024 bytes


lprm

lprm 命令用於從列印佇列中刪除作業。在下面的示例中,我們從 demo-1 列印佇列中刪除作業 4,然後重新顯示佇列

# lprm -Pdemo-1 4

# lpq -Pdemo-1

demo-1 is not ready

Rank Owner Job File(s) Total Size

1st root 5 anaconda-ks.cfg 1024 bytes


lpstat

lpstat 顯示有關當前類別、作業和印表機的狀態資訊。在沒有引數的情況下執行時,lpstat 將列出當前使用者排隊的作業。

示例

# lpstat -t

scheduler is running

no system default destination

device for demo-1: parallel:/dev/lp0

device for demo-2: ipp://printhost/ipp

demo-1 accepting requests since Sun 26 Sep 2010 12:38:10 PM BST

demo-2 accepting requests since Sun 26 Sep 2010 12:34:53 PM BST

printer demo-1 disabled since Sun 26 Sep 2010 12:38:10 PM BST -

Paused

printer demo-2 is idle. enabled since Sun 26 Sep 2010 12:34:53 PM BST

demo-1-5 root 1024 Sun 26 Sep 2010 12:39:30 PM BST


# lpstat

demo-1-5 root 1024 Sun 26 Sep 2010 12:39:30 PM BST


cupsenable 和 cupsdisable

這些命令用於啟用和停用指定的印表機佇列。cupsdisable 停止從佇列中獲取作業併發送到印表機。它不會阻止新的作業傳送到佇列。cupsenable 重新啟動佇列的服務。


accept 和 reject

這些命令用於啟用和停用指定印表機佇列的填充。在下面的示例中,我們使用 reject 停用 demo-1 佇列,然後嘗試向它列印檔案。然後我們重新啟用印表機,併成功將作業傳送到佇列

# reject demo-1

# lpr -Pdemo-1 scsconfig.log

lpr: Destination "demo-1" is not accepting jobs.


# accept demo-1

# lpr -Pdemo-1 scsconfig.log


lpadmin

lpadmin 命令對 CUPS 印表機執行各種管理操作。例如,它可以用於設定預設印表機。在下面顯示的命令序列中,最初沒有設定預設目標。執行 lpadmin 後,我們可以透過使用 lpr 列印到預設印表機,而無需指定印表機名稱

# lpr install.log

lpr: Error - no default destination available.


# lpadmin -d demo-1

# lpr install.log

lpadmin 也可以用於刪除 CUPS 印表機。在下面的示例中,我們首先列出可用的佇列,然後使用 lpadmin 刪除其中一個,然後再次列出佇列

# lpstat -a

demo-1 accepting requests since Sun 26 Sep 2010 12:38:10 PM BST

demo-2 accepting requests since Sun 26 Sep 2010 12:34:53 PM BST


# lpadmin -x demo-1


# lpstat -a

demo-2 accepting requests since Sun 26 Sep 2010 12:34:53 PM BST



以下是已使用檔案、術語和實用程式的部分列表

  • CUPS 配置檔案、工具和實用程式
  • /etc/cups
  • lpd 傳統介面 (lpr, lprm, lpq)


上一章 | 下一章

華夏公益教科書