IllustratorとPhotoshopのファイル名埋め込み
WIndowsの、
イラストレーターとフォトショップで質問です。
■フォトショップ
該当のファイルのファイル名を
テキスト(画像なのでアウトライン)
で複数ファイルに一気に入れたいのですが、
方法を知っている方いらっしゃればお願いします。
①画像の上下中央に入れる
②フォントサイズが大きいとはみ出すので、
5pt以下に設定したいです。
③できれば文字は赤
フォトショップは5.5を使用していますが、
5.5で無理な場合はCS2も持っているいるので、それでも大丈夫です。
■イラストレーター
上とほぼ同じ内容ですが、
ファイルの中央にファイル名を一括で入れたいです。
バージョンはCS2です
イラストレーターとフォトショップで質問です。
■フォトショップ
該当のファイルのファイル名を
テキスト(画像なのでアウトライン)
で複数ファイルに一気に入れたいのですが、
方法を知っている方いらっしゃればお願いします。
①画像の上下中央に入れる
②フォントサイズが大きいとはみ出すので、
5pt以下に設定したいです。
③できれば文字は赤
フォトショップは5.5を使用していますが、
5.5で無理な場合はCS2も持っているいるので、それでも大丈夫です。
■イラストレーター
上とほぼ同じ内容ですが、
ファイルの中央にファイル名を一括で入れたいです。
バージョンはCS2です
[DTP初心者]-2009/04/17 09:31:39 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
[.]-2009/04/17 09:58:58 [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)]
[DTP初心者]-2009/04/17 10:16:51 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
» 003
過去ログがうまく検索できませでしたが 読んだ記憶がありつす。
ググッてみました。 中央でないけど
http://blog.dgcr.com/mt/dgcr/archives/20061106140500.html
こんなのとか
http://blog.dgcr.com/mt/dgcr/archives/20061016140400.html
こんなイメージなんでしょうか。
過去ログがうまく検索できませでしたが 読んだ記憶がありつす。
ググッてみました。 中央でないけど
http://blog.dgcr.com/mt/dgcr/archives/20061106140500.html
こんなのとか
http://blog.dgcr.com/mt/dgcr/archives/20061016140400.html
こんなイメージなんでしょうか。
[●]-2009/04/17 10:54:02 [Mozilla/4.0 (compatible; MSIE 5.17; Mac_PowerPC)]
[DTP初心者]-2009/04/17 11:12:31 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
» 005
たびたびすみません。
前に進んだのですが、
またつまずきました。。
下記のようにやりたいことは可能になりましたが、
サブフォルダの中まで処理ができませんでした。
サブフォルダの中まで一気に処理する方法はないでしょうか?
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj)
{
psdFileList = psdFolderObj.getFiles("*.eps");
for (i=0; i< psdFileList.length; i++) {
open(new File(psdFileList[i]));
txt = psdFileList[i].name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
たびたびすみません。
前に進んだのですが、
またつまずきました。。
下記のようにやりたいことは可能になりましたが、
サブフォルダの中まで処理ができませんでした。
サブフォルダの中まで一気に処理する方法はないでしょうか?
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj)
{
psdFileList = psdFolderObj.getFiles("*.eps");
for (i=0; i< psdFileList.length; i++) {
open(new File(psdFileList[i]));
txt = psdFileList[i].name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
[DTP初心者]-2009/04/17 15:35:10 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
» 006
こんにちは
サブフォルダ内を処理対象に含めるには
現在のスクリプトに
もし処理しようとするアイテムがフォルダなら
そのフォルダの中も処理するように書かないといけません。
さらに、その中にフォルダがあったらそのフォルダの中も処理するように書かないといけません。
でも、まだまだサブフォルダはあるかもしれません。
大変なので、その部分を関数化します。
関数に選択されたフォルダを送るとその中を処理します。
その中にフォルダがあれば、再度そのフォルダを関数に送ればいいわけです。
したのif(fileObjがフォルダなら){は
フォルダかどうか判定しないといけないのですが
ちょっとやりかたがわからなかったので、ぜひ調べてみてください。
出来たら教えてくださいね。
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObjがフォルダなら){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
//alert(fileObj.path);
//ここで処理をする
}
}
}
こんにちは
サブフォルダ内を処理対象に含めるには
現在のスクリプトに
もし処理しようとするアイテムがフォルダなら
そのフォルダの中も処理するように書かないといけません。
さらに、その中にフォルダがあったらそのフォルダの中も処理するように書かないといけません。
でも、まだまだサブフォルダはあるかもしれません。
大変なので、その部分を関数化します。
関数に選択されたフォルダを送るとその中を処理します。
その中にフォルダがあれば、再度そのフォルダを関数に送ればいいわけです。
したのif(fileObjがフォルダなら){は
フォルダかどうか判定しないといけないのですが
ちょっとやりかたがわからなかったので、ぜひ調べてみてください。
出来たら教えてくださいね。
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObjがフォルダなら){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
//alert(fileObj.path);
//ここで処理をする
}
}
}
[たけうちとおる]-2009/04/18 13:26:54 [Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1]
[通りすがり]-2009/04/20 09:45:00 [Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; ja-JP-mac; rv:1.9.0.8) Gecko/2009032608 Firefox/3.0.8]
[DTP初心者]-2009/04/20 11:08:42 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
» 009
>javascriptでフォルダとファイルの判別って出来るんでしょうか?
いろいろ調べているのですがまだ不明です。。。できないのかなぁ?
それはそうと、もしDTP初心者さんがWindowsなら拡張子があるかないかで判断する事も出来ます。
if(fileObj.displayName.indexOf(".") < 0){
社内運営だったら、フォルダ名にルールがあるならば別の方法も考えられると思います。
あとは
//ここで処理をする
alert(fileObj.displayName);
の部分にopen(new File(psdFileList[i]));から先を記述すればいいと思います。
psdFileList[i]はfileObjに置き換えます。
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.displayName.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
//ここで処理をする
alert(fileObj.displayName);
}
}
}
>javascriptでフォルダとファイルの判別って出来るんでしょうか?
いろいろ調べているのですがまだ不明です。。。できないのかなぁ?
それはそうと、もしDTP初心者さんがWindowsなら拡張子があるかないかで判断する事も出来ます。
if(fileObj.displayName.indexOf(".") < 0){
社内運営だったら、フォルダ名にルールがあるならば別の方法も考えられると思います。
あとは
//ここで処理をする
alert(fileObj.displayName);
の部分にopen(new File(psdFileList[i]));から先を記述すればいいと思います。
psdFileList[i]はfileObjに置き換えます。
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.displayName.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
//ここで処理をする
alert(fileObj.displayName);
}
}
}
[たけうちとおる]-2009/04/20 12:19:32 [Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1]
[.]-2009/04/20 13:25:28 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5; .NET CLR 2.0.50727)]
[通りすがり]-2009/04/20 13:38:39 [Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; ja-JP-mac; rv:1.9.0.8) Gecko/2009032608 Firefox/3.0.8]
» 012
環境はWinXPです。
フォルダ名は一番上の階層だけは変更可能です。
現在以下のようになりました。
現在の動作
Aフォルダの中にabcフォルダがあります
Aフォルダを指定すると
①aフォルダのみ処理されます
②スクリプト警告で1個ずつOkか聞いてきます
サブを読みにいっているようですが、
最初の1フォルダのみのようです。
おそらくご教授していただいた記載の入れ方が違うのだとは理解しているのですが。。。
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.displayName.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
//ここで処理をする
alert(fileObj.displayName);
}
}
psdFileList = psdFolderObj.getFiles("*.eps");
for (i=0; i< psdFileList.length; i++) {
open(new File(psdFileList[i]));
txt = psdFileList[i].name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
環境はWinXPです。
フォルダ名は一番上の階層だけは変更可能です。
現在以下のようになりました。
現在の動作
Aフォルダの中にabcフォルダがあります
Aフォルダを指定すると
①aフォルダのみ処理されます
②スクリプト警告で1個ずつOkか聞いてきます
サブを読みにいっているようですが、
最初の1フォルダのみのようです。
おそらくご教授していただいた記載の入れ方が違うのだとは理解しているのですが。。。
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.displayName.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
//ここで処理をする
alert(fileObj.displayName);
}
}
psdFileList = psdFolderObj.getFiles("*.eps");
for (i=0; i< psdFileList.length; i++) {
open(new File(psdFileList[i]));
txt = psdFileList[i].name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
[DTP初心者]-2009/04/20 13:47:53 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
[DTP初心者]-2009/04/20 13:59:54 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
[通りすがり]-2009/04/20 14:15:15 [Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; ja-JP-mac; rv:1.9.0.8) Gecko/2009032608 Firefox/3.0.8]
[DTP初心者]-2009/04/20 14:16:27 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
» 016
通りすがりさん
たけうちさん
とりあえず
作成しかけていたので、
単独の方をとりあえずやってみました。
以下の場合の動作ですが、
Aフォルダの中にabcフォルダがあります
Aフォルダを指定すると
・aフォルダのみ処理されます
かんり良い感じですが、
サブフォルダが1個までしか読めていないようです。
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.displayName.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
open(new File(fileObj));
txt = psdFileList[i].name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
}
通りすがりさん
たけうちさん
とりあえず
作成しかけていたので、
単独の方をとりあえずやってみました。
以下の場合の動作ですが、
Aフォルダの中にabcフォルダがあります
Aフォルダを指定すると
・aフォルダのみ処理されます
かんり良い感じですが、
サブフォルダが1個までしか読めていないようです。
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.displayName.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else{
open(new File(fileObj));
txt = psdFileList[i].name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
}
[DTP初心者]-2009/04/20 14:46:38 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
» 017
>.さん
>Windowsでも、拡張子のないファイルは作れますし、拡張子の付いたフォルダも作れます。
おっしゃるとおりですね。軽率な発現失礼いたしました。
>通りすがりさん
フォローありがとうございました。
さて、僕の環境でも同じ環境をつくり試したところ
Aフォルダの中にabcフォルダがあります
Aフォルダを指定すると
①aフォルダのみ処理されます
②スクリプト警告で1個ずつOkか聞いてきます
が再現しました。すいません。僕のスクリプトミスもあります。
for (var i=0; i< psdFileList.length; i++) {
のようにvar iが必要でした。もう一度関数が呼ばれたときに数字が上書きされていました。関数内で作成した変数は関数内で有効とつい思ってしまって失敗しました。(簡単なテストで見落としました)下記参照
http://www.openspc2.org/book/PhotoshopCS2/basic/002/index.html
エラーに備えるため".eps"の拡張子のみ動くようにしました。
}else if(fileObj.name.indexOf(".eps") > 0){
あと、PhptpshopCS2の処理を関数にしました。(ソースが見やすくなるので)
スクリプト警告で1個ずつOkか聞いてきますに関しては
activeDocument.save();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
元々のソースでは変更されていたら保存時に確認するというようになっています。
上ように一回保存してから保存せずに閉じる。という手があります。
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (var i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.name.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else if(fileObj.name.indexOf(".eps") > 0){
psd_fnc(fileObj);
}
}
}
function psd_fnc(fileObj){
open(new File(fileObj));
txt = fileObj.name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.save();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
>.さん
>Windowsでも、拡張子のないファイルは作れますし、拡張子の付いたフォルダも作れます。
おっしゃるとおりですね。軽率な発現失礼いたしました。
>通りすがりさん
フォローありがとうございました。
さて、僕の環境でも同じ環境をつくり試したところ
Aフォルダの中にabcフォルダがあります
Aフォルダを指定すると
①aフォルダのみ処理されます
②スクリプト警告で1個ずつOkか聞いてきます
が再現しました。すいません。僕のスクリプトミスもあります。
for (var i=0; i< psdFileList.length; i++) {
のようにvar iが必要でした。もう一度関数が呼ばれたときに数字が上書きされていました。関数内で作成した変数は関数内で有効とつい思ってしまって失敗しました。(簡単なテストで見落としました)下記参照
http://www.openspc2.org/book/PhotoshopCS2/basic/002/index.html
エラーに備えるため".eps"の拡張子のみ動くようにしました。
}else if(fileObj.name.indexOf(".eps") > 0){
あと、PhptpshopCS2の処理を関数にしました。(ソースが見やすくなるので)
スクリプト警告で1個ずつOkか聞いてきますに関しては
activeDocument.save();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
元々のソースでは変更されていたら保存時に確認するというようになっています。
上ように一回保存してから保存せずに閉じる。という手があります。
preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj = new SolidColor();
colObj.cmyk.cyan = 0;
colObj.cmyk.magenta = 100;
colObj.cmyk.yellow = 100;
colObj.cmyk.black = 0;
documents.add(320,240);
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
offsetW = 20; // 右側からの位置(20 pixel)
offsetV = 150; // 下側からの位置(150 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 5;
psdFolderObj = Folder.selectDialog("Photoshop epsがあるフォルダを選択してください");
if (psdFolderObj){
my_main_fnc(psdFolderObj);
}
function my_main_fnc(psdFolderObj){
var psdFileList = psdFolderObj.getFiles();
for (var i=0; i< psdFileList.length; i++) {
var fileObj = psdFileList[i];
if(fileObj.name.indexOf(".") < 0){
//もう一度自分自身の関数を呼び出す。
my_main_fnc(fileObj);
}else if(fileObj.name.indexOf(".eps") > 0){
psd_fnc(fileObj);
}
}
}
function psd_fnc(fileObj){
open(new File(fileObj));
txt = fileObj.name;
docObj = activeDocument;
activeDocument.changeMode(ChangeMode.CMYK);
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetW-x2, h-offsetV-y2);
activeDocument.flatten();
activeDocument.save();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
[たけうちとおる]-2009/04/20 16:39:00 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5; .NET CLR 2.0.50727; .NET CLR 1.0.3705; InfoPath.1)]
[DTP初心者]-2009/04/20 16:47:10 [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)]
[たけうちとおる]-2009/04/20 18:26:30 [Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1]