Archive for 8月, 2014

2014/08/27 ログイン中のユーザーのPDFWriterのPDF出力フォルダを求める

仮想プリンタを提供し、印刷結果をPDFとして出力する「PDFWriter」がPDFを出力するフォルダのパスを求めるAppleScriptです。

ただし、正常に動作するためにはいくつかの前提条件をクリアする必要があります。

 (1)マシンにPDFWriterがインストールしてあること
 (2)少なくとも一度はPDFWriter経由でPDF出力したことがあること

(1)はともかく、インストール直後の一度もPDFWriter経由でPDF出力していない環境では、PDF出力フォルダが作成されていない可能性があります。

スクリプト名:ログイン中のユーザーのPDFWriterのPDF出力フォルダを求める
set aPath to retPDFWriterOutputFolder()
–> “/var/spool/pdfwriter/me/”

–ログイン中のユーザーのPDFWriterのPDF出力フォルダを求める
on retPDFWriterOutputFolder()
  
  
–ログイン中のユーザーアカウント名を取得する
  
tell application “System Events”
    set aProp to properties of current user
    
set aName to name of aProp
  end tell
  
  
–pdfwriterのPDF出力フォルダのパスを組み立てる
  
set printCuePath to “/var/spool/pdfwriter/” & aName & “/”
  
  
–PDF出力フォルダが存在するかどうか確認
  
try
    do shell script “cd “ & quoted form of printCuePath
  on error
    return false –パスが存在しない場合にはfalseを返す
  end try
  
  
return printCuePath
  
end retPDFWriterOutputFolder

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2014/08/25 Adobe Photoshopの巨大なバグ「日本語環境下でファイルオープンエラー」への対処

Adobe Creative Suites/Creative Cloudの巨大なバグは多々あれど、その中で最大にしてなかなか直らないものが、

「Photoshopは、日本語環境下でAppleScript経由のファイルのオープンがまともにできない」

というものです。

AppleとAdobeの間で問題のなすりつけ合いを行っていることは想像に難くありませんが、Photoshopでエラーの出るファイルを他のアプリでは問題なくオープンできていることから、明らかにAdobe側の問題です。

スクリプト名:Photoshopでファイルをオープンできないバグを簡単に再現するコード
set a to choose file

tell application id “com.adobe.photoshop”
  open a
end tell
–> error “Adobe Photoshop CC 2014 でエラーが起きました:ファイル 不特定のオブジェクト が見つかりませんでした。” number -43

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

本問題に対しては、浅いフォルダにファイルを配置(外部HDD上など)するとか、JavaScriptを経由してファイルオープンするとかいったさまざまな対策が行われてきました。

どの対処方法がよいのか、というのはいろいろ評価が分かれるところですが……大げさになりすぎないことから、「POSIX pathに変換してオープン」がけっこういいと思います。

ただしここで、一般的なアプリケーションでは「念のために」ファイルパス中にスペースキャラクターなどが入ることに備え、quoted form of でクォート処理を行うのが一般的ですが、ここでquoted form ofは使ってはいけません。エラーになってしまいます。

スクリプト名:Photoshopでファイルをオープンするために
set a to choose file

set aPosix to POSIX path of a

tell application id “com.adobe.photoshop”
  open file aPosix
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2014/08/22 iWork各アプリがアップデート、AS用語辞書に変更なし

Mac App Store経由でiWorkアプリの、

 Keynote 6.2.2
 Pages 5.2.2アップデート
 Numbers 3.2.2アップデート

が配布されていますが、AppleScript用語辞書に変更はありません。

2014/04/09に掲載されたAppleの「iWorkのアップデートにより旧バージョンにあった機能を復活させる」というリリースをいま確認したのですが、「半年以内に」といった表現は見られません(当初はあったのかもしれない)。

この調子だと、OS X 10.10のリリースと同時かやや遅れるぐらいの時期にASの機能が復旧する、と見るべきでしょうか。

あらためて各iWorkアプリケーションの用語辞書を見ると、「風呂敷を広げすぎて本当に完成させる気なのか心配」な部分もあるため……少し気長に待つ必要があるのかも?