フォルダ内にEPSファイルがあるかどうか監視し、存在する場合にGIF, JPEG形式で保存する

■プログラム説明(ソースコード説明)
 フォルダにファイルが存在したか(入ったら、作成されたら)どうかを定期的に監視するようにします(ポーリング)。あとは、ai_epsフォルダのパスをFolder()に指定しフォルダオブジェクトを生成しgetFiles()を使いファイル一覧を取得します。取得したファイルの数が0でない場合、つまりファイルが存在した場合のみ保存処理を行います。
 サンプルでは

tm = 60; // 60 sec.

 として60秒間のみ監視しています。この値を大きくするか無限に繰り返すような場合には以下のようにメイン部分を変更します。

dObj = new Date();
tm = 60; // 60 sec.
while((new Date()).getTime() < dObj.getTime() + 1000*tm)
{
fileList = folderRef.getFiles("*.eps");
if (fileList.length > 0) proc();
}

    を

while(true)
{
fileList = folderRef.getFiles("*.eps");
if (fileList.length > 0) proc();
}

 にします。


■ソースコード
// Folder path
folderRef = new Folder ("/ai_eps/");
saveGIFfolder = "/ai_GIF/";
saveJPEGfolder = "/ai_JPG/";

// GIF Save Option. Dither none, Color 256, Antialias on.
gifOpt = new ExportOptionsGIF();
gifOpt.antiAliasing = true;
gifOpt.colorCount = 256;
gifOpt.colorDither = ColorDitherMethod.NOREDUCTION;

// JPEG Save Option. Quality is 80.
jpegOpt = new ExportOptionsJPEG();
jpegOpt.qualitySetting = 80;

function proc()
{
for (i=0; i<fileList.length; i++)
{
fileObj = new File(fileList[i].fsName);
open(fileObj);
tmpFile = (fileList[i].name).split(".eps")[0];
saveGIFFile = new File(saveGIFfolder+tmpFile + ".gif");
saveJPEGFile = new File(saveJPEGfolder+tmpFile + ".jpg");
activeDocument.exportFile(saveGIFFile, ExportType.GIF, gifOpt);
activeDocument.exportFile(saveJPEGFile, ExportType.JPEG, jpegOpt);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
fileObj.remove();
}
}

dObj = new Date();
tm = 60; // 60 sec.
while((new Date()).getTime() < dObj.getTime() + 1000*tm)
{
fileList = folderRef.getFiles("*.eps");
if (fileList.length > 0) proc();
}


■使い方
1:ファイルメニューからスクリプトを実行します。
2:サンプルでは60秒間のみフォルダ内にepsファイルが存在する場合処理されます。
3:フォルダ内にあるEPSファイルが開かれます。
4:GIF形式とJPEG形式でファイルが保存されます。
5:元ファイルが削除されます。
6:2へ戻ります。


■ポイント
 ExportOptionsGIFオブジェクトのプロパティには以下のものがあります。

antiAliasing アンチエイリアスあり/なし(true、false)
colorCount 色数
colorDither 以下の種類を指定
ColorDitherMethod.DIFFUSION
ColorDitherMethod.NONE
ColorDitherMethod.NOREDUCTION
ColorDitherMethod.PATTERNDITHER
interlaced インターレース(true、false)
transparency 透明(true、false)


 ExportOptionsJPEGオブジェクトのプロパティには以下のものがあります。

antiAliasing アンチエイリアスあり/なし(true、false)
optimization 最適化(true、false)
qualitySetting 画質(0〜100)



■実際のスクリプトをダウンロード(sample.js.zip)