ダイアログで複数のPDFファイルを選択して,一気に印刷する。
Finderからの直接印刷だと,両面印刷等の設定を反映できない。
なので,Preview.appで開いて印刷して閉じる,というプロセスを繰り返すことにする。
ほぼ自分用メモ。
tell application "Finder" to set loc to target of window 1 as alias
set PDFs to choose file with prompt "印刷するファイルを選んでください。" of type {"PDF"} default location loc with multiple selections allowed
set br to button returned of (display dialog "印刷前にダイアログで確認する?" buttons {"キャンセル", "しない", "する"} default button 3)
if br = "する" then
set showDialog to true
else if br = "しない" then
set showDialog to false
else
error number -128
end if
repeat with aPDF in PDFs
tell application "Preview"
activate
open aPDF
try
if showDialog then
print window 1 with print dialog
else
print window 1
end if
end try
close window 1
end tell
end repeat
ファイルを選択させる。
choose file
でファイル選択ダイアログを開くことができる。
このとき,最初に表示するフォルダをdefault location
で指定することができる。
そこで,Finderで一番手前のウィンドウのフォルダを初期表示させることにしてみる。冒頭のtell application "Finder" to set loc to target of window 1 as alias
がそれで,つまり,Finderの一番手前のウィンドウのtarget
をalias
形式で取得して,変数loc
に格納する。
印刷時にいちいち確認するかどうかを確認する。
やっぱり最初は不安なので,印刷ダイアログで確認するかどうかを選びたい。
なので,showDialog
(ダイアログを見せる?)というBooleanな変数を作ることにする。ついでに,ここで引き返せるようにしておく。
ようけ考えると,むしろこの後の印刷プロセスで問うた方がUIとして優れているかもしれない。
Preview.appで開いて印刷して閉じる。
前のshowDialog
変数の値によって,ダイアログをいちいち表示するかどうかを変える。
ちなみにファイルを開くときはファイルのエイリアスを指定するが,閉じるときはclose window 1
だ。