通过远程 CUPS 服务器打印,但只显示打印机的一个子集

jdm*_*jdm 5 gnome printing cups ubuntu

我想从我的 Ubuntu 笔记本电脑(业力)打印到一些网络打印机。我们的组织使用带有数百台打印机的 CUPS 服务器。我知道我能做的是:

CUPS_SERVER=printers.company.com acroread document.pdf
Run Code Online (Sandbox Code Playgroud)

然后 Adob​​e Reader 会显示所有可用的打印机以供选择。然而,显示大列表需要几分钟,这真的很烦人。(这里的台式电脑也受此影响。)

另一种选择是添加一个新的打印机,地址如下

ipp://printers.company.com/printer/bldg1_hp8150
Run Code Online (Sandbox Code Playgroud)

(到 Ubuntu 打印机配置 = 本地 CUPS 服务器)。但是,它要我找司机。我不想/不能总是指定驱动程序,因为某些打印机没有出现在列表中。我想让远程 CUPS 服务器处理驱动程序部分(就像我设置 CUPS_SERVER 时所做的那样),并且在我这边不再做任何预处理/“驱动程序”。

理想的情况是,如果我能以某种方式将远程打印机列表添加到我的本地 cups 服务器,并应用过滤器,以便它只显示打印机 a bldg1_*。此功能在 KDE3.? 中可用,但我在 Ubuntu/Gnome 中找不到类似的功能。有什么建议?

小智 6

嗯,我能想到的有两件事。

转到http://localhost:631/admin/并选中“显示其他系统共享的打印机”框。然后,当您连接到他们的网络时,您将自动看到所有打印机。

挺不错的

另一种选择是手动将打印机添加到杯子中。您可以从命令行添加它们,因此并没有您想象的那么痛苦,您甚至可以将它们作为单行添加。

要添加一台打印机并启用它以供使用,请运行以下命令:

lpadmin -p itcolor -v ipp://printserver/printers/itcolor

cupsenable itcolor

cupsaccept itcolor
Run Code Online (Sandbox Code Playgroud)

假设您想添加服务器printserver.company.com上接受作业的所有打印机,并且谁的名字以marketing开头。

for each in $(lpstat -h printserver.company.com:631 -a | grep "accepting" | grep -E "^marketing" | cut -d " " -f 1)
do lpadmin -p $each -v ipp://printserver.company.com/printers/$each
cupsenable $each
cupsaccept $each
done
Run Code Online (Sandbox Code Playgroud)