InDesignかIllustratorまたはPDF、どれでもよいのですが、
配置したオブジェクトの左上の座標と縦横のサイズを取得したいのですが、
なかなか良い方法がみつかりません。
座標とサイズをCSVで利用したいので、タブ区切りになっていたら尚よいのですが、
その辺りは検索置き換えや別のスクリプトを利用するので問題有りません。
数個ならソフト内の数値を参照すればよいのですが、
数が多いのでできたらスクリプトなどで一括取得する方法はないでしょうか?
どのソフトも最新版を利用しています。
[20247] ままま (2020/03/25 Wed 09:45)
>配置したオブジェクト
リンクって意味ですか? 画像とか図版とかの。
[20248] (z-) (2020/03/25 Wed 12:25)
> >配置したオブジェクト
>
> リンクって意味ですか? 画像とか図版とかの。
説明が足りずに申し訳有りません。
配置したオブジェクトとは、
例えば四角形ツールで書いた四角いオブジェクトのことです。
ページの左上を基準として、
オブジェクトの左上の角の座標と、オブジェクトのサイズを一度に書き出したいのです。
Illustratorで、オブジェクト単体で座標&サイズを取得できる
スクリプトは見つけたのですが、
なにせ数が多いのでCSVで利用できるようにするのに
大変手間がかかっています。
[20249] ままま (2020/03/25 Wed 16:57)
かんたんに書いてあげられるのはこのぐらいまでですかね…動作確認込みで10分。
#target illustrator
var doc = app.activeDocument;
var str = "", obj;
var c = ", "; //タブ区切りなら"\t"
for(var i = 0; i < doc.pageItems.length; i++){
obj = doc.pageItems[i];
//x座標,y座標,幅,高さ
str += obj.left + c + Math.abs(obj.top) + c + obj.width + c + obj.height + "\n";
}
var file = new File ("~/desktop/" + doc.name.replace(/[^\.]+$/, "txt"));
file.open("w");
file.write("\uFEFF"); //UTF-16のBOM
file.write(str);
file.close();
alert("完了");
注意点けっこうあります。
・y座標はマイナスもプラスもプラスにしちゃってるので、アートボード外オブジェクトなどはおかしな結果となります。
・グループの中身までは拾っていません。
・CS2だかCS3だか以前のバージョンではy座標がおかしなことになる可能性があります。
・数値はすべてポイント(pt)です。
・たぶん、環境設定「プレビュー境界」の影響を受けます。
他にもあるかもしれません。自己責任でどうぞ。
ちゃんとした物が必要な際はメールください(おかねはいただきます)。
[20250] (z-) (2020/03/26 Thu 13:13)
といいつつメールアドレスもwebも記載してませんでした…(いましました)
[20251] (z-) (2020/03/26 Thu 13:16) mail web
わざわざありがとうございました(T_T)
しかしうまく行かないようなので別の方法を考えてみます…
時間を割いていただきほんとにありがとうございました!
[20252] ままま (2020/03/26 Thu 15:29)
どのように、うまくいかなかったのか、おしえていただかないと
ほんとに時間をドブに捨てたことになるんですけど…