Return 使用 lpstat 的打印机队列名称(描述)- OS X

Return printer queue name (description) using lpstat - OS X

好吧,简而言之,我正在尝试从我的系统中 return 打印机列表以确定特定打印机是否存在,如果不存在,则自动设置该打印机。使用 lpstat 命令,具体为:

lpstat -a | awk '{print }'

我可以获得一个列表 returned 但打印机名称与我的队列名称不匹配,这正是我真正需要的。我的问题是是否有办法 return 队列名称而不是实际的打印机名称?我在 OS X 上 运行将其作为 AppleScript 中的 shell 脚本。

当我 运行 命令时,我得到一个打印机名称 returned 作为 "EPSON_TM_T88V" 而不是我的打印机队列名称 "Printer 1"

上次我查看这个,Apple 使用了 Cups 打印机系统,您的系统上应该安装了它。

首先,您应该在终端 window 中执行 cupsctl WebInterface=yes(系统会提示您输入管理员密码。

然后你可以尝试访问地址(http://localhost:631/printers/?)这是一个你应该可以curl输出的页面,这样你就可以从队列名称中提取打印机名称.

这在视觉上对我有用,也许你也设置了打印机共享等。

我知道的第二个解决方案可能会有所帮助,Stefan Klieme 编写了一个不露面的应用程序,用于侦听名为 (Bonjour Events) 的 Bonjour Events,您应该可以下载它,并且当您下载时,您应该将应用程序拖放到 AppleScript 编辑器的库 window 上以查看字典。但是,我认为要使 Bonjour Events 正常工作,您的打印机必须启动并且 运行,而 Cups 方法在打印机离线时有效。

遗憾的是,我不记得是我自己设置了 Cups,还是它自己设置了,通过与“系统首选项”面板中的“打印机设置”交互。

不过,我希望这对您有所帮助。