ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

AI保存のオプションを制御する

先週Twitterで流れ弾が飛んできたので、試しに書いてみました。

IllustratorでAI保存する際のオプションを制御するJavaScriptです。

Leopardで書いたのでWindowsで動くかは試してません。

もし動かなかったらそれを直して使うのがScripterの第一歩だよ!(責任転嫁)

<仕様>

●「PDF互換ファイルを作成」にチェックする

●「配置した画像を含む」にチェックしない

●「ICCプロファイルを埋め込む」にチェックしない

●「圧縮を使用する」にチェックする

<注意点>

AISaveOptionsっていうまんまのクラスがあったけど、なぜかエラーになった。

ググったらAdobeのフォーラムで同じことを聞いている人がいて、「IllustratorSaveOptionsを使え」って回答があったので、試しにそれにしてみたら動いた。

なにこのトラップ。

あほかー。

//フォルダを選択

var folderObj = Folder.selectDialog("aiファイルのあるフォルダを選択してください") ;

//保存先を選択

var saveObj = Folder.selectDialog("保存先のフォルダを選択してください") ;

var saveObj = saveObj + "/" ; //末尾に区切りのスラッシュが抜けているので足しておく

//inddファイルを配列化(小文字・大文字無視)

var fileListIAI = folderObj.getFiles("*.ai") ;

//AI保存時のオプション設定

var aiOptions = new IllustratorSaveOptions;

with (aiOptions) {

pdfCompatible = true ; //PDF互換ファイルを作成→チェックオン

embedLinkedFiles = false ; //配置した画像を含む→チェックオフ

embedICCProfile = false ; //ICCプロファイルを埋め込む→チェックオフ

compressed = true ; //圧縮を使用する→チェックオン

}

//ファイル数分繰り返す

for (i = 0; i < fileListIAI.length ; i ++) {

//ファイルを開く

app.open(fileListIAI[i]) ;

//作業するドキュメントなどを変数に代入

var docObj = app.activeDocument;

//ドキュメント名を取得

var fsName = docObj.name ;

var fsArray = fsName.split(".") ;

var aiName = fsArray[0] ; //ドキュメント名取得できた

//ファイル生成

var saveFile = new File(saveObj + aiName + ".ai");

//保存

docObj.saveAs(saveFile, aiOptions);

//ドキュメントを閉じる

app.activeDocument.close() ;

}