LoginSignup
1
0

More than 3 years have passed since last update.

複数ファイルを選択して一気に印刷するAppleScript

Posted at

ダイアログで複数の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の一番手前のウィンドウのtargetalias形式で取得して,変数locに格納する。

印刷時にいちいち確認するかどうかを確認する。

やっぱり最初は不安なので,印刷ダイアログで確認するかどうかを選びたい。
なので,showDialog(ダイアログを見せる?)というBooleanな変数を作ることにする。ついでに,ここで引き返せるようにしておく。
ようけ考えると,むしろこの後の印刷プロセスで問うた方がUIとして優れているかもしれない。

Preview.appで開いて印刷して閉じる。

前のshowDialog変数の値によって,ダイアログをいちいち表示するかどうかを変える。
ちなみにファイルを開くときはファイルのエイリアスを指定するが,閉じるときはclose window 1だ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0