|
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の使い方間違ってます? / お〜まち |
|
|
|
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
|
|