今回はSを小、Mを中、Lを大に置換するスクリプト......ではなく、前々回の流れのまま常用漢字以外が使われているかどうかを調べるスクリプトです。今度はInDesign CS3/CS4用です。
まず、これまで同様に以下のサイトから常用漢字のファイルをダウンロードし、デスクトップとか分かりやすいところに保存してください。すでにダウンロード済みの場合は、新たにダウンロードする必要はありません。
●常用漢字データ
< http://www.openspc2.org/projectX/data/jyouyoukanjidata.txt
>
最初のスクリプトは単純に常用漢字以外が使われているかどうかを調べるものです。常用漢字以外があれば、ダイアログを表示します。ちなみに、このスクリプトはInDesignでもイラストレータでも共通して動作する珍しい(?)パターンです。
まず、これまで同様に以下のサイトから常用漢字のファイルをダウンロードし、デスクトップとか分かりやすいところに保存してください。すでにダウンロード済みの場合は、新たにダウンロードする必要はありません。
●常用漢字データ
< http://www.openspc2.org/projectX/data/jyouyoukanjidata.txt
>
最初のスクリプトは単純に常用漢字以外が使われているかどうかを調べるものです。常用漢字以外があれば、ダイアログを表示します。ちなみに、このスクリプトはInDesignでもイラストレータでも共通して動作する珍しい(?)パターンです。
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.selection[0]; // 最初に選択したテキストブロックのみ対象
kanjiChecker(sel.contents);
}else{
alert("ファイルが開けませんでした");
}
}
次のスクリプトは、常用漢字以外であれば該当漢字を赤色にします。checkREDという名前のスウォッチとして登録されます。すでに同名のスウォッチが登録されている場合はそれを使用しますので、赤色以外の色にすることもできます。
このスクリプトも文字属性を変更する前に使用することと、表示されている範囲のみチェックを行います。フレーム外の場合はチェックしないので注意してください。
function kanjiChecker(selObj){
for (var i=0; i<32; i++){
k += String.fromCharCode(i);
}
var txt = selObj.contents;
k += kanjidata;
var result = "";
for(i=0; i< txt.length; i++){
var p = k.indexOf(txt.charAt(i));
if (p < 0){
selObj.characters[i].fillColor = checkColor;
}
}
return result;
}
var kanjidata;
var setColor = [0, 100, 100, 0];
var pageObj = app.activeDocument;
try{
var checkColor = pageObj.colors.add({
name:"checkRED",
model:ColorModel.process,
space:ColorSpace.cmyk,
colorValue:setColor});
}catch(e){
checkColor = pageObj.colors.item("checkRED");
}
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 = pageObj.selection[0]; // 最初に選択したテキストブロックのみ対象
kanjiChecker(sel);
}else{
alert("ファイルが開けませんでした");
}
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
3連続で同じネタ。まあ、同じネタでもアプリケーションごとに違うので(汗)InDesign CS2は実行環境がないので動作確認できませんが、多分動くのではないかと思います。
IllustratorのJavaScriptプログラム、リファレンスどおりに動かないものも結構あります......。Labカラーオブジェクトがあるのに指定するとエラー(生成はできる)。他にも、いろいろやってみると、いきなり落ちたり不安定な部分がまだあるようです。
FinalCut Pro 7にしましたが、64bitアプリじゃないんですねぇ。H264エンコードはCPU300%くらい使うけど、これだと全体の負荷からすれば1/4くらい。マシンパワー余っているんだから、もっと使って欲しいと思うんですが......。街道を走るネタもエンコードが間に合わず次回へ少し持ち越し。でも、予想よりもアクセスがあり見る人も多いようです。
・毎度おなじみASCII.jpの連載もよろしく
JSで超ド派手なアニメが作れる「UIZE Framework」入門
< http://ascii.jp/elem/000/000/466/466515/
>
・ハイビジョン映像素材もいろいろ追加
< http://www.openspc2.org/HDTV/
>

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.selection[0]; // 最初に選択したテキストブロックのみ対象
kanjiChecker(sel.contents);
}else{
alert("ファイルが開けませんでした");
}
}
次のスクリプトは、常用漢字以外であれば該当漢字を赤色にします。checkREDという名前のスウォッチとして登録されます。すでに同名のスウォッチが登録されている場合はそれを使用しますので、赤色以外の色にすることもできます。
このスクリプトも文字属性を変更する前に使用することと、表示されている範囲のみチェックを行います。フレーム外の場合はチェックしないので注意してください。
function kanjiChecker(selObj){
for (var i=0; i<32; i++){
k += String.fromCharCode(i);
}
var txt = selObj.contents;
k += kanjidata;
var result = "";
for(i=0; i< txt.length; i++){
var p = k.indexOf(txt.charAt(i));
if (p < 0){
selObj.characters[i].fillColor = checkColor;
}
}
return result;
}
var kanjidata;
var setColor = [0, 100, 100, 0];
var pageObj = app.activeDocument;
try{
var checkColor = pageObj.colors.add({
name:"checkRED",
model:ColorModel.process,
space:ColorSpace.cmyk,
colorValue:setColor});
}catch(e){
checkColor = pageObj.colors.item("checkRED");
}
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 = pageObj.selection[0]; // 最初に選択したテキストブロックのみ対象
kanjiChecker(sel);
}else{
alert("ファイルが開けませんでした");
}
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
3連続で同じネタ。まあ、同じネタでもアプリケーションごとに違うので(汗)InDesign CS2は実行環境がないので動作確認できませんが、多分動くのではないかと思います。
IllustratorのJavaScriptプログラム、リファレンスどおりに動かないものも結構あります......。Labカラーオブジェクトがあるのに指定するとエラー(生成はできる)。他にも、いろいろやってみると、いきなり落ちたり不安定な部分がまだあるようです。
FinalCut Pro 7にしましたが、64bitアプリじゃないんですねぇ。H264エンコードはCPU300%くらい使うけど、これだと全体の負荷からすれば1/4くらい。マシンパワー余っているんだから、もっと使って欲しいと思うんですが......。街道を走るネタもエンコードが間に合わず次回へ少し持ち越し。でも、予想よりもアクセスがあり見る人も多いようです。
・毎度おなじみASCII.jpの連載もよろしく
JSで超ド派手なアニメが作れる「UIZE Framework」入門
< http://ascii.jp/elem/000/000/466/466515/
>
・ハイビジョン映像素材もいろいろ追加
< http://www.openspc2.org/HDTV/
>

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