出力先のプリンタを指定して、アプリケーション側の印刷ダイアログを表示させないで印刷を実行するAppleScriptです。
MacのGUIアプリケーションは、大別すると・・・
(1)標準的な印刷ダイアログ(Keynote, Pages, Numbersなど)
(2)アプリケーション側で自前で実装しているダイアログ(Adobe InDesign, Illustrator, Photoshop)
(3)その他(Javaアプリケーションやその他互換開発環境で作られたmacOSの標準機能を利用しないで作られたGUIアプリケーションなど)
のような印刷ダイアログがあり、ここで想定しているのは(1)です。(2)については専用の指定方法があり、(3)については「見なかったこと」にしています((3)だとAppleEventによる操作はほぼできません)。
ただし、macOS 10.12.6+Safari 11.1で試してみたところ、Safariでダイアログ非表示の印刷はできませんでした。セキュリティ上の対策で抑止しているのか、それともバグなのかは不明です。
AppleScript名:プリンタを指定してダイアログ非表示状態で印刷実行 |
use AppleScript version "2.4" use scripting additions use framework "Foundation" use framework "AppKit" set pArray to current application’s NSPrinter’s printerNames set pList to pArray as list if length of pList > 1 then set targPrinter to choose from list pList with prompt "Choose a printer" if targPrinter = false then return end if set aPrinter to first item of targPrinter tell application "CotEditor" if (count every document) = 0 then return tell front document set aPrintSetting to {copies:1, starting page:1, ending page:1, target printer:aPrinter} print with properties aPrintSetting without print dialog end tell end tell |