1分ごと自動的にPSDファイルをPDFに変換

 Photoshopのアクションは便利です。しかし、どうしても手作業でメニューを選択するか、ファンクションキーなどを押さないとアクションは実行されません。どうせならば、定期的に勝手に処理してくれれば楽なのになあ、と思ったことはないでしょうか。
 MacOS XではAppleScriptとUNIXコマンドの組み合わせで自動的にPhotoshopの処理を行わせることが可能です。MacOS Xをサーバーとして使っているならば、フォルダにテキストファイルを入れておけばテキストを読み出して、アクションを実行させることで自動ロゴ生成サーバーというのも可能です。
 それでは実際のやり方について説明します。今回は起動ディスクの最初の階層にあるpds_dataフォルダにあるPSDファイルを自動的に検索、読み出して起動ディスクの最初の階層にあるpdf_dataフォルダにPDF形式で保存します。

 まず、PDF形式で保存するスクリプトが以下のものです。

// PDF保存オプション
pdfOpt = new PDFSaveOptions();
pdfOpt.alphaChannels = true;
pdfOpt.annotations = true;
pdfOpt.downgradeColorProfile = false;
pdfOpt.embedColorProfile = true;
pdfOpt.embedFonts = false;
pdfOpt.encoding = PDFEncoding.JPEG;
pdfOpt.interpolation = false;
pdfOpt.jpegQuality = 3; // JPEG画質。数値が多いと高画質
pdfOpt.layers = false;
pdfOpt.spotColors = false;
pdfOpt.transparency = false;
pdfOpt.useOutlines = false;
pdfOpt.vectorData = false;

// 処理先のフォルダパス
folderRef = new Folder ("/psd_data/"); // 読み込み先フォルダ
savePath = "/pdf_data/"; // 保存先フォルダ
if(folderRef != null)
{
fileList = folderRef.getFiles("*.psd");
for (i=0; i<fileList.length; i++)
{
fileObj = new File(fileList[i].fsName);
open(fileObj);
saveRef = new File(savePath + fileList[i].name);
activeDocument.saveAs(saveRef, pdfOpt, true, Extension.LOWERCASE);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
}

 保存画質は

pdfOpt.jpegQuality = 3; // JPEG画質。数値が多いと高画質

 の数値を変えてください。これはファイルメニューからPDFで保存する際に表示されるダイアログの画質設定と同じ数値になります。このファイルをsaveToPDF.jsとして保存します。ここではdigiというユーザー名のホームフォルダに保存されたものとします。
 次にテキストエディタで以下のAppleScriptを入力しautoPS.txtという名前でホームフォルダに保存します。

tell application "Adobe Photoshop CS"
do javascript file "Macintosh HD:Users:digi:saveToPDF.js"
end tell

 重要なのは以下の1行です。

do javascript file "Macintosh HD:Users:digi:saveToPDF.js"

 "Macintosh HD:Users:digi:saveToPDF.js"の部分が実行したいスクリプトファイルへのパスになります。最初の「Macintosh HD」がドライブ名になります。(ここでのパスはMacOSでのパスでターミナルで表示されるパスとは違いますので要注意)
 これで準備ができました。ここで、正しく実行されるかどうかターミナルから以下のように入力してみてください。

osascript /users/digi/autoPS.txt

 /users/digi/autoPS.txtの部分が実行するAppleScriptのパスになります。ここでのパスはターミナル上で表示されるのパス(UNIXでのパス表記)になるので注意してください。
 これで無事に動作したら、あとは定期的に実行するようにするだけです。ターミナルから以下のように入力してください。

crontab -e

 エディタ画面になります。iのキーを押してから以下のように入力してください。

* * * * * osascript /users/digi/autoPS.txt

 入力が終わったらescキーを押してから:wqと入力しリターンキーを押します。おかしくなってしまったらターミナルウィンドウを閉じて、「crontab -e」の入力からやり直して下さい。その他の編集に関してはGoogleで「vi入門」と入力すると表示されるリンク先のページを参照してください。

http://www.google.com/search?q=vi入門&ie=UTF-8&oe=UTF-8

 これで1分ごとに自動的にPSDファイルがPDFに変換されます。1分ごとでなく1時間に1回なら

0 * * * * osascript /users/digi/autoPS.txt

 とすると12時0分とか6時0分など0分になった時にスクリプトが実行されるようになります。5分ごとにしたい場合には以下のように/5を付けます。

*/5 * * * * osascript /users/digi/autoPS.txt

 このまま実行すると/var/mail/フォルダ内に実行結果がメールとして送られます。このメールが不要な場合には以下のように「 > /dev/null 2>&1」を付加してください。

* * * * * osascript /users/openspc/autoPS.txt > /dev/null 2>&1

 Photoshop だけでなくIllustratorでも同様にして定期的に処理を実行させることができます。




[サンプルをダウンロード]