我使用的是 arch linux 内核 5.7.2-arch1-1。所有软件都是最新的。
我正在尝试使用实用程序从命令行设置 Laserjet 2200 打印机lpadmin
。
虽然我可以使用system-config-printer
GUI 实用程序来设置打印机以使其正常工作,但我更喜欢能够从命令行执行此操作,因为它更便携。当我使用 GUI 方法进行设置时,工作打印机会提供有关工作驱动程序的一些信息。该make and model
字段填充为HP LaserJet 2200 - CUPS+Gutenprint v5.3.3
.
能够在命令行上复制此设置将是理想的选择。我简要浏览了 Gutenprint 网站和他们拥有的 pdf 文档,其中似乎没有我可以看到的设置信息。
终端接受以下打印机设置命令,但新设置的打印机接受打印作业但无法打印:
lpadmin -p "hp_laserjet_2200" -d "hp_laserjet_2200" -o printer-is-shared=false -e -i ~/script_PRINTER_CUPS_config_file/hp-laserjet-2200.ppd -v socket://192.168.1.240:9100
我认为这个命令应该有效,问题出在.ppd
文件上,尽管我确信我.ppd
多年前在同一型号的打印机上使用过这个相同的文件。
我看不到的 GUI 应用程序正在访问什么?
我是否需要多个曾经工作过的 ppd 文件?
我在哪里可以获得更新的 ppd 文件(搜索没有发现任何结果)?
从命令行设置该激光打印机的方法是什么?
我确信这只是一个驱动程序问题。我已经做了很多谷歌搜索,但答案还不清楚。我已经安装了hplip
它,我认为它有一个图形用户界面,但正如我所说,我想完全在命令行上完成此操作。
答案1
好的,这就是对我有用的方法,一步一步分解。
可能还有其他更简单的方法可以将您的打印机设置为 Linux 中的单行打印机。
- 如果尚未安装,请安装 gutenprint 和 hplib 驱动程序软件。这是我使用的代码。
package_list=( gutenprint hplip ) for i in "${package_list[@]}" do if [ "$(echo $sudo_password | sudo -S pacman -Qi | grep -m 1 -oE $i)" = "$i" ]; then echo "$i is already installed, no need to do anything"; else echo $sudo password | sudo -S pacman -S $i --noconfirm --needed fi done
Run the lpinfo
command to search for the drivers on your system. In my case I have an HP LaserJet 2200 printer, so I greped for it as follows
lpinfo -m | grep 2200 | grep LaserJet
You can use your printer make and model with this command, it worked for me
lpinfo --make-and-model "HP LaserJet 2200" -m
The output will be something like this gutenprint.5.3://hp-lj_2200/expert HP LaserJet 2200 - CUPS+Gutenprint v5.3.3 lsb/usr/HP/hp-laserjet_2200-ps.ppd.gz HP LaserJet 2200 Postscript lsb/usr/HP/hp-laserjet_2200_series-ps.ppd.gz HP LaserJet 2200 Postscript drv:///hp/hpcups.drv/hp-laserjet_2200_series.ppd HP LaserJet 2200 Series, hpcups 3.20.5 lsb/usr/HP/hp-laserjet_2200_series.ppd.gz HP LaserJet 2200 Series, hpcups 3.20.5 everywhere IPP Everywhere
Select an appropriate drv
线。我选了这个drv:///hp/hpcups.drv/hp-laserjet_2200_series.ppd
然后在下面的打印机设置行中使用它
lpadmin -p "HP_LaserJet_2200_LOCAL"
-D "HP_LaserJet_2200_LOCAL"
-L "走廊"
-o Printer-is-shared=false
-E
-m drv:///hp/hpcups.drv/hp-laserjet_2200_series.ppd
-v 套接字:/ /192.168.1.240:9100
以下是每个标志的作用、术语定义:
- -p = 打印机名称
- -D = 打印机描述
- -L = 打印机位置
- -o 打印机共享=假。这会阻止其他人通过您的计算机使用打印机。
- -E = 启用打印机
- -m = 驱动程序/ppd 位置
- -v = uri 套接字
如果您有几台打印机并且希望这样做,请将您的打印机设置为默认值
lpadmin -d HP_LaserJet_2200_LOCAL