« ■電子浮世絵版画家の東西見聞録[43]根津のたいやきと塩ゆで落花生/HAL_ | index | ■KNNエンパワーメントコラム KNN Night vol.13 iPhone Night!/神田敏晶 »

■クリエイター手抜きプロジェクト[174]Illustrator CS2/CS3編 フォルダ内のファイル一覧を表示する/古籏一浩

with Ajax Amazon
この連載で、過去に一度しかやっていないネタがあります。それが今回の「フォルダ内のファイル一覧を表示する」というものです。非常に簡単そうに見えますが(Windows版なら確かにそうです)、MacOS XとIllustrator CS2/CS3の場合、簡単にはいきません。

というのも、MacOS X上で動作するAdobe系のソフトは、ファイル名に濁点(がぎぐげご)や半濁点(ぱぴぷぺぽ)が含まれると正しく処理および表示されないためです。

MacOS Xのバージョンによって違うかもしれませんが、MacOS X Tiger (10.4) + Illustrator CS2では濁点などは分離して処理されてしまいます。MacOS X Leopard (10.5) + Illustrator CS3では濁点などは文字化けして(四角にバツ)表示されてしまいます。

これは、InDesign CS2でも発生していた症状です。この不具合があるため、手軽にファイル一覧を取得して処理したいということができなかったわけです。

この処理を行なわない(Windowsであれば)場合には、以下のスクリプトで簡単にIllustrator上にファイル一覧を表示することができます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━ 印刷通販 PR ━
チラシ印刷ポスター印刷新聞折込チラシカタログ印刷冊子印刷
ポストカード印刷巻き三つ折り観音折りなどに対応した印刷サービス
印刷会社はこちらから↓↓↓ 選挙ポスター印刷もあります。
http://www.ddc.co.jp/index.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━ 印刷通販 PR ━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

CR = String.fromCharCode(13);
docObj = app.activeDocument;
foldername = Folder.selectDialog("フォルダを指定してください");
if (foldername)
{
fileList = foldername.getFiles();
result = "";
for (i=0; i< fileList.length; i++)
{
result += File.decode(fileList[i].name) + CR;
}
textObj = docObj.textFrames.add();
textObj.contents = result;
textObj.translate(0,700);
}

しかし、これではMacOS X Tiger/Leopardでは濁点が正しく処理されないので、以下のように特別な処理を行なって、ファイル一覧を表示します。

dakuten = "%E3%82%99";
handakuten = "%E3%82%9A";
CR = String.fromCharCode(13);
docObj = app.activeDocument;
foldername = Folder.selectDialog("フォルダを指定してください");
if (foldername)
{
fileList = foldername.getFiles();
result = "";
for (i=0; i< fileList.length; i++)
{
filename = fileList[i].name;
filename = convertKana(filename,dakuten,1);
filename = convertKana(filename,handakuten,2);
result += File.decode(filename) + CR;
}
textObj = docObj.textFrames.add();
textObj.contents = result;
textObj.translate(0,700);
}
function convertKana(srcName, code, count)
{
srcName = srcName.replace(/%E3%82%BF%E3%82%99/g, "%E3%83%80"); // ダだけ特殊処理
var text = srcName.split(code); // 濁点
for (var i=0; i< text.length-1; i++)
{
var str = text[i];
if (str == "") continue;
var body = str.substring(0,str.length-2);
var footL = str.substring(str.length-2, str.length);
var hexL = eval("0x"+footL) + count;
hexL = hexL.toString(16).toUpperCase();
text[i] = body+hexL;
}
return text.join("");
}

テーブルで対応する文字を置換する、という方法は残念ながら使えません。というのも、内部で比較する際には「た”」も「だ」も同じとみなされてしまうためです。

結局、仕方ないので内部コード(ユニコード)を操作して最後にFile.decode()で日本語に復元するという処理を行なっています。幸い「ダ」以外は+1または+2の加算で処理できるためです。


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

InDesign CS2やPhotoshop CS3には、まだ知らない機能が隠されていました。
それにしても、今回の文字化け解消ネタですが、Photoshop CS3でも発生してしまうのには困りものです。あと、ファイル名には有効ですが、ファイルパスに適用するとうまくいかないので注意してください。

< Ajaxライブラリでかんたんインターフェイスデザイン >
< http://www.amazon.co.jp/exec/obidos/ASIN/4861005698/dgcr-22/ >
< 実践!Ajaxフレームワーク jQuery >
< http://www.amazon.co.jp/exec/obidos/ASIN/4839928541/dgcr-22/ >

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

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂新版 SQLポケットリファレンス (Pocket reference) 基礎 Ajax + JavaScript 改訂第5版 オールカラー  HTML ポケットリファレンス (POCKET REFERENCE) JavaScriptプログラミング入門 第2版



photo
Ajaxライブラリで かんたんインターフェイスデザイン
古籏一浩
ビー・エヌ・エヌ新社 2008-06-25



photo
実践!Ajaxフレームワーク jQuery
古籏 一浩
毎日コミュニケーションズ 2008-06-28
おすすめ平均 star
starもうすこしサンプルの解説がほしいところ

jQueryで作る Ajaxアプリケーション Ajax ポケットリファレンス (POCKET REFERENCE) prototype.jsとscript.aculo.usによるリッチWebアプリケーション開発 prototype.jsパーフェクトリファレンス―Ajax実践プログラミング JavaScript & DHTMLクックブック 第2版 Webエキスパート必携テクニック集

by G-Tools , 2008/07/07

最近の関連エントリー

トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

back number

Trackbacks

生物進化過渡現象の謎... (哲学はなぜ間違うのか? 2010年6月26日)

デジクリにSwift 3D V5が紹介されました。... (ストーム君日記 2009年1月23日)

デジクリにSwift 3D V5が紹介されました。... (ストーム君日記 2009年6月19日)

うらうつり... (area-Bログ 2009年2月10日)

[DTP][印刷]「裏抜け」と「プリントスルー」... (DTP+印刷営業メモ 2009年2月11日)

「右」と「左」って何だろう〜... (映画とマーケティング日誌 2009年2月 5日)

デジクリ出演... (tech tech okdt 2008年12月15日)

来月は12月だし... (area-Bログ 2008年11月10日)

広告を変えるレスポンスCM動画... (福岡デザイン日記 2008年10月 1日)

専門用語には必ず「読みがな」を付けてほしい... (M.C.P.C. 2008年7月22日)

T-Time... (あさりの楽天倉庫 2008年7月 3日)

[社会]人と関わること... (DTP+印刷営業メモ 2008年6月18日)

DTP Booster 014(Tokyo/100619)

categories

XML FEED
Powered by
Movable Type 4.261