クリエイター手抜きプロジェクト[213]Illustrator CS3/CS4編 Web上にあるファイルを読み込み配置する
── 古籏一浩 ──

投稿:  著者:


今回のネタは、インターネット上にあるファイル(テキストファイル、HTMLファイル、XMLファイル)をBridge CS3/CS4経由で読み込み、Illustrator CS3/CS4に配置します。

まず、以下のファイルで読み込むファイルがあるURLを変更してから、ホームフォルダにgetWebData.jsxというファイル名で保存します。
URLは
var fileObj = getHttpData("http://www.openspc2.org/index.html
", "~/temp.txt");

http://www.openspc2.org/index.html

を変更してください。ファイルに日本語が含まれる場合には、UTF-8の文字コードでないと文字化けしてしまいます。




// サーバー上にあるHTMLファイルを読み込む
var fileObj = getHttpData("http://www.openspc2.org/index.html
", "~/temp.txt");
var flag = fileObj.open("r");
if(flag != true){
alert("エラーです");
}
// HTTPを使って指定されたサーバーのデータを読み込みファイルオブジェクトを返す
function getHttpData(sURL, filePath){
if ( !ExternalObject.webaccesslib ) {
ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}
var http = new HttpConnection(sURL);
http.response = new File(filePath);
http.execute();
http.response.close();
return new File(filePath);
}


保存したら、次に以下のスクリプトをIllustrator CS3から実行します。これで、Bridge CS3経由でファイルがホームフォルダにtemp.txtという名前で保存され、Illustrator CS3にテキストとして配置されます。

ただし、以下のファイルはインターネットからファイルがダウンロードできなかった場合は、ずっと待ちの状態になって終了できません。そのときは、ホームフォルダに temp.txt という名前のファイルを作成すれば終了します。

また、環境によっては作成されたファイル内容が正しく読み込まれないことがあります。というのも、ファイルが作成されてもファイル内容が書き込まれていないことがあるためです。そこで

wait(2); // 待ち時間を2秒に設定

のようにして2秒待つようにしています。もし、うまく読み込めないのであれば、この秒数を増やしてください。


// Illustrator CS3からBridge CS3を経由してWebデータを取得
var fs = new File("~/getWebData.jsx");
fs.open("r");
bridge2.executeScript(fs.read());
// temp.htmlファイルを読み込み
var fs2 = new File("~/temp.txt");
while(!fs2.exists);
wait(2); // 待ち時間を2秒に設定
fs2.open("r");
// エリアテキストを作成
rectPath = activeDocument.pathItems.rectangle(0,0,480,240);
txtObj = activeDocument.textFrames.areaText(rectPath);
txtObj.contents = fs2.read();
// temp.txtファイルを削除
fs2.remove();
// 待ち時間を処理する関数
function wait(sec){
var e = (new Date()).getTime() + sec*1000;
while((new Date()).getTime() <= e);
}


Illustrator CS4の場合は、Bridge CS3が起動しているとうまく動作しないことがあります。この場合、上記のスクリプトを以下のように変更した後、Bridge CS4を先に起動してから実行してください。

bridge2.executeScript(fs.read());
  ↓
bridge3.executeScript(fs.read());

Webサーバーが停止しているような場合は、延々と待ち続けてしまうというオチがありますが、その場合は強制終了させてください。


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

運良く雲の隙間から部分日食を見ることができました。雲が厚かったので肉眼でもOKでした。一応ビデオカメラでも短時間ですが撮影できたので、素材のページにアップしておきました。皆既日食だったらなおいいんでしょうけど……。
・ハイビジョン映像素材
< http://www.openspc2.org/HDTV/
>

Ext JS入門―リッチUIなWebサイトをつくるAjaxフレームワークやっとExt JS本出ました。
「Ext JS入門 リッチUIなWebサイトをつくるAjaxフレームワーク」
秀和システム
SBN-10: 479802323X
ISBN-13: 978-4798023236
< http://www.amazon.co.jp/gp/product/479802323X/dgcr-22
>

ASCII.jpの連載もよろしく
iPhoneがJavaScript+SQLiteでGPSレコーダーに!
< http://ascii.jp/elem/000/000/434/434928/
>
PhotoshopのフィルターをJavaScriptで作る!
< http://ascii.jp/elem/000/000/437/437333/
>

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

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂第6版 HTML&スタイルシート ポケットリファレンス (POCKET REFERENCE) JavaScriptプログラミング入門 第2版 よくわかるゼロからはじめるJavaScript (よくわかるトレーニングテキスト) [改訂版] VBScriptポケットリファレンス (POCKET REFERENCE)



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

1ランク上の技を身につけるInDesignの強化書 (MYCOMムック +DESIGNING Professional Bible) InDesignレイアウト手帖 Adobe InDesign「文字組み」徹底攻略ガイド InCopyとInDesignによるワークフロー革命 CS4 & CS3 対応 for Macintosh & Windows これからはじめる InDesignの本 〈InDesignI CS3対応〉 (自分で選べるパソコン到達点)

by G-Tools , 2009/07/27