インストールレスプログラミング( ´ー`)

VBA , JavaScript , HTAなど 365アプリはインストール必要ですが、仕事に無いケースはほぼないから(・_・;)

Illustrator Script PDF互換オプションを有効にして保存する

Adobe Bridgeを使ってIllustratorの大量のイラストデータを管理する際,

PDF互換オプションがオンになっていないものはサムネイルが崩れたり,または見えなかったりするので,

管理にかなり困る。というか,サムネイルが見えない画像はお蔵いり決定なので由々しき問題。

私は,IllustACというサイトのプレミアム会員で,デジタル配布教材に補足するための図に使えるように

そこで大量のイラスト画像をダウンロードしてます。

量が少ない時は 別名保存の時オプションにチェック入れるだけですが,多いとかなり・・(;´▽`A``

なので,そういうとき用のスクリプト。拡張子jsxで保存してIllustratorスクリプトから使います。

特定のフォルダ内の .ai .eps 全部に適用するときはこれ

//フォルダ選択
var folderObj = Folder.selectDialog("ai,epsファイルのあるフォルダを選択してください") ;
//保存先を選択 デフォルトに同じフォルダを設定
var saveObj = decodeURI(Folder.selectDialog("保存先のフォルダを選択してください",folderObj) );
var saveObj = saveObj + "/" ; 
//aiとepsのリストを作成
var fileListAI = folderObj.getFiles("*.ai") ; 
var fileListEPS=folderObj.getFiles("*.eps");
var fileList=fileListAI.concat(fileListEPS);
//保存時のオプション設定
var aiOptions = new IllustratorSaveOptions; 
with (aiOptions) { 
    pdfCompatible = true ; //PDF互換ファイルを作成
    embedICCProfile = false ; //ICCプロファイルを埋め込まない
    compressed = true ; //圧縮を使用
}

for (i = 0; i < fileList.length ; i ++) {
    app.open(fileList[i]) ;
    var  docObj=app.activeDocument
    var aiName = docObj.name.split(".")[0] ; 
    var saveFile = new File(saveObj + aiName + ".ai");
    docObj.saveAs(saveFile, aiOptions);
    docObj.close() ;
}

全部じゃなくて,複数選択した状態で使うように組んだのがこれ

//フォルダ選択
var fileList = File.openDialog("PDF互換を作成したいファイルを選択してください。","*.ai;*.eps",true);
//保存先を選択 デフォルトに同じフォルダを設定
var folderObj=fileList[0].path;
var saveObj = decodeURI(Folder.selectDialog("保存先のフォルダを選択してください",folderObj) );
var saveObj = saveObj + "/" ; 

//保存時のオプション設定
var aiOptions = new IllustratorSaveOptions; 
with (aiOptions) { 
    pdfCompatible = true ; //PDF互換ファイルを作成
    embedICCProfile = false ; //ICCプロファイルを埋め込まない
    compressed = true ; //圧縮を使用
}

for (i = 0; i < fileList.length ; i ++) {
    app.open(fileList[i]) ;
    var  docObj=app.activeDocument
    var aiName = docObj.name.split(".")[0] ; 
    var saveFile = new File(saveObj + aiName + ".ai");
    docObj.saveAs(saveFile, aiOptions);
    docObj.close() ;
}

複数のファイルを選択して,それに対して作業をする,というときのためにこのコードは残しますが,

エクスプローラーのサムネイルではPDF互換はたいして意味を成しませんでした。

なので,二番目のコードは使えないもの(;´▽`A``

File.openDialogの使い方のメモとして載せるだけです。

自分用なので,ちゃんと動かなくても悪しからず・・(;´▽`A``

Javascriptは自分には難しいですが,少しずつやる。。