リンクをクリップボードにコピー
コピー完了
いつもお世話になっています。
javascript勉強中の身ですのでお手柔らかにお願いいたします。
Illustratorで複数のファイルを編集した後、オプションを変えて上書き保存をするスクリプトを書きました。
var options = new IllustratorSaveOptions ;
with (options) {
pdfCompatible = true ;
embedLinkedFiles = false ;
embedICCProfile = true ;
compressed = true ;
}
var Doc=app.documents.length;
for(var i=0; i < Doc; i++){
app.activeDocument.save(options);
app.activeDocument.close();
}
上記のスクリプトで、思っている挙動にはなりました。
しかし、使用している中で時々スクリプト自体が動かないことがあるんです。
どういう状況の時に動かなくなるのかは不明なのですが、もしかしたら開いているファイルを上書き保存しようとしているフォルダの指定が違っていたのではないかと考えました。
var options = new IllustratorSaveOptions ;
with (options) {
pdfCompatible = true ;
embedLinkedFiles = false ;
embedICCProfile = true ;
compressed = true ;
for(var i=0 ; i < app.documents.length ; i++){
var Doc = app.documents[i];
var myFile = app.documents[i].fullName ;
var path = myFile.fullName ;
var file = new File(path);
Doc.saveAs(file , options);
}
なので、上記のように「別名保存」でフルパスも指定して上書き保存したらいいのではないかと思ったのですが、これも同じような挙動にはなりましたが、閉じ方がよく分からず未記入です・・
ただこの方法だと、私はIllustratorの設定でバックグラウンド保存をオフにしているので、保存は一応されているみたいなのですが、閉じようとすると「保存しますか」のアラートが出てしまいます。
スクリプトを二つ書きましたが、そもそも合っているのかどうかも分からず、思った通りの挙動にもならず頭を悩ませています。
もし足りないところがあれば直していただけませんでしょうか。
頼りっぱなしで申し訳ないですが、よろしくお願いいたします。
リンクをクリップボードにコピー
コピー完了
そのままファイルを閉じる場合の基本は以下です。
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
また、オブジェクトなどの定義はループに入る前に済ましておいたほうた良いでしょう。