使用Applescript打开打印队列。 (或者:如何使用Applescript打印PDF?)

时间:2013-01-05 04:58:59

标签: printing applescript

首先,我不是Applescript大师。我刚刚做了很多谷歌搜索,以了解这一点。

我已将以下脚本添加到Hazel规则中,以尝试打印Hazel已识别的PDF文件。

tell application "PrinterProxy"
activate
print theFile with properties {target printer:"Blah"} without print dialog
end tell

我使用的实际打印机名称更长,是网络打印机的全名。

当执行此规则时,我会收到两个Applescript错误弹出窗口,这两个弹出窗口都只是说“打印服务不可用”。我假设activateprint动词各一个。

然后我发现如果我手动启动打印机的打印队列窗口,脚本就可以正常工作。现在我无法弄清楚如何编写该队列的脚本来打开。每当我将其作为应用程序的名称提及时,Applescript编译器会提示我在列表中找到它(与Open Dictionary提供的列表相同),然后将其更改为“PrinterProxy”,这对我没有任何帮助。

有没有办法从脚本中打开该窗口,还是有其他方法可以在没有打开窗口的情况下对其进行排队?当任何应用程序可以在没有它的情况下打印到队列时,窗口应该需要打开,这似乎很奇怪。

1 个答案:

答案 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