ExtendScript 自前の相互参照の作成その2 ... 相互参照元データを作成する
自前の相互参照の作成その1では、 自前の相互参照を作成したので、 今度は相互参照されるソースを作成する。
ここでは話を簡単にするために、相互参照ソースは…
- 必ず xref_src.indd というファイル内にあることにする
- ひとつのテキストフレームの中の段落全部が総合参照ソース
- 相互参照IDはスクリプトラベルに設定
というローカルルールにする。
相互参照ソース入りind文書の作成 xref_src.indd
相互参照IDは "あなたの選んだ動物" なので、これをスクリプトラベルに設定した テキストフレームを作成し、テキストフレームの中に「猫」とテキストを入れておく。
相互参照IDから相互参照ソースをタグ付きテキストとして書き出す exportXrefSrc.jsx
相互参照ソースデータは /Users/foo/xref_src.indd にあり 該当する相互参照IDをスクリプトラベルに持ったテキストフレームのストリーを /Users/foo/_tmp.txt に書き出す。
//
// 指定したIDをスクリプトラベルに持つTextFrameのストリーをタグ付きテキストとして書き出す
// InDesign CS5
//
var HOME_DIR = "/Users/foo";
function getTf( doc, xref_id ){
var r = null;
for( var i=0; i<doc.textFrames.length; i++ ){
var tf = doc.textFrames.item(i);
if( tf.label ){
//alert( tf.label );
if( xref_id == tf.label ){
r = tf;
}
}
}
return r;
}
function open(){
var file = File(HOME_DIR+"/xref_src.indd");
app.open( file );
return app.activeDocument;
}
function close(doc){
doc.close(SaveOptions.NO);
}
var doc = open();
var tf = getTf( doc, "あなたの選んだ動物" );
if( tf && tf.paragraphs.length>0){
var outputfile = new File(HOME_DIR+"/tagged_text.txt");
var myStory = tf.paragraphs.item(0).parentStory;
myStory.exportFile(ExportFormat.taggedText,outputfile,false);
}
close(doc);