Install Adobe InDesign Server(trial)

<!-- # Install Adobe InDesign Server(trial) -->

<!--
![id_server_appicon_1024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/40c4ed51-a08b-cb32-0a5a-f755bacf45fb.png)
-->

![68651.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/64c01af4-9c26-7818-2dc7-ba6176177f40.png)


縁あって [Adobe InDesign](https://www.adobe.com/jp/products/indesign.html) をまた触ることになりました。「また」というのは以前にもユーザーとして InDesign CS6 を操作していたことがあったからです。詳しくは割愛しますが、デザイナーとしてではなくプログラマとして CS6 の API を叩いていた時期があったのでした

当記事で扱うのは皆さんもよく使用するデスクトップアプリケーション版ではなく、表題の通り [InDesign Server（以下 IDS）](https://www.adobe.com/jp/products/indesignserver.html) です。私もサーバー版は初めてです。 [こちら](https://medium.com/siliconpublishing/the-insiders-guide-to-indesign-server-ac097e0c4006) でも動画付きで詳しく解説があります（英語）。製品ですと高額となりますが無料で利用できるお試し版も存在します。今回はローカルの開発環境で少し試したいことがある程度なので後者で十分。システム要件は次の前提で進めます

![Screen Shot 2021-08-05 at 15.37.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/4b6452be-4b8b-51ed-ecfa-fe6e8b37a87b.png)

## 導入

親切なことに [こちら](https://www.siliconpublishing.com/blog/2016-05-try-adobe-indesign-server/) で導入手順が紹介されてます。これに沿ってやっていきます

1. 本体の .dmg を DL する
    - ※適切なアカウントが必要となります
2. Platform を選択。当記事では Mac です
3. Installer を実行
    - ただし私の環境では最新版とみられる InDesign Server 2020.0.2 のインストーラが起動しませんでした
      - "The installation cannot continue as the install file may be damaged.." と表示されてしまう
    - 仕方がないので前工程に戻り、同 2020 で試したところインストール成功
4. リンク先から "Adobe Provisioning Toolkit Enterprise" を DL
5. 前工程で DL した .dmg をインストールし、次のコマンドを実行
    - `/Volumes/ProvisioningTool/Adobe\ Provisioning\ Toolkit\ Enterprise\ Edition/adobe_prtk  --tool=StartTrial --leid=V7{}InDesignServer-15-Mac-GM`
6. `StartTrial Successful\nReturn Code = 0` と出れば成功
7. `cd /Applications/Adobe\ InDesign\ Server\ 2020`
8. `InDesignServer -port 18383`

ところが、最後のサーバ起動コマンドを実行すると次のようなアラートが出てしまいました

![Screen Shot 2021-08-05 at 15.38.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/e755bf72-ade8-fbf2-62ed-282609cb9456.png)

しかし OK ボタンをクリックすると次のように出力されはじめ、アラートメッセージとは矛盾するがちゃんと起動はしたようだ、というふうになります。大丈夫なんでしょうか。

![Screen Shot 2021-08-05 at 15.39.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/5d5c3fc6-6c3d-e114-8ecf-1889463b844d.png)

ともかく、 SOAP requests を待ち受けた状態になったようなので、適当なリクエストを投げてみました。（右が IDS）

![Screen Shot 2021-08-05 at 14.53.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/fa2c8f62-c3b8-82e6-f29d-3174d291e78f.png)

左側で curl しているリクエストの内容は IDS を全く考慮していない適当なものですので、当然なんにもなりませんけども、サーバ側がリクエストに対してなんらかの反応をしているのは観測できました

また起動した状態で [こちら](http://localhost:18383/service?wsdl) にアクセスすると何らかの表示が出てきまして、これも一応起動しているかどうかの目安になるかと思います

さて、これだけではつまらないのでもう一歩、 IDS ならではの何かもやりたいですね。IDS 本体のインストール先にドキュメントがありました

`open Documentation/English/Intro\ to\ InDesign\ Server\ 2020.pdf`
※前傾の工程 7. で移動したディレクトリが引き続きカレントであるとします

これによると、 同梱の sampleclient というツールで IDS にたいし、正規のマナーで以てリクエストを発行することができるらしい。また、任意のスクリプトを指定し、実行させることもできる。これを試してみたいと思います（左で sampleclient 実行、右が IDS）

![Screen Shot 2021-08-05 at 14.54.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/6f56c986-8145-7776-00d3-f838d1e1c01f.png)

右で `Thu Aug  5 xx:xx:xx 2021 INFO   [javascript] Executing Script` と出ており、実行されるのはわかりました。しかし左のターミナルに変なメッセージが出てますな。
`/c/ServerTestFiles` なるフォルダを作れませんとのこと。そこで実行した JavaScript `HelloWorld.jsx` を見てみると、このソースコードで問題のフォルダを作成・参照しようとしていることが判ります。おそらく Windows を前提としたのでしょう。しかしだからといってこのままでは当記事が helloworld もできずに終わってしまいますので（笑）、このスクリプトを [修正します](https://gist.github.com/o2346/22d834249926dd08c7ceb8149a0ba5e1/revisions#diff-6c3769f552281d834425c4d2636a4a6adab2c27bed67615c4daba10e64348f30)

そして再度実行。今度は指定したテンポラリフォルダにきちんと保存された模様

![Screen Shot 2021-08-05 at 14.55.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/1fc75b32-8b8d-b0ed-c4a8-58a7a106eacb.png)

本当にちゃんとできたのか、 デスクトップアプリケーション版で開いて見てみます

![Screen Shot 2021-08-05 at 15.41.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486518/26ae239e-5c08-7687-b201-522005bc1336.png)

できました。

## ExtendScript

前項で修正したスクリプトは [ExtendScript](https://en.wikipedia.org/wiki/ExtendScript) という JavaScript 方言です。拡張子は `.jsx` となります。これはなにも IDS だけでなく、デスクトップアプリケーション版でも利用可能です。これを駆使すれば普段面倒に感じる単純な反復作業などの小規模な制作タスクはもちろんのこと、より高度な製作工程の自動化にまで対応することも可能となります。とくに後者ではプログラミングの経験も影響してくる一方、 IDS の本領発揮というわけですね。
しかし個人的な話になりますが今回の過程で久しぶりに書きました。というかまた書くことになるとは:kissing_smiling_eyes:
[網羅的に API が用意されて](https://www.indesignjs.de/extendscriptAPI/indesign-latest/#about.html) おりまして、 基本的に GUI/デスクトップアプリケーションでできる事はスクリプトでもできる、と考えて良いでしょう