note/cups-printer

Linux 下使用网络打印机

https://wiki.archlinux.org/index.php/CUPS#Network

https://wiki.archlinux.org/index.php/Avahi#Hostname_resolution

特别注意要按照 wiki 逐步操作,不然很容易乱。

CUPS 是 Linux 下主流的打印服务框架,安装 cups

Avahi(zeroconf)可用于查找本地网络中的打印机,安装 avahi。然后编辑 /etc/nsswitch.conf,将 hosts 那一行改为:

hosts: files mymachines myhostname mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

然后启动服务:

systemctl start avahi-deamon.service
systemctl restart org.cups.cupsd.service

打印机驱动

Foomatic 提供了很多打印机驱动(pdd 文件,又称 model),首先安装 foomatic-db-engine,然后安装 foomatic-dbfoomatic-db-ppdsfoomatic-db-nonfree-ppds。惠普打印机有特殊的驱动,安装 hplip

获取驱动路径

lpinfo -m | less

在里面找到你的打印机型号,比如我找到了:

drv:///hp/hpcups.drv/hp-deskjet_2600_series.ppd HP Deskjet 2600 Series, hpcups 3.18.6
lsb/usr/HP/hp-deskjet_2600_series.ppd.gz HP Deskjet 2600 Series, hpcups 3.18.6

那么驱动的路径就是 drv:///hp/hpcups.drv/hp-deskjet_2600_series.ppd

获取打印机 URI

sudo lpinfo -v

输出:

...
network socket://192.168.1.104:9100

那么 socket://192.168.1.104:9100 就是打印机的 URI。

添加打印机

sudo lpadmin -p <给打印机取个名> -E -v <URI> -m <驱动路径>

打开 Chromium,ctrl p 选择打印机就可以打印了。可以设定默认打印机,使用 lp 命令打印文件。

About Me