崔劍鈞

DeepinLinux系統內置的打印管理器能夠發現Canon-LBP 2900+打印機,并自動將其識別為Canon-LBP3000(在Linux中,LBP 2900+使用的是LBP 3000的驅動)(圖1),Deepin官方也專門為Canon CAPT系列打印機提供了安裝腳本,但無論是自動配置的打印機還是通過腳本安裝的打印機,都不能正常使用(圖2)。筆者通過查詢資料得知,適用于64位架構的Canon CAPT系列打印機驅動程序包括專有的閉源32位可執行捕獲篩選器(由pstocapt CUPS篩選器調用,用于將PostScript數據轉換為CAPT數據流),但一些必需的庫文件不會作為依賴項自動安裝。因此要讓Canon CAPT系列打印機正常工作,不但需要手動配置,還要安裝libc6和libpopt0等32位庫文件。找到了問題的癥結,解決起來就比較容易了。
先從佳能官網下載驅動(https://www.canon.com.cn/suppor ts/download/simsdetail/0100459603.html?mo de lI d=115 6&c hannel=2)。解壓后進入“linux-capt-drv-v271-uken /64-bit_Drive r/Debian”文件夾,在空白處點擊鼠標右鍵并打開終端窗口,依次輸入并執行下列的命令(每輸入一條命令均需回車確認,下同):
1.sudo apt install libglade2-0:amd64
2. sudo dpkg-icndrvcups-common_3.21-1_amd64.deb
3.sudo dpkg -icndrvcups-capt_ 2.71-1_amd64.deb
4.sudo apt install libpopt0:i386
5.sudo apt install zlib1g:i386 libxml2:i386libstdc++6:i386
6.sudo /usr/sbin / lpadmin -p LBP3000-m CNCUPSLBP3000CAPTK.ppd -v ccp://localhost:59787-E
7.sudo /usr/sbin/ccpdadmin -p LBP3000-o /dev/usb/lp0
8.sudo /etc/init.d/ccpd start
執行完上述的命令后,我們來設置ccpd后臺程序的自動啟動。首先以“root”身份打開“/etc/init.d/ccpd”,在第三行添加以下注釋:
### BEGIN INIT INFO
# Provides: c cpd
# R equired-Start: $ local_fs $ remote_fs $syslog $network $named
# Should-Start: $ ALL
# Required-Stop: $ syslog $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Star t Canon Printer Daemon for CUPS
### END INIT INFO
然后再輸入并執行“sudo systemctl enableccpd.service”命令即可。
安裝完驅動后,在終端窗口中輸入并執行“captstatusui -P LBP3000”,如果彈出“Readyto Print”的提示,說明打印機已經就緒,可以正常打印了(圖3)。
上述的方法也適合在Ubuntu、Debian等中安裝Canon CAPT系列打印機驅動。如果在這些系統中安裝完驅動后打印機仍然不能正常工作,一般是因為缺少必需的庫文件,可以執行“ldd /usr/bin/capt* | sort | uniq | grep "not found"”命令查找具體缺少哪個庫文件,安裝后即可解決。
對于Deepin、UOS等已經提供了Canon打印機驅動下載服務的Linux系統,還可以在線安裝驅動,比上述的方法更簡單。
打開終端窗口,依次執行下列的命令:
1.sudo apt install cndrvcups-capt
2.sudo apt install zlib1g:i386 libxml2:i386libstdc++6:i386
3.sudo /usr/sbin/lpadmin -p LBP30 0 0-m CNCUPSLBP3000CAPTK.ppd -v ccp://localhost:59787-E
4.sudo /usr/sbin/ccpdadmin -p LBP3000-o/dev/usb/lp0
5.sudo systemctl restart ccpd.service
6.sudo systemctl enable ccpd.service

Deepin Linux系統自帶的打印管理器并不監視打印機狀態,只要向打印機傳輸完數據,不管是否打印成功,都會顯示“XX文檔打印完成,請及時取走紙質文件”(圖4)。一旦打印機缺紙,既不會給出提示,也不會在加紙后恢復打印。因此,如果打印時出現缺紙的情況,打印機就會進入“假死”的狀態。為了解決這個問題,可以使用captstatusui來監視打印機狀態,并將其設置為自動啟動。打開終端窗口,輸入并執行“vim ~/.config/autostart/captstatusui.desktop”命令,新建一個名為“captstatusui.desktop”的文件,然后在其中輸入下面的內容,保存后重啟系統。
[Desktop Entry]
Comment=Statusmonitorfor Canon LBP3000
Exec=captstatusui-P LBP3000-e
Hidden=false
Name=captstatusui
Terminal=false
Type=Application
X-Deepin-Vendor=user-custom
這樣當打印機缺紙時,captstatusui就會彈出“Outof Paper”的提示(圖5)。加紙后,我們可以選擇繼續打印,也可以終止打印作業。