跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 管理指南 / 系統 / 印表機操作
適用範圍 SUSE Linux Enterprise Server 15 SP3

20 印表機操作

SUSE® Linux Enterprise Server 支援以多種類型的印表機進行列印,包括遠端網路印表機。您可以手動設定印表機,也可以使用 YaST 進行設定。如需組態設定指示,請參閱第 20.3 節 「設定印表機」。圖形和指令行公用程式都可用來啟動和管理列印工作。如果您的印表機無法如預期般運作,請參閱第 20.8 節 「疑難排解」

CUPS (Common Unix Printing System,通用 UNIX 列印系統) 是 SUSE Linux Enterprise Server 中的標準列印系統。

印表機可藉由介面 (例如 USB 或網路) 和印表機語言加以區分。在購買印表機時,請確認硬體可支援印表機的介面,並且印表機採用適合的語言。印表機可根據下列三種印表機語言來分類:

PostScript 印表機

Linux 和 Unix 內部列印系統以 PostScript 印表機語言產生和處理大部分列印工作。如果印表機可直接處理 PostScript 文件,且不需轉換到列印系統中其他階段,潛在錯誤來源的次數便會減少。

目前,PostScript 正逐漸被 PDF 取代,後者成為標準列印工作格式。可直接列印 PDF (而不是僅僅是 PostScript) 的 PostScript+PDF 印表機已面世。對於傳統的 PostScript 印表機,需要在列印工作流程中將 PDF 轉換為 PostScript。

標準印表機 (PCL 和 ESC/P 等語言)

如果已知印表機語言,列印系統可以藉由 Ghostscript 將 PostScript 工作轉換為對應的印表機語言。此處理階段稱為解釋。最知名的語言是大多數 HP 印表機與類似產品使用的 PCL,以及 Epson 印表機使用的 ESC/P。這些印表機語言通常都受 Linux 支援,並可產生不錯的列印效果。Linux 可能無法提供一些特殊的印表機功能。除了 HP 和 Epson 之外,目前尚沒有其他印表機廠商開發 Linux 驅動程式,並透過開放原始碼授權將這些驅動程式提供給 Linux 套裝作業系統供應商。

專屬印表機 (也稱為 GDI 印表機)

這些印表機並不支援任何一般的印表機語言。它們使用自己的印表機語言,而當有新型號發行,那些語言也可能有所變更。這些印表機通常指有 Windows 驅動程式。如需詳細資訊,請參閱第 20.8.1 節 「不支援標準印表機語言的印表機」

在購買新印表機之前,請參考下列來源以檢查您想要購買的印表機之支援性:

http://www.openprinting.org/printers

OpenPrinting 首頁,含印表機資料庫。資料庫會顯示最新的 Linux 支援狀態。但是,Linux 版本僅可與生產期間可用的驅動程式整合。因此,目前被評選為完全支援的印表機,在最新的 SUSE Linux Enterprise Server 版本發行之後,可能將失去此稱號。因此,資料庫不一定能指出正確狀態,而僅提供估計值。

http://pages.cs.wisc.edu/~ghost/

Ghostscript 網頁。

/usr/share/doc/packages/ghostscript/catalog.devices

內建 Ghostscript 驅動程式清單

20.1 CUPS 工作流程

使用者會建立列印工作。列印工作由要列印的資料和有關線上同時週邊作業器的資訊組成。其中包括印表機的名稱或列印佇列的名稱,還有可能包括有關過濾器 (例如印表機特定的選項) 的資訊。

每一台印表機都至少有一個專屬的列印佇列。線上同時週邊作業器會在佇列中列印工作,直到所需的印表機已準備好接收資料。當印表機備妥時,線上同時週邊作業器會透過過濾器與後端,傳送資料至印表機。

過濾器會將列印應用程式所產生的資料 (通常為 PostScript 或 PDF,但也會有 ASCII、JPEG 等) 轉換為印表機特定資料 (PostScript、PCL、ESC/P 等)。印表機的特性描述在 PPD 檔案中。PPD 檔案含有印表機特定選項以及在印表機上啟用它們所需的參數。過濾器系統可確保啟用使用者所選取的選項。

如果您是使用 PostScript 印表機,過濾器系統會將資料轉換為印表機特定的 PostScript。這並不需要印表機驅動程式。如果您使用非 PostScript 印表機,過濾器系統會將資料轉換為印表機特定資料。這將需要印表機適用的印表機驅動程式。後端會從過濾器接收印表機特定的資料,然後將它傳送至印表機。

20.2 連接印表機的方法和通訊協定

有各種方法可將印表機連接到系統。CUPS 的組態無法辨識本地印表機與透過網路連接到系統的印表機。如需有關印表機連線的詳細資訊,請參閱 https://en.opensuse.org/SDB:CUPS_in_a_Nutshell 上的文章 CUPS in a Nutshell (CUPS 概述)。

IBM Z CUPS 不支援 z/VM 所提供且本地連接到 IBM Z 大型主機的印表機和類似裝置。在這些平台上,僅可透過網路列印。網路印表機的電纜必須根據印表機廠商的說明來安裝。

警告
警告:變更執行中系統的電纜連接

在將印表機連接到機器時,請不要忘記只有 USB 裝置可在操作中插上和拔除。若要避免損壞您的系統或印表機,請先關機再變更任何非 USB 的連接。

20.3 安裝軟體

PPD (PostScript 印表機描述) 為描述內容 (如解析度) 和選項 (如雙面列印模組的可用性) 的電腦語言。這些描述是使用 CUPS 中各種印表機選項所需。沒有 PPD 檔案,列印資料會被轉送給處於 raw 狀態的印表機,這通常不是想要的狀態。

若要設定 PostScript 印表機,最好的方法是取得適當的 PPD 檔。manufacturer-PPDsOpenPrintingPPDs-postscript 套件中提供了許多 PPD 檔案。請參閱第 20.7.3 節 「各個套件中的 PPD 檔案」第 20.8.2 節 「PostScript 印表機沒有合適的可用 PPD 檔案」

新的 PPD 檔案可儲存在 /usr/share/cups/model/ 目錄中,或依照第 20.3.1.1 節 「使用 YaST 新增驅動程式」中所述透過 YaST 新增到列印系統中。之後,便可在印表機設定期間選取該 PPD 檔案。

如果印表機廠商要求您安裝整個軟體套件,請謹慎處理。這種安裝類型可能導致 SUSE Linux Enterprise Server 提供的支援失效。另外,列印指令可能會以不同的方式運作,並且系統可能不再能夠對其他廠商的裝置定址。基於此原因,不建議安裝廠商軟體。

20.4 網路印表機

網路印表機可支援各種通訊協定,有些甚至可同時支援。雖然大部分受支援的通訊協定已標準化,但有一些廠商還是會修改標準。這樣,廠商只會針對一部分作業系統提供驅動程式。不幸地,他們很少提供 Linux 驅動程式。目前的情況是,您無法以每一個通訊協定均能在 Linux 中順暢執行的假設來行事。因此,您可能需要試驗各種選項以實現功能性組態。

CUPS 支援 socketLPDIPPsmb 通訊協定。

socket

socket 指將純文字列印資料直接傳送到 TCP 通訊端的連接。經常使用的幾個 socket 連接埠號碼為 910035。裝置 URI (資源識別字串) 的語法為 socket://IP.OF.THE.PRINTER:PORT,例如 socket://192.168.2.202:9100/

LPD (行列式印表機精靈,Line Printer Daemon)

RFC 1179 中有對 LPD 通訊協定的詳細介紹。在此通訊協定下,部分工作相關資料 (如列印佇列的 ID) 會先於實際列印的資料傳送。因此,在設定 LPD 通訊協定時,必須指定列印佇列。雖然各家印表機廠商不同,但其實作方式足以靈活地接受任何名稱做為列印佇列。如有需要,印表機手冊應該會指出要使用的名稱。通常使用 LPT、LPT1、LP1 或類似名稱。LPD 服務的連接埠號碼為 515。裝置 URI 的範例為 lpd://192.168.2.202/LPT1

IPP (網際網路列印通訊協定,Internet printing protocol)

IPP 基於 HTTP 通訊協定。有了 IPP,可比使用其他通訊協定傳輸更多工作相關資料。CUPS 使用 IPP 進行內部資料傳輸。正確設定 IPP 必須要有列印佇列的名稱。IPP 的連接埠號碼為 631。裝置 URI 的範例為 ipp://192.168.2.202/psipp://192.168.2.202/printers/ps

SMB (Windows 共用)

CUPS 也支援在連接到 Windows 共用的印表機上列印。此用途使用的通訊協定為 SMB。SMB 使用的埠號有 137138139。裝置 URI 的範例為 smb://user:password@workgroup/smb.example.com/printersmb://user:password@smb.example.com/printersmb://smb.example.com/printer

必須在設定組態之前決定印表機支援的通訊協定。如果廠商未提供所需資訊,可使用 nmap 指令 (隨附於 nmap 套件) 來確定通訊協定。nmap 會檢查主機上是否有開啟的連接埠。例如:

tux > nmap -p 35,137-139,515,631,9100-10000 IP.OF.THE.PRINTER

20.5 使用指令行工具設定 CUPS

CUPS 可透過 lpinfolpadminlpoptions 等指令行工具來設定。您需要一個裝置 URI,其中包含後端 (如 USB 和參數)。若要判斷系統中的裝置 URI 是否有效,請使用以下 lpinfo -v | grep ":/" 指令:

tux > sudo lpinfo -v | grep ":/"
direct usb://ACME/FunPrinter%20XL
network socket://192.168.2.253

使用 lpadmin,CUPS 伺服器管理員可新增、移除或管理列印佇列。若要新增印表機佇列,請使用下列語法:

tux > sudo lpadmin -p QUEUE -v DEVICE-URI -P PPD-FILE -E

裝置 (-v) 便會以 QUEUE (-p) 的形式供您使用,並使用指定的 PPD 檔案 (-P)。這表示如果要手動設定印表機,您必須知道 PPD 檔案以及裝置 URI。

請勿使用 -E 做為第一選項。對於所有 CUPS 指令,第一個引數 -E 設定使用加密連接。若要啟用印表機,必須依照下列範例所示使用 -E

tux > sudo lpadmin -p ps -v usb://ACME/FunPrinter%20XL -P \
/usr/share/cups/model/Postscript.ppd.gz -E

下列範例是設定網路印表機:

tux > sudo lpadmin -p ps -v socket://192.168.2.202:9100/ -P \
/usr/share/cups/model/Postscript-level1.ppd.gz -E

如需 lpadmin 的更多選項,請參閱 lpadmin(8) 的 man 頁面。

在印表機設定期間,某些選項會設成預設。可針對每一個列印工作修改這些選項 (視所使用的列印工具而定)。也可以使用 YaST 變更這些預設選項。使用指令行工具,可依下列方式設定預設選項:

  1. 首先,列出所有選項:

    tux > sudo lpoptions -p QUEUE -l

    範例:

    Resolution/Output Resolution: 150dpi *300dpi 600dpi

    啟用的預設選項前面會加上星號 (*),用以識別。

  2. lpadmin 變更選項:

    tux > sudo lpadmin -p QUEUE -o Resolution=600dpi
  3. 檢查新設定:

    tux > sudo lpoptions -p QUEUE -l
    
    Resolution/Output Resolution: 150dpi 300dpi *600dpi

當一般使用者執行 lpoptions 時,設定會寫入 ~/.cups/lpoptions。然而,root 設定會會寫至 /etc/cups/lpoptions

20.6 從指令行列印

若要從指令行列印,請輸入 lp -d QUEUENAME FILENAME,並以相應的名稱取代 QUEUENAMEFILENAME

有些應用程式有賴 lp 指令來進行列印。在此情況下,請在應用程式的列印對話方塊中輸入正確的指令 (通常無需指定 FILENAME),例如 lp -d QUEUENAME

20.7 SUSE Linux Enterprise Server 中的特殊功能

部分 CUPS 功能已針對 SUSE Linux Enterprise Server 做出調整。此處涵蓋部份最重要的變更。

20.7.1 CUPS 和防火牆

完成 SUSE Linux Enterprise Server 的預設安裝後,firewalld 將處於使用中狀態,並且網路介面設定為位於 public 區域中,這會阻擋內送流量。

firewalld 處於使用中狀態時,您可能需要將 firewalld 設定為允許用戶端瀏覽網路印表機,方法是允許 mdnsipp 通過內部網路區域。公用區域應該永不公開印表機佇列。

(Section 23.4, “firewalld中和 https://en.opensuse.org/SDB:CUPS_and_SANE_Firewall_settings 上提供了有關 firewalld 組態的詳細資訊。)

20.7.1.1 CUPS 用戶端

CUPS 用戶端通常在位於防火牆之後的受信任網路環境中的一般工作站上執行。在此情況下,建議將網路介面設定為處於「內部區域」中,以便可從該網路中存取工作站。

20.7.1.2 CUPS 伺服器

如果 CUPS 伺服器位於受防火牆保護的受信任網路環境中,則應將網路介面設定為處於防火牆的「內部區域」中。建議不要在不可信網路環境中設定 CUPS 伺服器,除非您確定該伺服器受到特殊防火牆規則和 CUPS 組態中的安全設定的保護。

20.7.2 瀏覽網路印表機

CUPS 伺服器會定期宣告透過網路共用之印表機的可用性及狀態資訊。用戶端可以存取此資訊,以便在列印對話方塊之類的地方顯示可用印表機清單。這稱為「瀏覽」

CUPS 伺服器透過傳統的 CUPS 瀏覽協定或 Bonjour/DNS-SD 通告其在網路上的列印佇列。為了能夠瀏覽網路列印佇列,需要在透過 CUPS 伺服器列印的所有用戶端上執行 cups-browsed 服務。預設不會啟動 cups-browsed。若要為使用中的工作階段啟動該服務,請使用 sudo systemctl start cups-browsed。若要確保它在開機後會自動啟動,請在所有用戶端上透過 sudo systemctl enable cups-browsed 予以啟用。

如果在啟動 cups-browsed 後瀏覽無法運作,則表明 CUPS 伺服器可能是透過 Bonjour/DNS-SD 通告網路列印佇列。在這種情況下,您需要另外安裝套件 avahi,然後在所有用戶端上透過 sudo systemctl start avahi-daemon 啟動相關聯的服務。

如需如何透過 firewalld 允許瀏覽印表機的資訊,請參閱第 20.7.1 節 「CUPS 和防火牆」

20.7.3 各個套件中的 PPD 檔案

YaST 印表機組態使用安裝於 /usr/share/cups/model/ 中的 PPD 檔案來設定 CUPS 的佇列。為了尋找適合印表機型號的 PPD 檔案,YaST 會對照硬體偵測期間確定的廠商和型號比較所有 PPD 檔案內的廠商和型號。基於此原因,YaST 印表機組態將從 PPD 檔案中取出的廠商和型號資訊產生資料庫。

僅使用 PPD 檔案且不使用其他資訊來源的組態,好處在於 /usr/share/cups/model/ 中的 PPD 檔案可自由修改。例如,如果您擁有 PostScript 印表機,可直接將 PPD 檔案複製到 /usr/share/cups/model (如果這些檔案尚不存在於 manufacturer-PPDsOpenPrintingPPDs-postscript 套件中),以取得印表機的最佳組態。

其他 PPD 檔案由下列套件提供:

  • gutenprint:Gutenprint 驅動程式及其相符的 PPD

  • splix:SpliX 驅動程式及其相符的 PPD

  • OpenPrintingPPDs-ghostscript:Ghostscript 內建驅動程式的 PPD

  • OpenPrintingPPDs-hpijs:適用於非 HP 印表機之 HPIJS 驅動程式的 PPD

20.8 疑難排解

下列章節涵蓋印表機硬體和軟體最常遭遇的問題,以及解決或避免這些問題的方式。涵蓋的主題包括 GDI 印表機、PPD 檔案和連接埠組態,並討論了一般網路印表機問題、列印瑕疵、佇列處理。

20.8.1 不支援標準印表機語言的印表機

這些印表機不支援任何的一般印表機語言,且只有特殊的專屬控制序列才能處理。因此它們僅可在製造廠商針對其開發驅動程式的作業系統版本上使用。GDI 是 Microsoft* 為繪圖裝置所開發的程式設計介面。製造廠商通常只提供 Windows 適用的驅動程式,而由於 Windows 驅動程式使用 GDI 介面,因此這些印表機也稱為 GDI 印表機。問題實際並不是出在程式設計介面上,而是因這些印表機只能透過相應印表機型號的專用印表機語言來定址所造成。

部分 GDI 印表機可切換到 GDI 模式或某種標準印表機語言來操作。如果手邊有印表機手冊,可以參閱其中內容。某些型號需要特殊的 Windows 軟體才能進行切換 (請注意,從 Windows 列印時,Windows 印表機驅動程式可能都會將印表機切換回 GDI 模式)。對於其他 GDI 印表機,則可以使用標準印表機語言的延伸模組。

部分製造廠商提供其 印表機的專用驅動程式。專用印表機驅動程式的壞處在於,其不保證可與安裝的列印系統配合使用,也不保證適用於各種硬體平台。相反的,支援標準印表機語言的印表機不需依賴特殊的列印系統版本或特殊硬體平台。

與其費時費力研究如何讓專用 Linux 驅動程式運作,購買一台支援標準印表機語言 (最好是 PostScript) 的印表機可能更符合成本效益。這樣可一次解決所有驅動程式問題、減少安裝與設定特殊驅動程式軟體以及取得列印系統中新開發所需之驅動程式更新的需要。

20.8.2 PostScript 印表機沒有合適的可用 PPD 檔案

如果 manufacturer-PPDsOpenPrintingPPDs-postscript 套件不包含適用於 PostScript 印表機的 PPD 檔案,通常可以使用印表機廠商提供的驅動程式 CD 中的 PPD 檔案,或從印表機廠商的網頁下載適合的 PPD 檔案。

如果 PPD 檔案以壓縮保存檔 (.zip) 或自解壓縮保存檔 (.exe) 形式提供,請以 unzip 解壓縮。首先,檢閱 PPD 檔案的授權條款。然後,請使用 cupstestppd 公用程式來檢查 PPD fi檔案是否符合 Adobe PostScript Printer Description File Format Specification, version 4.3 (Adobe PostScript 印表機說明檔案格式規格,版本 4.3)。如果公用程式傳回 FAIL,就表示 PPD 檔案非常嚴重,可能造成重大問題。應該要減少 cupstestppd 所報告的問題點。若有需要,請詢問印表機製造廠商以取得適合的 PPD 檔案。

20.8.3 網路印表機連接

確定網路問題

將印表機直接連接到電腦。基於測試因素,請將印表機設為本地印表機。如果可以,問題便與網路相關。

檢查 TCP/IP 網路

TCP/IP 網路和名稱解析必須可作用。

檢查遠端 lpd

使用以下指令測試是否可以與 Host 上的 lpd (連接埠 515) 建立 TCP 連接:

tux > netcat -z HOST 515 && echo ok || echo failed

如果無法建立到 lpd 的連接,可能是 lpd 不在作用中,或是有基本網路問題。

如果相應的 lpd 處於使用中狀態,並且主機接受查詢,請以 root 身分執行以下指令,以查詢遠端 HOSTQUEUE 的狀態報告:

root # echo -e "\004queue" \
| netcat -w 2 -p 722 HOST 515

如果 lpd 沒有回應,它可能不在作用中,或是有基本網路問題。如果 lpd 有回應,回應應該會顯示主機上的佇列為何無法列印。如果您收到類似範例 20.1 「來自 lpd 的錯誤訊息」 中的回應,問題可能是由遠端 lpd 所造成的。

範例 20.1︰ 來自 lpd 的錯誤訊息
lpd: your host does not have line printer access
lpd: queue does not exist
printer: spooling disabled
printer: printing disabled
檢查遠端 cupsd

CUPS 網路伺服器預設每 30 秒在 UDP 連接埠 631 上廣播一次其佇列。因而可以使用下面的指令來測試網路中是否有廣播 CUPS 網路伺服器。請確定在執行指令之前停止本地 CUPS 精靈。

tux > netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID

如果廣播 CUPS 網路伺服器存在,輸出將如 範例 20.2 「來自 CUPS 網路伺服器的廣播」 中所示。

範例 20.2︰ 來自 CUPS 網路伺服器的廣播
ipp://192.168.2.202:631/printers/queue

IBM Z 請注意,IBM Z 乙太網路裝置預設不接收廣播。

以下指令可用於測試是否可以與 HOST 上的 cupsd (連接埠 631) 建立 TCP 連接:

tux > netcat -z HOST 631 && echo ok || echo failed

如果無法建立到 cupsd 的連線,可能是 cupsd 不在作用中,或是有基本網路問題。lpstat -h HOST -l -t 會傳回 HOST 上所有佇列的狀態報告 (可能很長),前提是相應的 cupsd 處於作用中狀態並且主機接受查詢。

下面的指令可用於測試 HOST 上的 QUEUE 是否接受由單一換行字元組成的列印工作。應該不會印出任何資料。可能會退出一張空白頁。

tux > echo -en "\r" \
| lp -d queue -h HOST
對網路印表機或列印伺服器機器進行疑難排解

有時,在列印伺服器機器中執行的線上同時週邊作業器在處理多項列印工作時會產生問題。這是列印伺服器機器中的線上同時週邊作業器造成的,目前尚無法解決此問題。因應措施是,直接透過 TCP 通訊端對連接到列印伺服器機器的印表機進行定址,以繞過列印伺服器機器中的線上同時週邊作業器。請參閱第 20.4 節 「網路印表機」

如此,列印伺服器機器僅充當各種不同資料傳輸方式之間 (TCP/IP 網路和本地印表機連接) 的轉換器。若要使用此方法,您需要知道列印伺服器機器上的 TCP 連接埠。如果印表機連接到列印伺服器機器且已啟動,則通常可以在開啟列印伺服器機器電源一段時間後,使用 nmap 套件中的 nmap 公用程式確定此 TCP 連接埠。例如,nmap  IP-address 可能會傳送列印伺服器機器的以下輸出:

Port       State       Service
23/tcp     open        telnet
80/tcp     open        http
515/tcp    open        printer
631/tcp    open        cups
9100/tcp   open        jetdirect

此輸出表示,可以在連接埠 9100 上透過 TCP 通訊端對連接到列印伺服器機器的印表機定址。根據預設,nmap 僅會檢查 /usr/share/nmap/nmap-services 中所列出之一般熟知的幾個連接埠。若要檢查所有可能的連接埠,請使用指令 nmap -p  FROM_PORT-TO_PORT IP_ADDRESS。這可能會花費一些時間。如需詳細資訊,請參閱 nmap 的 man 頁面。

輸入以下指令

tux > echo -en "\rHello\r\f" | netcat -w 1 IP-address port
cat file | netcat -w 1 IP-address port

將字元字串或檔案直接傳送到對應連接埠以測試印表機是否可在此連接埠上定址。

20.8.4 列印成品有瑕疵但不顯示錯誤訊息

對列印系統而言,在 CUPS 後端完成資料至接收者 (印表機) 的資料傳輸時,列印工作便完成。如果接收者的進一步處理失敗 (例如,印表機無法列印印表機特定資料),列印系統並不知道。如果印表機無法列印印表機特定資料,請選取更適合印表機的 PPD 檔案。

20.8.5 停用的佇列

如果到接收者的資料傳輸在數次嘗試之後完全失敗,CUPS 後端 (如 USBsocket) 會向列印系統報告錯誤 (向 cupsd)。在報告資料傳輸失敗之前,允許失敗嘗試的次數,由後端決定。因為進一步的嘗試可能徒勞無功,cupsd 會停止對應佇列的列印。排除問題的起因之後,系統管理員必須以指令 cupsenable 重新啟動列印。

20.8.6 CUPS 瀏覽:刪除列印工作

如果 CUPS 網路伺服器透過瀏覽向用戶端主機廣播它的佇列,而且在用戶端主機上有適合的本地 cupsd 在作用中,用戶端 cupsd 會從應用程式接收列印工作,並將它們轉送給伺服器上的 cupsd。當伺服器上的 cupsd 接受列印工作時,系統會為其指定一個新工作號碼。因此,用戶端主機上的工作號碼和伺服器上的工作號碼不同。列印工作通常會立刻轉遞,所以無法以用戶端主機上的工作編號來刪除,因為用戶端 cupsd 將列印工作轉遞給伺服器 cupsd 後,便認為列印工作已完成。

若要刪除伺服器上的列印工作,請使用 lpstat -h cups.example.com -o 之類的指令來確定伺服器上的工作編號。此情況假設伺服器尚未完成該列印工作 (即尚未完全將它傳送到印表機)。以如下方式使用獲得的工作編號來刪除伺服器上的列印工作:

tux > cancel -h cups.example.com QUEUE-JOBNUMBER

20.8.7 不良列印工作和資料傳輸錯誤

如果您在列印過程中關閉印表機或電腦,列印工作將保留在佇列中。一旦電腦 (或印表機) 重新開啟,列印工作將繼續進行。必須以 cancel 將損毀的列印工作從佇列中移除。

如果列印工作損毀,或主機與印表機之間的通訊發生錯誤,印表機將無法正確處理資料,並列印出許多含有不明字元的紙張。若要修復該問題,請執行以下步驟:

  1. 若要停止列印,請從噴墨印表機取出所有紙張,或是打開雷射印表機的紙匣。高品質的印表機會有按鈕可取消目前的列印成品。

  2. 列印工作可能仍在佇列中,因為只有將工作完全傳送到印表機之後,才會移除。使用 lpstat -olpstat -h cups.example.com -o 檢查目前正在列印的佇列。使用 cancel QUEUE-JOBNUMBERcancel -h cups.example.com QUEUE-JOBNUMBER 刪除列印工作。

  3. 即使列印工作已從佇列刪除,部份資料可能仍會傳送到印表機。請檢查對應佇列的 CUPS 後端程序是否仍在執行中,並將它終止。

  4. 將印表機關閉一段時間以完全重設印表機。然後裝入紙張並開啟印表機電源。

20.8.8 CUPS 除錯

使用以下標準程序找出 CUPS 中的問題:

  1. 設定 /etc/cups/cupsd.conf 中的 LogLevel debug

  2. 停止 cupsd

  3. 移除 /var/log/cups/error_log* 以避免必須搜尋很大的記錄檔。

  4. 啟動 cupsd

  5. 重覆造成問題的動作。

  6. 檢查 /var/log/cups/error_log* 中的訊息以辨識問題的起因。

20.8.9 更多資訊

如需在 SUSE Linux Enterprise Server 上執行列印操作的詳細資訊,請參閱 https://en.opensuse.org/Portal:Printing 上的 openSUSE 支援資料庫。許多特定問題的解決方法在「SUSE 知識庫」(https://www.suse.com/support/) 中都有說明。請搜尋文字 CUPS 找到相關文章。