Top > Blog Index > 第二回テクニカルDTP勉強会、「InDesign CS5 と Webサービスとの連携デモ」

第二回テクニカルDTP勉強会、「InDesign CS5 と Webサービスとの連携デモ」

Adobe Creative Suite 5 では、Flex を使って 拡張機能(Extension)を実装できるようになりました。

CS5 Extensionに関して、 詳しくは、http://www.adobe.com/devnet/creativesuite/sdk/ をご覧ください。

メリット

これらの結果として...

デモアプリケーション Google Translation API + InDesign CS5

Googleはウェブサービスとして機械翻訳を提供しています。

このサービスをInDesign CS5から利用するデモです。

処理の流れ

Google翻訳サービスをInDesignCS5から使用

作動の説明

InDesignCS5 のドキュメント上にあるテキストフレーム内の日本語テキストを英語に翻訳します。

  1. テキストフレームを用意
  2. テキストフレームに日本語を入力
  3. 拡張パネル(GoogleTransAPI GW2)上の trans(Ja->En)ボタンをクリック
  4. テキストフレーム内の文字列をGoogle翻訳サーバに問い合わせして、帰ってきた翻訳テキスト(英語)をテキストフレームにセット

翻訳前のInDesign

google translation gateway-1

翻訳後のInDesign

google translation gateway-2

Extension パネルを実装している部分のコード

main.mxml

ActionScriptから直接 Google 翻訳APIを使用しているのではなく、 http://localhost:8080/trans.html を経由している点に注意。

Google AJAX Language API などを使用すれば、ActionScriptから直接翻訳を実行することも可能なのではないかと 思われます。

Google翻訳を中継しているサーブレット(groovlet)

http://localhost:8080/trans.html に配置しているサーブレット(groovlet)

単なるCGI。 query パラメータにセットされてリクエストされてきた値を Google Translation API Java 経由で翻訳して結果を plain/text として出力している(だけ)。

LANG_SRC,LANG_DEST を変更すれば、いろいろな言語からいろいろな言語に翻訳可能。

まとめ

CS5以前は外部サービスとの連携が難しかった(Bridgeを混ぜればできなくはないとは思いますが) のですが、CS5からはこのように簡単に外部サービスが使えるため、夢が広がります。

具体的には、

  1. jsxやActionScriptでは書きたくないような複雑な処理
  2. すでに実装があるのでそれを再利用したい場合
  3. コンテンツが外部にありこちらでなんともならない場合

このような場合に、それらをWebサービスとして利用可能にしておけばよい。 それだけで、InDesign CS5から利用できるようになる。 (もちろん、ExtensionはInDesign以外のCS5製品でも対応している。)

応用例として すぐに思いつくのは、 Yahooのテキスト解析サービス と連携させれば、 InDesign 文書に対して ルビを機械的に振ったり、校正を機械的に行うことが可能になります。

markdownの変換サービスを用意しておけば、 markdown をInDesignのテキストフレームに書いて、 それをワンクリックでレイアウト+スタイル付けすることもできるでしょう。