画像の存在しないXML属性を削除するスクリプト。(11)最近の投稿オブジェクトレイヤーオプションを制御。自慢話されまくって思ったこと。【InDesignCS3+javascript】link_auto_update.jsxタグ付きテキスト使ったのでメモ。スクリプトデーの勉強部屋行きます。最近のコメント索引作ろうとして目次機能の良さに気づいた。索引作ろうとして目次機能の良さに気づいた。結合セルのせいじゃなかった。http://twitter.com画像の存在しないXML属性を削除するスクリプト。InDesignCS3+javascript.前の投稿からずいぶんと時間が経ってしまいましたw今回、画像が配置されていないフレームにマップされているXML属性(href=”〜”)の部分を全て削除するスクリプトを作成したので公開してみます。ひとつ前の投稿は、InDesignでXML扱うのはデリケートですよねって話だったと思います。その作業中にちょっと躓いてしまいまして。以下のように画像をリンクしたファイルがあるじゃないですか。↑XMLの属性にもしっかりと画像のアドレス(href=”~”)が表示されている。「画像は消すけど、フレームと構造は残しておきたい」って時があるんです。XML的にはXML内の要素がからっぽってことで「ここには画像が入らなかった」という意味合いを持たせたいんですね。いう訳で、フレームから画像のみを削除するんですが...。属性の画像のアドレスは消えないんです。上は、1番3番はフレームから画像を消したものになっています。2番は画像が残ってます。構造パネルではどう表示されているかというと...1番はドキュメント上から画像は消えているのに「属性」の画像アドレスは残ったまま。2番は、構造パネルから「属性」の画像アドレスだけを消しててみたですが、ひとつ前のキャプチャを見ての通りアドレスがなくても画像は生きている。3番はこうなって欲しいっていう理想形。フレームから画像を削除、構造パネル上からも「属性」も削除、という風に2工程を踏んだものです。ドキュメント上から画像を消しても属性が残ったままだと何が怖いかって、XML書き出したものに消したはずの画像アドレスが残ってて、レイアウトで画像を入れていますよって判断されてしまうってことなんです。後からこのXMLを整形してCSVにし、テキスト納品する立場としては、使われていないはずの画像情報が存在しちゃうのは困ってしまう。画像を消すときは構造パネルから属性も削除するという作業を追加するのかと言えば、確実にひと手間増えるし、オペレータ的にはあまり構造パネルを直接いじるのはデリケートなものなので控えたい、と。組版作業ではフレームから画像を消すという作業だけを行ってもらい、構造パネル内の属性の削除は組版後に一気に自動でやってしまおう、ということでスクリプトを作成したわけです。/*画像が配置されていないフレームにマップされているXML属性(href=”〜”)の部分を全て削除するスクリプト※グループのオブジェクトは、1階層目のグループまでしか見ません。グループ内グループへの適用は不可。一浩さんの「組版時間を半減する!InDesign自動処理実例集」を参考にしました。グループ内のフレームを見に行くスクリプトはhttp://gyoniso.blogspot.com/2008/05/indesign_26.htmlを参考にしました。0){//ドキュメントが開かれているかの判定alert(”ドキュメントが開かれていません。(’画像の配置されていないXML属性(href=”〜”)の部分を全て削除します。grpObj[k].rectangles;XML2path(gObj);}}}pbarPanel.close();alert(”完了しました。”);}else{alert(”中止しました。pBar;}以下のような、画像は消したのにXML属性にアドレスが残っているファイル。これでXMLを書き出しても、存在しない画像アドレスは書き出されない、と。スクリプトデーの勉強部屋行きます。