クリエイター手抜きプロジェクト[221]Adobe PhotoshopCS/CS2/CS3/CS4編 常用漢字以外が使われているか調べる/古籏一浩

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


今回も、常用漢字以外が使われているかどうか調べるスクリプトです。Photoshop CS以降で動作するようになっています。来年あたりに出ると思われるCS5でも多分、動くでしょう。

Photoshopの場合、イラストレータと違いスクリプトでは手軽に文字を処理できません。特に1文字ごと処理することが難しい(Scripting Listenerを使って記録すれば不可能ではない)ため、仕方なく常用漢字以外を■に置き換えるという方法をとっています。

まず、前回同様に以下のサイトから常用漢字のファイルをダウンロードしデスクトップなど分かりやすいところに保存してください。

●常用漢字データ
< http://www.openspc2.org/projectX/data/jyouyoukanjidata.txt >


最初のスクリプトは単純に常用漢字以外が使われているかどうかを調べるものです。常用漢字以外があれば、ダイアログを表示します。

function kanjiChecker(txt){
for (var i=0; i<32; i++){
k += String.fromCharCode(i);
}
k += kanjidata;
for(i=0; i< txt.length; i++){
var p = k.indexOf(txt.charAt(i));
if (p < 0){
alert((i+1)+"番目に常用漢字以外の漢字が含まれています。");
break; // 1文字でもあったら以後は処理しません
}
}
}
var kanjidata;
var filename = File.openDialog("常用漢字ファイルを指定してください");
if (filename){
var fileObj = new File(filename);
var flag = fileObj.open("r");
if (flag == true){
kanjidata = fileObj.read();
fileObj.close();
sel = app.activeDocument.activeLayer; // 最初に選択したテキストブロックのみ対象
kanjiChecker(sel.textItem.contents);
}else{
alert("ファイルが開けませんでした");
}
}


上記のスクリプトでは、常用漢字以外が多数含まれている場合に不便なのと、どこが常用漢字なのかわかりません。

そこで、常用漢字以外であれば■に文字を置換することで分かりやすくしたものが以下のスクリプトです。ただし、実行前に注意しておくことがあります。それは、文字の色などを1文字単位で設定していると、文字属性が失われてしまうということです。このため、文字属性を個別に設定する前にスクリプトを実行するようにしてください。


function kanjiChecker(txt){
for (var i=0; i<32; i++){
k += String.fromCharCode(i);
}
k += kanjidata;
var result = "";
for(i=0; i< txt.length; i++){
var p = k.indexOf(txt.charAt(i));
if (p < 0){
result += "■";
}else{
result += txt.charAt(i);
}
}
return result;
}
var kanjidata;
var filename = File.openDialog("常用漢字ファイルを指定してください");
if (filename){
var fileObj = new File(filename);
var flag = fileObj.open("r");
if (flag == true){
kanjidata = fileObj.read();
fileObj.close();
sel = app.activeDocument.activeLayer.textItem; // 最初に選択したテキストブロックのみ対象
sel.contents = kanjiChecker(sel.contents);
}else{
alert("ファイルが開けませんでした");
}
}


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >

サンシャイン牧場、いきなり有料アイテムが。肥料が有料で、高い肥料ほど早く作物が育つ、と。金で時間を買うという仕組みの方向みたい。デコレーションアイテムよりいいのかもしれません。

毎度おなじみ(?)アスキーの連載もよろしく
【Yahoo! UI Library 3で驚きのアニメーションを作成】
< http://ascii.jp/elem/000/000/469/469234/ >

さりげなく、どこかで聞いたような感じのジョークも追加しました。
< http://www.openspc2.org/serif/index.html >

photo
改訂第4版 JavaScript ポケットリファレンス
技術評論社 2006-10-18
おすすめ平均 star
star実用的で分かり易い
starJavaScriptを使ったプロジェクトのお供に是非
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂第6版 HTML&スタイルシート ポケットリファレンス (POCKET REFERENCE) JavaScriptワークブック―ステップ30 (情報演習 (5)) JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス [改訂版] VBScriptポケットリファレンス (POCKET REFERENCE)



photo
組版時間を半減する! InDesign自動処理実例集
技術評論社 2008-11-25
おすすめ平均 star
starプログラミング経験のない方も気軽に挑戦してほしいです

1ランク上の技を身につけるInDesignの強化書 (MYCOMムック +DESIGNING Professional Bible) InCopyとInDesignによるワークフロー革命 CS4 & CS3 対応 for Macintosh & Windows Adobe InDesign「文字組み」徹底攻略ガイド InDesignレイアウト手帖 InDesign CS3の仕事術

by G-Tools , 2009/10/26