クリエイター手抜きプロジェクト[502]Adobe InDesign CS6〜CC 2017編 書体、色、サイズが一致した文字をファイルに書き出す/古籏一浩

投稿:  著者:  読了時間:7分(本文:約3,200文字)


今回は、InDesignで文字の書体、色、サイズが一致した場合、その文字をテキストファイルに書き出すスクリプトです。

以下のスクリプトは文字のカラーがCMYKで指定されている場合です。




// 書体、太さ、サイズ、色が一致した文字をテキストファイルで書き出す
// 文字に指定されている色がCMYKの場合
function writeTextCMYK(fontName,fontWeight,fontSize,fontColor){
var outputFile=File.saveDialog("保存するテキストファイル名");
if(!outputFile){return;}
var flag=outputFile.open("w");
if(!flag){
alert("ファイルを書き出せません");
return;
}
var pages=app.activeDocument.pages;
var text="";
for(var i=0; i<pages.length; i++){
text=text+"■ページ:"+(i+1)+"\n";
for(var j=0; j<pages[i].textFrames.length; j++){
for(var k=0; k<pages[i].textFrames[j].characters.length; k++){
var c=pages[i].textFrames[j].characters[k];
if((c.appliedFont.fontFamily==fontName) &&
(c.fontStyle==fontWeight) &&
(c.pointSize==fontSize) &&
(c.fillColor.colorValue[0]==fontColor[0]) &&
(c.fillColor.colorValue[1]==fontColor[1]) &&
(c.fillColor.colorValue[2]==fontColor[2]) &&
(c.fillColor.colorValue[3]==fontColor[3])){
text=text+c.contents;
}
}
}
text=text+"\n--------------------\n";
}
outputFile.writeln(text);
outputFile.close();
}
// 書体、太さ、サイズ、色[C,M,Y,K]
writeTextCMYK("小塚明朝 Pro","R",13,[75,5,100,0]);


書体やサイズなどを変更する場合は、writeTextCMYK() のパラメーターを調整してください。パラメーターは書体名、書体のスタイル(太さ)、文字サイズ、CMYKの順で指定した配列の順番になります。

なお、ページ単位で文字を出力していますが、「■ページ:3」のようなページを示す文字をファイルに書き出したくない場合は

text=text+"■ページ:"+(i+1)+"\n";

の行を削除してください。

印刷であれば文字の色はCMYKで指定しますが、場合によってはCMYK以外のカラーで指定することもあるかもしれません。色の一致処理は、文字に指定されているカラーの種類によって異なります。

以下のスクリプトは文字にRGBカラーが指定されている場合です。


// 書体、太さ、サイズ、色が一致した文字をテキストファイルで書き出す
// 文字に指定されている色がCMYKの場合
function writeTextRGB(fontName,fontWeight,fontSize,fontColor){
var outputFile=File.saveDialog("保存するテキストファイル名");
if(!outputFile){return;}
var flag=outputFile.open("w");
if(!flag){
alert("ファイルを書き出せません");
return;
}
var pages=app.activeDocument.pages;
var text="";
for(var i=0; i<pages.length; i++){
text=text+"■ページ:"+(i+1)+"\n";
for(var j=0; j<pages[i].textFrames.length; j++){
for(var k=0; k<pages[i].textFrames[j].characters.length; k++){
var c=pages[i].textFrames[j].characters[k];
if((c.appliedFont.fontFamily==fontName) &&
(c.fontStyle==fontWeight) &&
(c.pointSize==fontSize) &&
(c.fillColor.colorValue[0]==fontColor[0]) &&
(c.fillColor.colorValue[1]==fontColor[1]) &&
(c.fillColor.colorValue[2]==fontColor[2])){
text=text+c.contents;
}
}
}
text=text+"\n--------------------\n";
}
outputFile.writeln(text);
outputFile.close();
}
// 書体、太さ、サイズ、色[赤,緑,青]
writeTextRGB("小塚明朝 Pro","R",13,[255,64]);


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

近くの大規模農家が健康を害して農業をやめるとのこと。後継者がいないので終わりにするそうです。大規模農家に集約する流れがあるけど、後継者がいなかったり技術を引き継げない場合は、大規模に農地が荒れ地(もしくは宅地など)になります。

規模が大きいだけに、それがなくなった時のダメージも大きい。近くではないけど昔、お客さんだった農家は息子が引き継いでやってるようなので、あと20年くらいは持ちそうだけど……。

いつまでもあると思うな米と金、みたいな言葉がいずれ出てきたりするかもしれません。

・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/

・After Effects自動化サンプルプログラム 上巻
https://www.amazon.co.jp/dp/4844397591

・After Effects自動化サンプルプログラム 下巻
https://www.amazon.co.jp/dp/4844397605

・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/