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

投稿:  著者:


今月(2008/11)末に「組版時間を半減する! InDesign 自動処理実例集」が発売されます。今回から7回にわたって、この書籍に掲載できなかったテキストを一部修正し掲載します。このネタ元は、以下のアドビフォーラムにあるものです。
< http://www.adobeforums.com/webx/.3c05d466
>

それで注意事項なのですが、動作が確認できているのはMacOS X版のInDesign CS3のみです。Windows版に関しては、上記フォーラムなど参考にしてやってみるのもよいかと思います(Windows XPでやってもらったのですが、うまくいきませんでした)。

掲載できなかったネタは、タイトルにあるようにInDesign CS3でFTP、HTTP通信を行うというものです。InDesign CS3やPhotoshop CS3にはソケット通信機能が搭載されており、Webサーバーとやりとりしたりメールを送信することができます。

とはいえ、InDesignユーザーがいきなりソケット通信機能を使ってFTPやHTTPの処理を行うのはハードルが高いでしょう。そうでなくても、認証機能の搭載やバイナリファイルの処理などが絡むと、面倒か場合によっては不可能な場合もあります。

そこで、InDesign CS3を改造してFTP、HTTP通信ができるようにします。InDesign CS3アプリケーション本体に手を加えるので、自己責任で行ってくださるようお願いします。失敗しておかしくなった場合には、InDesign CS3を再度インストールすれば元にもどります。また、これから説明する手順でやってもうまくいかない可能性もあります。

改造すると言っても、Bridge CS3にある機能をファイルごとコピーするだけで、さらに決められたプログラムをターミナルから実行するだけなので簡単に終わります。

InDesign CS3でFTP、HTTP、HTTPSが利用できればサーバーにあるJPEGファイルなどをダウンロードし、その後ページ上に配置することが可能になります。

今回は準備段階ということでInDesign CS3を改造します。



以下のシェルスクリプトを、テキストエディタで入力し保存します。とりあえず、ホームフォルダ内にIDCS3netCopy.shという名前で保存します。次にアプリケーションフォルダ内にある、ユーティリティフォルダ内のターミナルを起動します。ターミナルが起動したら、以下のように入力しリターンキーを押します。

chmod 755 ./IDCS3netCopy.sh

次に、以下のように入力しターミナルからシェルスクリプトを実行します。

./IDCS3netCopy.sh

実行すると、処理するごとに英文字が表示されます。特にエラーなく終了したらターミナルを終了します。
これで、Bridge CS3の通信機能がInDesign CS3に入ったことになります。


#!/bin/sh
cd "/Applications/Adobe InDesign CS3/Adobe InDesign CS3.app/Contents/MacOS"
cp -R "/Applications/Adobe Bridge CS3/Bridge CS3.app/Contents/MacOS/webaccesslib.bundle" .

ln -s webaccesslib.bundle/AdobeLibraries/libcurl.3.0.0.dylib libcurl.3.0.0.dylib
ln -s webaccesslib.bundle/AdobeLibraries/libSSL.dylib libSSL.dylib
ln -s webaccesslib.bundle/AdobeLibraries/libCrypto.dylib libCrypto.dylib
ln -s webaccesslib.bundle/AdobeLibraries/libCoreTypes.dylib libCoreTypes.dylib
ln -s webaccesslib.bundle/AdobeLibraries/libChar16.dylib libChar16.dylib

cd "/Applications/Adobe InDesign CS3/Adobe InDesign CS3.app/Contents/Frameworks"
ln -s ../MacOS/webaccesslib.bundle/AdobeLibraries/NetIO.framework NetIO.framework


上記の処理が正しく行われ、InDesign CS3でFTP、HTTPが使えるかどうか以下のチェック用スクリプトで確認してください。

◇チェック用スクリプト

// FTP, HTTPチェッカー
(function(){
if ( !ExternalObject.webaccesslib ) {
ExternalObject.webaccesslib = new ExternalObject('lib:webaccesslib');
}
var sURL = "www.yahoo.co.jp";
var ftp = new FtpConnection("ftp://"+sURL);
var http = new HttpConnection("http://
"+sURL);
alert(ftp);
alert(http);
})();


のチェック用スクリプトをESTK(Extedn Script ToolKit ver 2)から実行すると、正しく機能が入った場合には、以下のようなメッセージが連続してアラートダイアログに表示されます。うまくいかなかった場合にはエラーで停止します。

[object FtpConnection]
[object HttpConnection]

エラーになってしまった場合には最初からやり直して下さい。なお、InDesign CS3のみ可能でInDesign CS2ではできません。InDesign CS4でできるかどうかは現時点では分かりません。

また、今後に掲載するサンプルプログラムでは、すでにInDesign CS3上でドキュメントが開かれている、もしくは新規に作成した状態になっていることを前提にしています。

ということで次回に続きます。


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

Bridge CS3にはあらかじめFTP、HTTP、HTTPS通信機能が入っています。今回のサンプルが動作しなかった場合にはBridge CS3を使う方法があります。これに関しては別の機会に説明したいと思います。

ちょっと元が長いので掲載し終わる頃には年が明けた上に2月末...f(^^;
一年以上前に書いた原稿が載るのがGW〜〜〜
でも、かなりストックが減ったので来年にはネタ切れになるかもしれませんが。

photo
組版時間を半減する! InDesign自動処理実例集
(株)シータス
技術評論社 2008-11-25



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

by G-Tools , 2008/11/17