Macos 使用lpstat-OS X返回打印机队列名称(说明)

Macos 使用lpstat-OS X返回打印机队列名称(说明),macos,unix,printing,applescript,osx-yosemite,Macos,Unix,Printing,Applescript,Osx Yosemite,好的,简而言之,我正在尝试从系统返回打印机列表,以确定是否存在特定的打印机,如果不存在,则自动设置该打印机。使用lpstat命令,特别是: lpstat -a | awk '{print $1}' 我可以返回一个列表,但打印机名称与我的队列名称不匹配,这正是我真正需要的。我的问题是,是否有方法返回队列名称而不是实际的打印机名称?我在OSX上的AppleScript中以shell脚本的形式运行它 当我运行该命令时,我得到的打印机名称返回为“EPSON_TM_T88V”,而不是我的打印机队列名称“

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

lpstat -a | awk '{print $1}'
我可以返回一个列表,但打印机名称与我的队列名称不匹配,这正是我真正需要的。我的问题是,是否有方法返回队列名称而不是实际的打印机名称?我在OSX上的AppleScript中以shell脚本的形式运行它


当我运行该命令时,我得到的打印机名称返回为“EPSON_TM_T88V”,而不是我的打印机队列名称“printer 1”

上次我查看时,苹果使用了Cups打印机系统,该系统应该安装在您的系统上

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

然后您可以尝试访问地址(?)这是一个您应该能够
curl
输出的页面,以便您可以从队列名称中提取打印机名称

这对我来说很管用,视觉上,也许你也设置了PrinterShare之类的

据我所知,第二个解决方案可能会有所帮助,那就是Stefan Klieme编写了一个匿名应用程序,用于侦听名为(Bonjour Events)的Bonjour事件你应该能够下载,并且当你下载后,你应该将应用程序放到AppleScript Editor的library窗口以查看字典。但是,我认为要让Bonjour事件正常工作,你的打印机必须启动并运行,而Cups方法在打印机脱机时工作

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


但是,我希望这能有所帮助。

感谢您的回复,这仍然只提取实际的打印机名称,而不是打印机队列名称,但我不知道该web界面选项。我实际上能够通过在/Library/Printers目录中编写查找脚本来派生打印机队列名称,而实际队列存储在该目录中。Thanks等待响应。嗯,也许我当时确实创建了自己的队列,但我很高兴你找到了解决方案。我也会查看/Library/Printers目录。如果你不使用,请再次关闭Cups的web界面,这是一个安全漏洞!)