首先,我不是Applescript大师。我刚刚做了很多谷歌搜索,以了解这一点。
我已将以下脚本添加到Hazel规则中,以尝试打印Hazel已识别的PDF文件。
tell application "PrinterProxy"
activate
print theFile with properties {target printer:"Blah"} without print dialog
end tell
我使用的实际打印机名称更长,是网络打印机的全名。
当执行此规则时,我会收到两个Applescript错误弹出窗口,这两个弹出窗口都只是说“打印服务不可用”。我假设activate
和print
动词各一个。
然后我发现如果我手动启动打印机的打印队列窗口,脚本就可以正常工作。现在我无法弄清楚如何编写该队列的脚本来打开。每当我将其作为应用程序的名称提及时,Applescript编译器会提示我在列表中找到它(与Open Dictionary提供的列表相同),然后将其更改为“PrinterProxy”,这对我没有任何帮助。
有没有办法从脚本中打开该窗口,还是有其他方法可以在没有打开窗口的情况下对其进行排队?当任何应用程序可以在没有它的情况下打印到队列时,窗口应该需要打开,这似乎很奇怪。
答案 0 :(得分:1)
哦,我的!我只是偶然完成了它的工作。你知道我如何省略实际的打印机名称以简化上述内容吗?是的,事实证明这就是问题所在!!
如果您弄错了打印机的名称,则会显示列表供您选择,并且 - 令人讨厌 - 这会使您的选择匿名。如果你的名字完全正确 - 在我的情况下意味着正确使用引号字符(叹气) - 那么它就不会被取代而且它会起作用。
这是我的最终代码:
tell application "Brother HL-5240 series @ Elli’s Big Mac"
activate
print theFile without print dialog
quit
end tell
请注意,Apple认真地为我打印了这个打印机名称的’
字符。愚蠢的是,我用'
字符输入了名字。我非常关闭智能报价!
另外,请注意关闭打印队列窗口的quit
行。显然有一个错误会在被某些活动引用后停止自动关闭,这似乎包括我的脚本。见这里:https://discussions.apple.com/thread/4156725?start=0&tstart=0