今回はテキストファイルの読み込みとBASIC認証です。
サーバー上には、HTMLファイルだけでなく単純なテキストファイルも存在します。この場合も方法は全く同じで、URLさえ間違えなければ大丈夫です。ただし、文字コードによっては自動判別できずに、文字化けしてしまう可能性もあります(あまりに短いテキスト=日本語文字が含まれない100文字以下=の場合など)。以下のサンプルは、読み込んだテキストファイルをInDesign上に配置するものです。
サーバー上には、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で自動化するなら、ぜひ。
< 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
>
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
- Google Maps API逆引きクイックリファレンス―WEB2.0対応
- 古籏 一浩
- 毎日コミュニケーションズ 2006-09
- おすすめ平均
- 簡単にできます
- ようやく出ました。使えるGoogleMapsリファレンス。
by G-Tools , 2008/12/08