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

■プログラム説明(ソースコード説明)
 フォルダにファイルが存在したか(入ったら、作成されたら)どうかを一定時間ごとに監視してGIF形式とJPEG形式で保存します。このような処理を行うにはDateオブジェクトを生成し経過時間を調べてから処理するようにします。一定時間経過していたら、ai_epsフォルダのパスをFolder()に指定しフォルダオブジェクトを生成しgetFiles()を使いファイル一覧を取得します。取得したファイルの数が0でない場合、つまりファイルが存在した場合のみ保存処理を行います。サンプルではファイルの処理が終わってから10秒後に次の処理を行うようにしていますが、これは

timeover = 10; // interval time (sec)

の10の数値(秒数)を変更することで処理間隔を指定することができます。
また、安全のため120秒経過した場合には無限ループから抜けるようになっています。無限に繰り返すには

while((new Date()).getTime() < dObj.getTime() + 1000*tm)



while(true)

に変更します。


■ソースコード
// 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()
{
fileList = folderRef.getFiles("*.eps");
if (fileList.length < 1) return;
for (i=0; i<fileList.length; i++)
{
fileObj = new File(fileList[i].fsName);
try{
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();
}catch(e)
{
fileObj.remove();
}
}
}

dObj = new Date();
tm = 120; // 120 sec.
timeover = 10; // interval time (sec)
tmObj2 = (new Date()).getTime();
while((new Date()).getTime() < dObj.getTime() + 1000*tm)
{
tmObj = (new Date()).getTime();
if (tmObj > tmObj2)
{
proc();
tmObj2 = (new Date()).getTime() + timeover*1000;
}
}




■使い方
1:ファイルメニューからスクリプトを実行します。
2:10秒ごとにファイルがチェックされフォルダ内にあるEPSファイルが開かれます。
3:GIF形式とJPEG形式でファイルが保存されます。
4:元ファイルが削除されます。
5: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)