[ 掲示板に戻る ]

記事No.9664に関するスレッドです

もしかしてitemByNameの使い方間違ってます? / Subi
Windows10, InDesign CC2018です。

マスターページのテキストフレームにレイヤーパネルで「ボックス」とオブジェクト名をつけ、流し込みを行いました。
その後各ページの「ボックス」を移動・変形しようと以下のスクリプトを書きましたが、先頭のスプレッドしか反映されません。
ご助言をお願いします。

app.activeDocument.viewPreferences.rulerOrigin = RulerOrigin.SPREAD_ORIGIN;

var doc = app.activeDocument;
var txtB=doc.textFrames.itemByName("ボックス")

for (i=0;i<doc.spreads.length;i++){
try{
txtB.visibleBounds = [7, 7, 12.5, 24];
}catch(e){
}
}

No.9664 2019/09/21(Sat) 11:38:57
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0

Re: もしかしてitemByNameの使い方間違ってます? / お〜まち URL
Subiさんならこれを実行すればでわかるでしょ
var doc = app.activeDocument;
var txtB=doc.textFrames.itemByName("ボックス");
for (i=0;i<doc.spreads.length;i++){
$.writeln(txtB.contents.slice(0, 9));
}

No.9665 2019/09/21(Sat) 14:40:39
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.110 Safari/537.36 Vivaldi/2.7.1628.30

Re: もしかしてitemByNameの使い方間違ってます? / Subi
うわー。直しました。これじゃ一つしかヒットしないですよね。

app.activeDocument.viewPreferences.rulerOrigin = RulerOrigin.SPREAD_ORIGIN;
var doc = app.activeDocument;
for (i=0;i<doc.spreads.length;i++){
var txtB=doc.spreads[i].textFrames.itemByName("ボックス");
try{
txtB.visibleBounds = [7, 7, 12.5, 24];
}catch(e){
}
}



名前に頼らず今の座標で判断するスクリプトも書いたので置いておきます。

app.activeDocument.viewPreferences.rulerOrigin = RulerOrigin.SPREAD_ORIGIN;
//ドキュメントのテキストフレームを対象に
var txtFrame=app.activeDocument.textFrames;
var count=txtFrame.length;
for (var i =count-1; i > -1; i--) {
var y = txtFrame[i].visibleBounds[0];
var x = txtFrame[i].visibleBounds[1];
//座標に±0.1mmの誤差を許容
if((Math.abs(y-7) < 0.1) && (Math.abs(x-7) < 0.1))
{
//テキストフレームを移動
txtFrame[i].visibleBounds = [7, 7, 12.5, 24];
}
}

No.9666 2019/09/21(Sat) 15:28:09
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0