2009年1月28日水曜日

スクリプトでタグ付きフレームの画像を削除するとタグが抜ける?


InDesignCS3です。こんな感じに、タグ付フレームに入った画像があったとします。
試しに、ひとつ画像を選択して、
var selObj=app.activeDocument.selection[0];
selObj.allGraphics[0].remove();

すると、画像と一緒にXMLのタグも画像フレームから外れてしまいます。

あれー…??

仕方がないんで、タグ部分をいったん退避してから削除して、フレームにもう一度結びつけ直しました。
var selObj=app.activeDocument.selection[0];
//タグを退避させる
var tag=selObj.associatedXMLElement;
//タグから画像のリンクを削除
tag.xmlAttributes[0].remove();
//画像を削除
selObj.allGraphics[0].remove();
//フレームにタグを結び直す
selObj.placeXML(tag);
//テキストフレームになってしまうので、画像フレームに戻す
selObj.contentType=ContentType.GRAPHIC_TYPE;

これで、とりあえずフレームにタグを残す事はできました。

ただ、これはもっと上手い方法があるような気が…
こういう場合はどこをどう削除すればいいんでしょう?

0 件のコメント: