AppleScript名:印刷可能なプリンタ一覧から選択してプリント実行 10.4~10.9 |
–要・Mac OS X 10.4以上 set pList to getPrintCues() of me set aPrinter to first item of (choose from list pList with prompt "出力先のプリンタを選択してください") set aPrintSetting to {copies:1, starting page:1, ending page:1, target printer:aPrinter} –とりあえずSafariで印刷してみた。Safariである必要はない tell application "Safari" activate tell document 1 try print with properties aPrintSetting with print dialog –「with」を「without」にすると、ダイアログなしで印刷 on error display dialog "プリント中になんかのエラーが発生しました。たぶん、キャンセルされたんでしょう" buttons {"OK"} default button 1 end try end tell end tell (* プロパティ: copies integer — プリントする書類の部数 –用紙サイズを指定できないのはどういうことなのか?(汗) 用紙サイズ指定できなかったら意味ないやんけ! –10.8, 10.9用に書き換え on getPrintCues() set P to paragraphs of (do shell script "lpstat -p") set pList to {} set osVer to (system attribute "sys2") as number repeat with i in P set j to contents of i if osVer = 9 then –10.9 set aPName to trimStrings(j, "printer ", " is idle. enabled since ") of me –また、10.4の仕様に戻しましたね else if osVer = 8 then –10.8 set aPName to trimStrings(j, "プリンタ", " は待機中です。") of me else if osVer = 7 then –10.7 set aPName to trimStrings(j, "プリンタ", " は待機中です。") of me else if osVer = 6 then –10.6 set aPName to trimStrings(j, "プリンター ", " は待機中です。") of me else if osVer = 5 then –10.5 set aPName to trimStrings(j, "プリンタ ", " は待機中です。") of me else if osVer = 4 then –10.4 set aPName to trimStrings(j, "printer ", " is idle. enabled since ") of me end if if aPName is not equal to "" then set the end of pList to aPName end if end repeat return pList end getPrintCues –任意の文字列から指定開始子、指定終了子でトリミングした文字列を取り出す on trimStrings(aString, fromStr, endStr) set fromLen to length of fromStr set eLen to length of endStr set sPos to offset of fromStr in aString if sPos = 0 then return "" set body1 to text (sPos + fromLen) thru -1 of aString set ePos to offset of endStr in body1 if ePos = 0 then return "" set body2 to text 1 thru (ePos – 1) of body1 return body2 end trimStrings |
(Visited 38 times, 1 visits today)