Cups

杯子列印機列印原始後記

  • July 17, 2019

我有一台 OKI B430d 列印機,它通過 USB 連接到 Odroid C2(類似於 Raspberry Pi 的單板電腦)。Odroid 執行帶有 cups 伺服器的 Arch Linux Arm,因此本地網路中的每個設備都可以使用列印機。列印機配置為 RAW 列印機。

我的台式電腦也執行帶有 cups 實例的 Arch Linux。這個 cups 實例通過 ipp 連接到 Odroid,並且還有列印機的 ppd 文件。

現在我開始注意到大約 8 個月前的問題:有時列印機會列印一個空白頁,其中僅包含

--------------------------

或者

.0 0
   %-------------------------------------------------

或者

source 1.0 0
            %-------------------------------------------------

從與我不同的 PC 列印時也會出現此問題(但也在 Arch Linux 上執行 cups)。

昨天我又列印了一些 PDF,這次列印機在 3 個作業前列印了一個包含以下內容的空白頁:

OKI_Driver_Procedure_Patch_Resource 1.0 0
                                        %------------------------------------

終於有東西要搜尋了!我找到了一個包含類似行的 PPD 文件,因此我在我用於列印機的 PPD 文件中搜尋了該行,並在第 108 行找到了它:https ://www.oki.com/eu/printing/support/drivers- and-utilities/?id=46262901FZ01

今天,我在為兩個 cups 實例啟用調試日誌記錄後列印了一個測試 PDF 。我在這裡粘貼了調試日誌:https ://gist.github.com/jkhsjdhjs/aab53920040f62b43c878c74a61860ea

我在本地為列印機更改的一件事是lpadmin -p <printer> -o pdftops-renderer-default=pdftops. 沒有它就行不通,但我認為這不是原因。

如果我可以提供更多資訊,請告訴我。提前致謝。


編輯:所以我將列印機直接連接到我的電腦,同樣的問題。

然後我使用相同的 PPD 創建了一個測試列印隊列,但將 postscript 輸出列印到文件中。我注意到我懷疑來自 PPD 文件的輸出也在發送到列印機的 postscript 文件中:

%%BeginResource: OKI_Driver_Procedure_Patch_Resource 1.0 0
%-------------------------------------------------
%% OKI Driver Procedure ver 1.0
%%    Date: Dec. 27, 2005  Edt: 03
%-------------------------------------------------

/OK@setpagedevice_sadj where {pop}{
/OK@setpagedevice_sadj /setpagedevice load def
/OK@PageDevice_Install_proc currentpagedevice /Install get def
<< /Install { mark currentstrokeadjust OK@PageDevice_Install_proc setstrokeadjust cleartomark } >> setpagedevice
}ifelse

因此,出於某種原因,列印機有時無法正確解釋 PostScript。

問題可能是,儘管 PPD 文件是正確的,但列印機無法解釋由 ghostscript 生成的 PostScript。

由於製造商為 Windows 提供了 PCL 驅動程序,我嘗試將列印機配置為杯中的通用 PCL 列印機,效果更好!

引用自:https://unix.stackexchange.com/questions/530326