037.【ID】アンカー付きオブジェクトの設定を揃える
書いたコード
var doc = app.activeDocument; var sels = doc.selection; var refSel = sels[0]; var refPref = refSel.anchoredObjectSettings.properties; var stry = refSel.parent.parentStory; stry.pageItems.everyItem().anchoredObjectSettings.properties=refPref; // ついでにテキストの回り込み var refPref2 = refSel.textWrapPreferences.properties; stry.pageItems.everyItem().textWrapPreferences.properties=refPref2; // ついでに縦組み中で回転値を0に //~ stry.pageItems.everyItem().absoluteRotationAngle=0; stry.pageItems.everyItem().absoluteRotationAngle=90;
メモ
分かったこと
当初の目論見では、
var refPref=selections[0].anchoredObjectSettings; // 略 stry.pageItems[i].anchoredObjectSettings=refPref;
のようにするつもりだった。
が、anchoredObjectSettingsは読み取り専用。
anchoredObjectSettingsの全ての設定を含んだプロパティとしてpropertiesがあり、これは書き換え可能。
このpropertiesというのは色んなオブジェクトが持ってる。
なにかまとめて設定したいときはこれを使えばよさそう。
分からなかったこと
回転値の考え方。
縦組み中ではabsoluteRotationAngle=90すると回転値が0になる。
積み残し
例外処理
オブジェクトを選択していなかったら
選択オブジェクトがアンカー付きオブジェクトでなかったら
参考
- 縦組み中のアンカー付きオブジェクト処理 - なんでやねんDTP・新館
縦組み中でアンカー付きオブジェクトが回転してしまう問題について、縦注横にするという解決法。 - site:indesign.cs5.xyz/dom properties - Google 検索
propertiesを持っているひとびと。