DTPab

DTPにまつわるあれこれ

ExtendScript

SUIに画像を埋め込む方法

はじめに 取り扱わないこと 画像ファイルを文字列化する SDBを使う BINARY読み込み、コードポイントとして落とし込む 文字列化する 画像データとして復号 BINARY読み込み、toSource()メソッドで文字列化 文字列化する 画像データとして復号 おわりに 補足:S…

StartupScriptでアプリ起動時に一度だけ呼ぶイベントある?

答え:1回呼ぶだけならイベントに登録するなかれ そもそもStartupScriptってアプリ起動時に実行されるスクリプト。だからStartupScriptsフォルダにスクリプトを放り込んでおけば起動時に1回呼ばれて終了となりますよね。 どうしてこんなことに気づかずイベン…

ScriptUIの詳細な資料

以前もくもく会で紹介したような気がするのですが(してないか?)、USスクリプティングフォーラムでも常連のPeter KahrelさんがScriptUIに関する詳細な資料を無償で提供されています。Adobeのどんな公式ドキュメントよりも詳しく、実情に沿った内容です。 S…

File.openDialog で複数のファイル種別を指定する

はじめに File.openDialog()メソッド 第2引数の書き方 Windowsの場合 macOSの場合 どちらのOSにも対応した書き方は? はじめに フォーラムで標題のようなスクリプトをどう書くの? って質問を見つけて回答した*1のでブログにも残しておきます。 File.openDia…

IllustratorのUIスケール次第でSUIのリスト表示がおかしくなる

Illustrator 2019から搭載されたUIスケールという設定で、表示されるパネルなどの大きさを調整できるようになりました。 環境設定>ユーザーインターフェース ところが、これを一番左(小)以外にしてしまうと、Script UI(SUI)のリスト表示が以下のように…

ExtendScript用のモジュールを作っています

タイトルの通りです。 github.com 別のリポジトリにも置いていたのですが、モジュールはモジュールだけでまとめて管理したいなと。モジュールの追加や修正を逐一ブログで報告しないと思いますが、今回はひとまず過去公開していたモジュール(以下の記事参照…

箇条書き記号を定義した設定に従って入れ替えるInDesignスクリプト

はじめに SwitchBullets.jsx 設定ファイル コード 技術的な話 エラー処理 型変換 Bullet.characterValueは数値型 おわりに はじめに 前回の記事に続き、また新しいInDesign用のスクリプトです。 段落の箇条書き機能を割と頻繁に使うのですが、特に源ノ角ゴシ…

段落スタイルを基準に選択範囲を移動するInDesignスクリプト

InDesignで作業中に、見出しの先頭にマーカーを挿入したり、見出しの状態/状況を確認したりっていう作業を僕はけっこうやります。そのたびに検索条件に段落スタイルを登録して…とかってやるのも大変なんで単純にページを送って確認するわけです。なのでこん…

InDesign 15.0.2 コミュニティスクリプトを紐解く 5

仕事が全然収まっていない中で、働き方改革法案の残業時間内でどうにか回るようにチームメンバーたちにがんばってもらっているこの頃です。こんばんは。 今回もこれらの記事の続きになります。 InDesign 2020(15.0.2)で追加されたコミュニティスクリプト -…

InDesign 15.0.2 コミュニティスクリプトを紐解く 4

仕事が「霧の中を航行する船が突然海賊に襲われた」みたいな状態になっていて毎日やばいです。こんばんは。 仕事がそんななので遅くなってしまいましたが、今回は下記の記事の続きになります。 InDesign 2020(15.0.2)で追加されたコミュニティスクリプト -…

配列に要素が含まれるかどうかを調べるArray.some()メソッドをポリフィルする

あらまし haragurai-is-bad氏が、記事中でArray.indexOf()メソッドをポリフィルしてExtendScriptに実装していらした。 haraguai-is-bad.hatenablog.com 実はポリフィルしてた 記事のコメントにも書いたとおり、僕はArray.some()メソッドをポリフィルしていま…

選択したオブジェクトがアンカー付きオブジェクトかどうかを判定する

どういう実装がいいのかいまいち決めきれないものの一つにこれがある。 いま使っているのは下記2種類。 var sel = app.activeDocument.selection[0]; // 1: アンカー付きオブジェクト専用プロパティにアクセスしてエラーを起こす try { sel.anchoredObjectSe…

InDesign 15.0.2 コミュニティスクリプトを紐解く 3

今回はカーソル(キャレット)位置に任意の文字をUnicodeInjectorスクリプトについてです。 これらの記事の続きになります。 InDesign 2020(15.0.2)で追加されたコミュニティスクリプト - DTPab InDesign 15.0.2 コミュニティスクリプトを紐解く 1 - DTPab…

Illustrator 2020の特色の不具合を検知するInDesign スタートアップスクリプト

この件の詳細は下記UserVoiceを参照ください。 Bug of saving in the background of Illustrator 2020 – Adobe Illustrator 取り急ぎスクリプト書いてみた。スタートアップスクリプトとして使ってください。 //@targetengine "checkGlobalColor" app.addEven…

InDesign 15.0.2 コミュニティスクリプトを紐解く 2

今回はオーバーライドを削除するというClearStyleOverridesスクリプトについてです。 こちらの記事の続きです。 uske-s.hatenablog.com uske-s.hatenablog.com はじめに ClearStyleOverrides.jsx 機能の説明 前提条件 注意点 ClearStyleOverrides について雑…

InDesign 15.0.2 コミュニティスクリプトを紐解く 1

昨日速報的に書いた記事の続きです。 uske-s.hatenablog.com 今回はBreakTextThread.jsxを読み込んでみます。 はじめに BreakTextThread.jsx 機能の説明 前提条件 注意点 BreakTextThread について雑感 はじめに Adobeのヘルプだけでは心許ないので、中身を…

InDesign 2020(15.0.2)で追加されたコミュニティスクリプト

InDesign 2020(15.0.2)のアップデートがきましたね。 InDesign ヘルプ | 機能の概要 | InDesign | (2020 年 2 月リリース) ここでコミュニティスクリプトなるものが登場しました。 実際にアップデートすると、スクリプトパネルに「コミュニティ」という…

InDesignの表でセルの高さを自由に変えたい

割と知られた話かと思いますが、InDesignでのセルの高さは、最低値が決まっています。 それより小さくしようとすると怒られるんですよね。 高さ3pt未満に設定できない それが3ptという分水嶺。 しかしスクリプトから指定すると、これがすんなり受け容れられ…

QueryGroupSwitcher(製品版)リリース!

以前、下記の記事で「体験版を公開した」とお伝えしたスクリプトですが、このたびやっと製品版リリースと相成りました! uske-s.hatenablog.com 詳しくはBOOTHの商品ページ、またそこからリンクしている製品マニュアルページをご参照ください。 当初の発注者…

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

先週の1/25(土)、DTPerのスクリプトもくもく会#16を開催しました。 今回はけっこう広めのスペースを安く借りられたので、とても快適なもくもく会になりましたね。そのおかげもあってか、質問と情報共有と交流がほどほどに行われていて、主催としてはとても…

InDesignドキュメントにPDFをまとめて配置

仕事の合間にいろいろやりながら、来月の登壇資料とか作っている毎日です。仕事が割と繁忙期なのでまあ体力続かなくて辛いですね…。 さて、今日はAdobe謹製のスクリプトに手を加えちゃおうという内容です。 最初から入ってるやで どうする? コード もとのコ…

BOOTHでスクリプトを公開しました

まだベータ版で申し訳ないのですが、BOOTHでスクリプトをひとつ公開しました。 uske-s.booth.pm 下記の記事で言及していた、正規表現検索置換クエリを管理するスクリプトです。 uske-s.hatenablog.com ベータ版で公開している理由ですが、単純にコードが気に…

これまでの振り返りと2020年

あけましておめでとうございます。 早いもので2019年があっという間に終わってしまい、令和2年、2020年が幕を開けてしまいました。今年最初の記事は、昨年をKPTで振り返りつつ、今年の抱負を綴りたいと思います。 2019年のKeep(できたこと、継続すること) …

InDesignのExtendScriptでルビを実装しよう

1年は早いもので、今年も残すところあと1ヶ月となりました。そう、12月といえばクリスマス、クリスマスといえばアドベントカレンダー! ということで、この記事はDTPアドベントカレンダー2日目の記事になります。 前回の記事はTen_Aさんの『INDESIGNで圧縮フ…

実行しているドキュメントの判定とスクリプトの再実行

現在アクティブなドキュメントに対してスクリプトを実行したあと、そのスクリプトを再度実行する際、アクティブなドキュメントが前回と同じかそうでないかを判定するにはどうしたらいいか? という話を同僚から相談されました。 実は以前こんな記事を書いて…

InDesign ExtendScriptで「テキストを選択しているかどうか」の判定方法

InDesignのExtendScriptでは、テキストに関するサブクラスがたくさんあります。これらを使って「選択しているオブジェクトはなにか?」というのをよく実装するわけですが、毎度毎度「TextStyleRangeと、あとなんだっけ……」みたいに全部をパッと思い出せない…

実行している関数名の表示

個人的なメモです。 !function myFunction () { alert(arguments.callee.toString().match(/^function (.+?)\(/m)[1]); }(); やってることは単純で、arguments.calleeプロパティで関数そのものを参照。 toStringメソッドで文字列化した上で、正規表現でfunct…

InDesignで作業中に別のアプリを起動するショートカットが欲しい

InDesignのいつのバージョンからか、Macのグローバル・ショートカットキーが機能しなくなったように思います。 僕はInDesignでテキスト入力中でもGoogle日本語入力環境設定を表示したいなーと思ったりします。思いますよね。思うと思うんですよ。絶対。 なの…

macOS Catalinaで32bitアプリケーションが動かなくなる

概要 Catalinaにアップデートすべきか? VSCodeのES debuggerが最適解なのか? ESTKの今後 まとめ 概要 先日リリースされたmacOS 10.15 Catalinaですが、以前から言われていたように、32bitアプリが動かなくなっているようです。 32bitアプリには、Adobe CC…

「マスターページを適用するスクリプト」を作るスクリプト

var actDoc = app.documents[0]; var mstSpr = actDoc.masterSpreads; for (var i=0; i