Safari打印的优雅解决方法没有打印对话框错误?

时间:2012-10-02 19:26:00

标签: printing applescript safari

AppleScript标准套件具有将从应用程序打印的命令,允许指定某些选项并打印而不显示对话框。例如:

tell application "Safari"
    print document 1 with properties {copies:3} without print dialog
end tell

但是,当前版本的Safari中似乎存在一个错误,可以防止这种情况发生。 1 指定without print dialog时,窗口中会弹出一个工作表这应该显示处理打印作业的进度,但不是这样做只是挂着一个非描述性的理发师。

在尝试解决这个问题时,我意识到如果我指定with print dialog,一切都按预期工作。该脚本在显示对话框后暂停该行的执行,然后在用户点击对话框中的打印按钮后继续执行。在显示对话框后,最优雅的解决方法是keystroke return,但我不认为这是可能的,因为脚本在该行上暂停,直到对话框被解除。

这是一个不太优雅的解决方法:

on printCopiesOfCurrentPage(copies)
    tell application "System Events"
        tell application process "Safari"
            keystroke "p" using command down
            keystroke copies as text
            keystroke return
            delay 3
        end tell
    tell
end printCopiesOfCurrentPage

由于在发送打印作业之前无法延迟执行,因此我们必须使用delay 3进行猜测,这将导致效率低下或出现问题。

这里还有其他可能吗?也许有一种方法可以在使用按键方法后观察打印对话框消失,还是在调用print with dialog后启动作业的方法?


1。我第一次尝试这个时,它实际上打印了一页半,然后翻了一下并导致打印机卡纸。我从来没有能够复制它,所以如果有人能为我确认这个错误,我们将不胜感激。

0 个答案:

没有答案