崔剑钧
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)。加纸后,我们可以选择继续打印,也可以终止打印作业。