Soumettre la recherche
Mettre en ligne
スクリプト作成のためのスクリプト支援 -検索内容の実行コード書き出し
•
0 j'aime
•
4,365 vues
Kenshi Muto
Suivre
InDesignの検索ダイアログの内容をJavaScriptコードで書き出すスクリプトを作ってみた
Lire moins
Lire la suite
Design
Signaler
Partager
Signaler
Partager
1 sur 15
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?
"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?
Yuki Anzai
メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門
Atsushi Tadokoro
Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装
Nakazawa Yuichi
20120118 titanium
20120118 titanium
Hiroshi Oyamada
Slides mkmk5
Slides mkmk5
祐介 三枝
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Shunji Konishi
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
Web Intents入門
Web Intents入門
Shumpei Shiraishi
Recommandé
"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?
"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?
Yuki Anzai
メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門
Atsushi Tadokoro
Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装
Nakazawa Yuichi
20120118 titanium
20120118 titanium
Hiroshi Oyamada
Slides mkmk5
Slides mkmk5
祐介 三枝
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Shunji Konishi
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
Web Intents入門
Web Intents入門
Shumpei Shiraishi
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
Kenshi Muto
write once, publish anywhere ……という夢を見た。
write once, publish anywhere ……という夢を見た。
Kenshi Muto
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
Kenshi Muto
とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法
Kenshi Muto
スペインExtremadura州Debian i18n会議報告
スペインExtremadura州Debian i18n会議報告
Kenshi Muto
Rarely Asked Questions
Rarely Asked Questions
Kenshi Muto
オライリー・ジャパンのePUBフォーマットを支える制作システム
オライリー・ジャパンのePUBフォーマットを支える制作システム
Kenshi Muto
書籍制作フローを変える「ReVIEW」という解
書籍制作フローを変える「ReVIEW」という解
Kenshi Muto
簡易マークアップとAH Formatterによる 商業品質を満たした技術書籍制作フローの展望
簡易マークアップとAH Formatterによる 商業品質を満たした技術書籍制作フローの展望
Kenshi Muto
商業出版物におけるReVIEW+InDesign組版
商業出版物におけるReVIEW+InDesign組版
Kenshi Muto
Contenu connexe
Plus de Kenshi Muto
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
Kenshi Muto
write once, publish anywhere ……という夢を見た。
write once, publish anywhere ……という夢を見た。
Kenshi Muto
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
Kenshi Muto
とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法
Kenshi Muto
スペインExtremadura州Debian i18n会議報告
スペインExtremadura州Debian i18n会議報告
Kenshi Muto
Rarely Asked Questions
Rarely Asked Questions
Kenshi Muto
オライリー・ジャパンのePUBフォーマットを支える制作システム
オライリー・ジャパンのePUBフォーマットを支える制作システム
Kenshi Muto
書籍制作フローを変える「ReVIEW」という解
書籍制作フローを変える「ReVIEW」という解
Kenshi Muto
簡易マークアップとAH Formatterによる 商業品質を満たした技術書籍制作フローの展望
簡易マークアップとAH Formatterによる 商業品質を満たした技術書籍制作フローの展望
Kenshi Muto
商業出版物におけるReVIEW+InDesign組版
商業出版物におけるReVIEW+InDesign組版
Kenshi Muto
Plus de Kenshi Muto
(10)
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
write once, publish anywhere ……という夢を見た。
write once, publish anywhere ……という夢を見た。
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法
スペインExtremadura州Debian i18n会議報告
スペインExtremadura州Debian i18n会議報告
Rarely Asked Questions
Rarely Asked Questions
オライリー・ジャパンのePUBフォーマットを支える制作システム
オライリー・ジャパンのePUBフォーマットを支える制作システム
書籍制作フローを変える「ReVIEW」という解
書籍制作フローを変える「ReVIEW」という解
簡易マークアップとAH Formatterによる 商業品質を満たした技術書籍制作フローの展望
簡易マークアップとAH Formatterによる 商業品質を満たした技術書籍制作フローの展望
商業出版物におけるReVIEW+InDesign組版
商業出版物におけるReVIEW+InDesign組版
スクリプト作成のためのスクリプト支援 -検索内容の実行コード書き出し
1.
スクリプト作成のための スクリプト支援 武藤健志 Twitter: @kmuto 2017.9.9 at
DTPerのスクリプトもくもく会#3
2.
こんなのを作ってみた ● スクリプトを書いていると、UIの検索置換の内容をスク リプト化したいことがある ● InDesignの検索ダイアログの内容を、JavaScriptコード で書き出す – テキスト –
正規表現 – 字形 – オブジェクト – (文字種変換は内部的にもテキストの一種っぽい)
3.
デモ...の結果 app.findChangeTextOptions.caseSensitive = false; app.findChangeTextOptions.ignoreDiacritics
= false; app.findChangeTextOptions.ignoreKashidas = true; app.findChangeTextOptions.includeFootnotes = true; app.findChangeTextOptions.includeHiddenLayers = false; app.findChangeTextOptions.includeLockedLayersForFind = false; app.findChangeTextOptions.includeLockedStoriesForFind = false; app.findChangeTextOptions.includeMasterPages = false; app.findChangeTextOptions.kanaSensitive = true; app.findChangeTextOptions.wholeWord = false; app.findChangeTextOptions.widthSensitive = true; app.findTextPreferences = NothingEnum.NOTHING; app.findTextPreferences.findWhat = "あああ"; app.findTextPreferences.justification = Justification.RIGHT_ALIGN; // app.findTextPreferences.numberingRestartPolicies = resolve("/@find-text-preferences/@numbering-restart-policies"); // app.findTextPreferences.bulletChar = resolve("/@find-text-preferences/@bullet-char"); // app.findTextPreferences.parent = resolve("/"); app.changeTextPreferences = NothingEnum.NOTHING; app.changeTextPreferences.changeTo = "いいい"; // app.changeTextPreferences.numberingRestartPolicies = resolve("/@change-text-preferences/@numbering-restart-policies"); // app.changeTextPreferences.bulletChar = resolve("/@change-text-preferences/@bullet-char"); // app.changeTextPreferences.parent = resolve("/"); // app.activeDocument.changeText();)
4.
ポイント ● コピーバッファに文字列を保存 – 既存ドキュメントを壊したくない→app.documents.add() で空ドキュメント・空テキストフレームを作ってコンテン ツ配置、app.copy()してドキュメント破棄 –
本当はウィンドウを一切出したくないが、app.copy()は ウィンドウが必要 ● スタイルグループを深追い ● propertiesの解析
5.
気づき: スタイルグループの取り扱い ● findのappliedParagraphStyle, appliedCharacterStyle, appliedObjectStyleは妥当なオブジェクトではなく「文字列」 ●
appliedParagraphStyle, appliedCharacterStyleの文字列か らはグループ名が落ちてる… – Yusukeさんのように検索データをいったんファイル保存(XML形式)し て解析? – あまりファイルは作りたくないので、別グループに同じスタイル名を 作る人は「ギルティ」ということで考えない – 再帰でとりあえず最初に一致したものに
6.
新しい革袋? ● appliedObjectStyle
7.
新しい革袋? ● オブジェクトスタイルは、InDesignにとって比 較的新参。そのオブジェクトスタイル向けの appliedObjectStyleは uE00B
というプライ ベート領域の文字を使ってスタイル名を区切る ● これはもしかして、内部ロジックがいろいろ改 善されていて、実はほかでも使えたり?
8.
検証 ● findText/changeText/findGrep/ changeGrep – appliedParagraphStyle,
appliedCharacterStyle – ○ "スタイルグループ 1ue00b文字スタイル 1"; ● findObject – appliedObjectStyle – ○ "スタイルグループ 1ue00bオブジェクトスタイル 1";
9.
● changeObject – appliedObjectStyle –
× "スタイルグループ 1ue00bオブジェクトスタイル 1"; なんだと… 結論:新しい革袋じゃなくて、 やっぱりつぎはぎだったよ… ちなみにXMLスタイル名にもダメだった orz
10.
なぜ文字列か ● 検索置換は「app.documents[0].findTextPreferences」 ではなく「app.findTextPreferences」で設定 (範囲は「検索置換範囲.findText()」とはなるが) – たとえばapp.findText()とすると、単一ドキュメントではなく、 関係のない他ドキュメントも含まれる –
検索や置換のスタイルを「オブジェクト」として取れない可能性 – じゃぁオブジェクトスタイルのはなんで、と問われるとおそらく 何も考えてなかったのではという印象 ● アプリケーション手動操作のほうではたぶん中で例外処理し てるフシがある(検索保存して実行するときも同様)
11.
設定値の展開 ● 取得/設定可能値を全部並べるのはだるいので、オブジェ クトのpropertiesを利用 ● ロジック的に簡単にとれる文字列、数値、論理値 (true/false)のもののみを展開 ● さらに別のオブジェクトの値になっているものはちょっと 追いきれない – //
app.change... = resolve("/@change-object- preferences/@transparency-settings"); みたいな感じでコメントで保持 ● とはいえEnumerator値くらいはなんとかしたい – Justification.RIGHT_ALIGNみたいなの
12.
逆引き不能… ● Enumeratorオブジェクトには まともな情報なし
13.
あとはがんばれ // Enumerator解釈 function getEnumerator(e)
{ switch(e) { case Justification.AWAY_FROM_BINDING_SIDE: return "Justification.AWAY_FROM_BINDING_SIDE"; case Justification.CENTER_ALIGN: return "Justification.CENTER_ALIGN"; case Justification.CENTER_JUSTIFIED: return "Justification.JUSTIFIED"; case Justification.FULLY_JUSTIFIED: return "Justification.FULLY_JUSTIFIED"; case Justification.LEFT_ALIGN: return "Justification.LEFT_ALIGN"; case Justification.LEFT_JUSTIFIED: return "Justification.LEFT_JUSTIFIED"; case Justification.RIGHT_ALIGN: return "Justification.RIGHT_ALIGN"; case Justification.RIGHT_JUSTIFIED: return "Justification.RIGHT_JUSTIFIED"; case Justification.TO_BINDING_SIDE: return "Justification.TO_BINDING_SIDE"; …… default: return null; } }
14.
補足 ● ~/Library/Preferences/ExtendScript ToolkitにESTKのオブジェクトモデルビューア の元データXMLがあるよ by
おおまちさん ● 取り出し自体は簡単にできた(5分で書いた Rubyスクリプト)ので、あとはこれを反映し ていく予定
15.
URL ● Hacking InDesign
with JavaScript – https://kmuto.jp/indesign/ ● 今回のスクリプト https://kmuto.jp/indesign/scripts/ dialogs/dialogExportFindSet.jsx 2017, @kmuto
Télécharger maintenant