![通过命令行获取特定打印机的驱动程序位置](https://linux22.com/image/40360/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%8E%B7%E5%8F%96%E7%89%B9%E5%AE%9A%E6%89%93%E5%8D%B0%E6%9C%BA%E7%9A%84%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E4%BD%8D%E7%BD%AE.png)
这是在 OS X 10.8 上。我希望能够任意提取特定打印机的配置,以便我可以在包创建脚本中使用它。该脚本(不是我的)使用
/usr/sbin/lpadmin -p "$printername" -L "$location" -D "$gui_display_name" -v "$address" \
-P "$driver_ppd"
设置新打印机。
如果我$printername
在我从中提取的系统上提供,我可以$location
从 获取 $address lpoptions
。但我似乎找不到一个可以给我的命令$driver_ppd
(其形式为/Library/Printers/PPDs/Contents/Resources/HP LaserJet P4010_P4510 Series.gz
)。
我知道它可供系统使用,因为我可以在该打印机下的 CUPS Web 界面中看到它。
答案1
在我的系统(Debian wheezy)上,PPD 文件存储为/etc/cups/ppd/printername.ppd
.假设类似的方案适用于其他系统,您实际上只需要打印机名称,您可以从 获得该名称/etc/cups/printers.conf
。该文件似乎是 XML 格式,因此您可以使用一些合适的 XML 解析工具。