Skip to main content
Inspiring
March 31, 2022
Answered

Photoshop スクリプト: イラレデータを開いてPhotoshopデータで保存したい

  • March 31, 2022
  • 1 reply
  • 670 views

お世話になっております。

 

illustratorのデータをPhotoshopで開き、それをillustratorデータと同じ階層に拡張子前の名前は同じままpsdデータとして保存したいです。

 

しかし、

var doc = app.activeDocument ;
var docPath = doc.path ;

 

同じ階層に保存したくてパスを取得しようとしても、保存されていないというエラーが出てしまいます。

一度保存しないと出来ないのでしょうか。

他にやり方を知っている方がいたら教えていただきたいです。

よろしくお願いいたします。

This topic has been closed for replies.
Correct answer ajabon grinsmith

aiファイルをPhotoShopで開いた場合は「変換して開いた」ことになります。

開かれた画像は元のaiとも無関係で、新規ドキュメントと同義になります。

パス(ファイルパス)はファイルの置き場所を表すものなので、

一度も保存されていないものは当然パスもありません。

なので、ここは開いた画像ではなく元のaiファイルのパスをもとにしたパスを作成する必要があります。

 

 

var aiPath= File.openDialog ("aiファイルを選択しろ");
var psPath = aiPath.fullName.replace(/\.ai$/, ".psd"); //新規のパス
if(File(psPath).exists == false){ //うっかり上書きしない用
    var doc = open(aiPath);
    doc.saveAs(File(psPath), undefined, false, undefined);
    doc.close(SaveOptions.DONOTSAVECHANGES);
    }
else{
    alert("もうpsdあるから処理をキャンセルしました");
    }

 

 

あ、あと、「解決した」「満足できた」場合は正解マークをつけることで質問の終了を周知できますので、ご協力ください。わりと数ヶ月後にムダに返信がついたりなどもありますので。。

(「いいね」は任意でw)

 

1 reply

ajabon grinsmith
Community Expert
ajabon grinsmithCommunity ExpertCorrect answer
Community Expert
March 31, 2022

aiファイルをPhotoShopで開いた場合は「変換して開いた」ことになります。

開かれた画像は元のaiとも無関係で、新規ドキュメントと同義になります。

パス(ファイルパス)はファイルの置き場所を表すものなので、

一度も保存されていないものは当然パスもありません。

なので、ここは開いた画像ではなく元のaiファイルのパスをもとにしたパスを作成する必要があります。

 

 

var aiPath= File.openDialog ("aiファイルを選択しろ");
var psPath = aiPath.fullName.replace(/\.ai$/, ".psd"); //新規のパス
if(File(psPath).exists == false){ //うっかり上書きしない用
    var doc = open(aiPath);
    doc.saveAs(File(psPath), undefined, false, undefined);
    doc.close(SaveOptions.DONOTSAVECHANGES);
    }
else{
    alert("もうpsdあるから処理をキャンセルしました");
    }

 

 

あ、あと、「解決した」「満足できた」場合は正解マークをつけることで質問の終了を周知できますので、ご協力ください。わりと数ヶ月後にムダに返信がついたりなどもありますので。。

(「いいね」は任意でw)

 

nekkonekoAuthor
Inspiring
April 1, 2022

ありがとうございます!

 

お教えいただいたコードでやってみたところ、確かに出来たのですが、Photoshopでaiデータを開く時に「PDFの読み込み」の設定ダイアログが出なかったです。設定は一応開く時に毎回チェックしたいのですが、それは可能なのでしょうか?

 

new PDFOpenOptions();

これで設定は出来るみたいですが、毎回同じ設定にするわけではないので、画像を読み込むたびに設定ダイアログで設定してから開きたいです。

 

お手数ですがよろしくお願いします。

ajabon grinsmith
Community Expert
Community Expert
April 1, 2022

冒頭にこれを足すと出ます。

displayDialogs = DialogModes.ALL; //ダイアログ強制表示