:note

索引項目(索引マーカー)にカラーリング

InDesignの索引項目に色付けメモ。多分こういうことだと。

マーカーはInsertionPointでしかないので、索引項目の文字数から範囲を指定して色づけしているだけ。

元ネタは ここ

/**
 * coloring topics for the index
 *  
 */
var doc = app.documents[0];

var swatch_obj;
var marker_name = "Marker";
try  {
  swatch_obj = doc.colors.add({
      model:ColorModel.PROCESS, 
      space:ColorSpace.CMYK, 
      colorValue:[100,0,50,0], 
      name:marker_name});
}
catch(e){
  swatch_obj = doc.swatches.item(marker_name);
}
//indexes
var index_obj = doc.indexes;
for (var ini=0, iniL=index_obj.length; ini < iniL ; ini++) {
  //topics of each indexes
  var topic_obj = index_obj[ini].topics;
  for (var tpi=0, tpiL=topic_obj.length; tpi < tpiL ; tpi++) {
    //topics length => range
    var tp_leng = topic_obj[tpi].name.length;
    //topics reference point
    var tp_refer = topic_obj[tpi].pageReferences[0].sourceText;//insertion point
    //parent story
    var tp_parent = tp_refer.parentStory;
    //set target text object to coloring
    var target = tp_parent.characters.itemByRange(tp_refer.index, tp_refer.index + tp_leng);
    target.fillColor = swatch_obj;
  };
};

 
comments powered by Disqus
back to top