クリエイター手抜きプロジェクト[188]InDesign CS3編 InDesign CS3でFTP、HTTP通信を行う(3)/古籏一浩

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


今回はテキストファイルの読み込みとBASIC認証です。

サーバー上には、HTMLファイルだけでなく単純なテキストファイルも存在します。この場合も方法は全く同じで、URLさえ間違えなければ大丈夫です。ただし、文字コードによっては自動判別できずに、文字化けしてしまう可能性もあります(あまりに短いテキスト=日本語文字が含まれない100文字以下=の場合など)。以下のサンプルは、読み込んだテキストファイルをInDesign上に配置するものです。



●サンプル

// サーバー上にあるHTMLファイルを読み込み配置する
(function(){
var tfObj = app.activeDocument.textFrames.add();
tfObj.visibleBounds = ["2cm", "3cm", "10cm", "14cm"];
var fileObj = getHttpData("http://www.openspc2.org/book/InDesignCS2/sample.txt", "%7E/temp.txt");
var flag = fileObj.open("r");
if(flag == true){
var text = fileObj.read(); // ファイル内容を全て読み込む
tfObj.contents = text;
fileObj.remove(); // 一時的に作成したファイルを削除
}
})();
// 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);
}

■BASIC認証の場合

業務で使われるデータの多くは、外部に公開することができず、アクセスが制限されています。そのような場合、Webサーバーに用意されている簡単な認証方法(BASIC認証)によってデータが保護されていることがあります。

InDesign CS3ではBASIC認証にも対応しており、ユーザー名とパスワードを指定しておけば自動的にログインし必要なデータを読み込む(ダウンロード)することができます。

ユーザー名はhttp.usernameプロパティに、パスワードはhttp.passwordプロパティに設定しておきます。以下のサンプルではパスワードが必要なhttp://www.dgcr.com/secure/フォルダ内にあるtest.txtをダウンロードしInDesign上に配置するものです。なお、URLとユーザー名、パスワードはあくまでもサンプルです。ここではユーザー名をadobe、パスワードをindesignとしていますので、必要に応じて書き換えてください。このサンプルでは以下の行にユーザー名とパスワードを指定しています。

var fileObj = getHttpData2("http://www.dgcr.com/secure/test.txt",
       "%7E/temp.txt", "adobe","indesign");

●サンプル

// パスワード付きページ内にあるテキストファイルを読み込みInDesign上に配置する
(function(){
var tfObj = app.activeDocument.textFrames.add();
tfObj.visibleBounds = ["2cm", "3cm", "10cm", "14cm"];
var fileObj = getHttpData2("http://www.openspc2.org/%7Eadobe/secure/test.txt",
         "%7E/temp.txt", "adobe","indesign");
var flag = fileObj.open("r");
if(flag == true){
var text = fileObj.read(); // ファイル内容を全て読み込む
tfObj.contents = text;
fileObj.remove(); // 一時的に作成したファイルを削除
}
})();
// HTTPを使って指定されたサーバー上の保護されたデータを読み込みファイルオブジェクトを返す
// (ApacheサーバーのBasic認証)
function getHttpData2(sURL, filePath, id, pw){
if ( !ExternalObject.webaccesslib ) {
ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}
var http = new HttpConnection(sURL) ;
http.response = new File(filePath) ;
http.username = id; // ユーザー名
http.password = pw; // パスワード
http.execute() ;
http.response.close() ;
return new File(filePath);
}


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

EOS 5D Mark II──なぜかキヤノンに送り返して交換ということになってしまいました。ということで、当面カメラは返ってこないので、他のことをやることに。

組版時間を半減する! InDesign自動処理実例集◇「組版時間を半減する! InDesign自動処理実例集」
InDesignで自動化するなら、ぜひ。
< http://www.amazon.co.jp/dp/4774136875/dgcrcom-22/ >

◇EOS 5D Mark IIで撮影した動画素材ページ
EOS 5D Mark IIで撮影した30Fのハイビジョン動画素材ページを用意しました。
< http://www.openspc2.org/HDTV/footage/HD/30f/ >

◇塩尻市、自動販売機マップ
GPSとデジカメで、塩尻市内の自動販売機マップを作成してみました。ただし、IEでは正常に動作しません。オブジェクトのプロパティに値を入れても、そんなのなかった事になっちゃう仕様…? 秋葉原に行かなくても、塩尻市内でもラーメン缶売っている自動販売機がありました。予想外でした。
< http://www.openspc2.org/food/drink/map.html >

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

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂新版 SQLポケットリファレンス (Pocket reference) 改訂第5版 オールカラー  HTML ポケットリファレンス (POCKET REFERENCE) スタイルシート ポケットリファレンス (Pocket reference) 基礎 Ajax + JavaScript



photo
Google Maps API逆引きクイックリファレンス―WEB2.0対応
古籏 一浩
毎日コミュニケーションズ 2006-09
おすすめ平均 star
star簡単にできます
starようやく出ました。使えるGoogleMapsリファレンス。

Google Maps API徹底活用ガイド Google Maps APIv2活用リファレンス Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック Googleマップ+Ajaxで自分の地図をつくる本  Google Maps API徹底活用 入門Webマッピング―自分で作るオリジナルのデジタル地図

by G-Tools , 2008/12/08