DTPab

DTPにまつわるあれこれ

DTPerのスクリプトもくもく会#10を開催しました

はじめに

師走になって日に日に寒くなってきたような気がしますが、昨日12/1(土)、DTPerのスクリプトもくもく会#10を開催しました。今回は特別にアナウンスしたり宣伝したりしたわけではなかったのですが、なんと14人の方にご参加いただきました(当もくもく会史上最大)。これでもお一人がお仕事でキャンセルとなったのですが、それにしても14人というのは普段のもくもく会からすると倍近い人数です。
テーブルの配置の都合でちょっと狭かったかもしれませんが、特に大きな問題もなく無事開催できました(参加者の方にはメールをお送りしましたが、遺失物がありましたので、改めてお心あたりのある方はご連絡ください)。

第10回目という節目の開催で、2018年最後の「DTPerのスクリプトもくもく会」となりました。言うまでもないことですが、当もくもく会に参加していただく皆さまのご協力がなくては10回も続きませんでした。このもくもく会は細く長くやっていきたいと考えていますので、引き続き、よろしくお願いします。

開催報告

さて、今回のもくもく会で発表された内容の振り返りをしつつ、いただいたいくつかの質問への返答を改めて。

発表について

今回もプロジェクターを借り、4名の方に発表していただきました。聞いて理解することに頭を使ってしまい、きちんとした要約になっていませんが覚えている範囲で書きたいと思います。

スクリーンショットからOCRでテキスト化する(FileMaker経由)

GoogleクラウドサービスであるGCPの中に、画像に関するAPIがあります。

cloud.google.com

これに登録するにはクレジットカード情報を指定したりする必要があり、各APIサービスが一定以上のユニット(リクエスト)を行うと有料になる仕組みのようです。料金表は以下の通り。
f:id:uske_S:20181202231435p:plain

ご覧の通り、1ヶ月1,000ユニット以内なら無料です。すごいですね。

コードについてはこちらを参照してください。Google側で形態素解析も使われているようで、APIを利用する側は難しいことを考えずに結構正確な文字情報を取得できるようです。

qiita.com

InDesignで特定のフォントを使って書体見本を一括書き出し

マシンにインストールされているフォントの中から検索条件にマッチしたものを抽出し、InDesignのドキュメントにある文字列をPDFとPNGで書き出すというスクリプト。もはや多くは語るまい。作った本人がブログに公開していらっしゃるのでそちらをどうぞ。

www.macneko.com

VSCodeVimについて

発表時間的には短かったのですが、それでも内容がけっこうぎっしり詰まっていたので箇条書きで。

  • VSCodeはいいぞ
  • ファイルを同時に開いているだけでお互いの関数やJSDocを表示して入力補完することが可能
  • JSDocはnpmからインストールできる
sudo npm install -g jsdoc

marketplace.visualstudio.com

  • VSCodeのウィンドウに標準でターミナルを表示させることができる(もちろんそのままターミナルとしてコマンドの実行ができる)

  • スクリプトを書いて人に渡す/複数人で開発するならきちんとJSDocを書こう
  • その他(以下のツイート参照)

  • zshellはいいぞ

  • gitを使え!
  • tig最強!

  • tigはhomebrewからインストールできる
brew install tig

ひとまずこんなところか。漏れや間違いありそうで怪しいけど(あればご指摘ください)。vimについてはどちらかというともくもく会あとの懇親会兼忘年会?で詳しく聞きました。
vimについては、探したら日本語のヘルプドキュメントがあったので一応貼っておきます。

help - Vim日本語ドキュメント

青空文庫のテキストデータを自動組版

XMLを利用してInDesign青空文庫のテキストデータを自動で流し込むデモ。Windowsで.NETという技術で作られたものでした。もうちょっと技術的な部分を掘り下げて見たかったですね。

質問について

今回はあまり質問らしい質問がなく、雑談の中で質問のようなものをいただいたという感じです。

ESTKで完結するスクリプトだがクリップボードに情報を送りたい

.shファイルや.appファイルを用意しておき、ESTKからFile.executeメソッドを利用してシェルスクリプトなどを動かす、という方法で実装。うーん、なかなかw

Ten_Aさん、古籏さん、omotiさん、情報Thxでした!

ちなみにMacInDesignだとApplication.doScriptメソッドでApplescriptを実行できるのでワンライナーです。

app.doScript('set the clipboard to "ほげー"', ScriptLanguage.APPLESCRIPT_LANGUAGE);

Windowsだとこうはいかないようです*1

Mac版ESTKでデバッグできない(例の不具合)

uske-s.hatenablog.com

自前の記事ではここです。
手作業でESTKのパッケージ内のコードを修正しない(ものかのさんのアプリを利用する)場合、アプリを実行後に出るダイアログは「quit」ボタンを押して終了した上で、ExtendScriptToolkit.appをドラッグしてくださいね。アプリがビジー状態になっている(ダイアログがモーダルダイアログのため)ので動作しません。

スクリプトの勉強は何から始めたらいいですか?

定期的にこういう質問をいただけるので嬉しいです。
先に申し上げておきますが、Adobe公式の「スクリプティングガイド」なるものがあるのですが、コードが間違っていたり、説明が非常にわかりにくいこともあり、あまりお勧めできません*2

ESTKの使い方

まずは開発ツールであるESTKの使い方を覚えましょう。

僕が読んだ中でもっとも分かりやすいESTKの導入本です。これは1冊手許にあると良いと思います。

ExtendScriptについて

InDesign向けではありますが、対応バージョンが新しく、リファレンスとして懐が広く、読み物としての情報量が圧倒的なお〜まちさんのこちら。

cs5.booth.pm

これは教科書で、ほかに問題集などもあります(ページ内にリンクがあります)。

オブジェクトモデルについて

現時点で(そしておそらくこれから先も含めて)日本語でDOMを参照できるのはここしかありません。

indesign.cs5.xyz

その他情報

以前、DTP-Discourseに書かせてもらったこちらなど、参照ください。

dtp-discourse.jp

あと、過去のもくもく会でも同様の質問が出てますので、こちらなど。

uske-s.hatenablog.com

こんなところでしょうか。

おわりに

以上、2018年最後のDTPerのスクリプトもくもく会の開催報告でした。

今年1年のもくもく会を振り返ると、、、まぁいろいろあったわけですが、それでも続けてきて良かったと思えることのほうが多かったので、それは良かったかなと思っています。
もともとこの会は「ひとりでスクリプトの勉強/開発ってモチベーション維持が大変」「正しい情報はどこにあるの…」「仕事の合間にスクリプト書く時間が取りにくい」みたいなものが少しでも解消できれば…ということで始まった割と緩い会だったのですが、いつの間にかconnpassのメンバーは80人を超えました。本当にありがとうございます。
勉強会というのとはまた違ったこの「もくもく会」という存在が、僕はけっこう気に入っています。「誰かに何かを教わろう!」と集まるのではなく、あくまで「自分で自分の作業をしよう!」という気持ちで集まるのが面白い。そこには同じような悩みを持つ仲間がいたり、知見の豊富な方がいて教わることができたり、仕事がつながったり。スクリプトというものを通して、主催者を含めて参加した人たち同士で新しい線がつながっていくというのが、また非常に面白い。
また、このもくもく会がなければ、こんなにいろんなことを知る機会もなかっただろうと思っています。ひょっとしたらGitだって使っていなかったかもしれない。やっぱり休みの日にわざわざスクリプトやろうぜって人たちが集まるわけですから、それが「時間を無駄にする会」になるわけないんですよね。目的意識や課題を持って来る人が多ければ、会話は少なくてもそれだけ熱気のある会になるんじゃないかと思います。
僕もまた「スクリプトを作ろう」「CEP勉強して作れるようになろう」「やりたいと思っていた技術をまたちゃんと勉強しよう」というモチベーションが出てきました。割とメキメキと。だからやっぱりこの会は続けていきたいですね。来年もよろしくお願いします。

それでは、今年の総括的な話はまた別の記事にしたいと思いますので、ひとまず今回はこのへんで!

*1:VBScriptでも似たようなことができるそうですが、文字コードがShift-JISになるらしい…

*2:それでも公式ドキュメントなので、ある程度書けるようになってから読むと情報の埋め合わせができます。まったく目を通さないよりは一読したほうがいいかもです。