InDesignのテキスト直接編集

会社で製品のデータシートを新しく作り直していて、日本語のが大体終わったので、これから英語版を作るのですが、ファイル数が50くらいあり、一つ一つInDesignで開いてポチポチ直していくのは面倒と思い、テキストだけ一括編集出来ないかを調べました。結果として、WordとかExcelファイルで拡張子をZIPに変えて解凍すればxmlファイルが出てくるのと同じようなことがInDesignでも出来ることが分かりました。以下がChatGPT4oに教えてもらった方法です。
===============
Excelの拡張子.xlsxを.zipに変更し、解凍して中のxmlファイルを直接編集して、また圧縮(最小サイズに圧縮)して拡張子を.xlsxに戻すというのは、知る人ぞ知る裏技ですが、同様のことがAdobeのInDesignでも出来ることが分かりました。(ChatGPT4oに聞いた)
======================
✅ InDesignでの「ZIP解凍→XML置換」と同様の処理手順
❶ .indd → .idml に保存(または書き出し)
InDesignのファイルを以下の手順で保存:
ファイル > 書き出し > IDML(InDesign Markup Language)
拡張子は .idml(実体はZIPファイル)
❷ .idml を .zip にリネームして解凍
.idml を .zip にリネーム → 解凍
フォルダ構成は以下のようになります:
コピーする編集する
designmap.xml
Stories/
Story_u123.xml

Spreads/
Resources/
MasterSpreads/
テキスト本文はほぼすべて Stories/*.xml に格納されています。
❸ sedやperlで一括置換
たとえば以下のように sed や perl で置換処理:
bash
コピーする編集する
find ./Stories -name ‘*.xml’ -exec sed -i ‘s/定格電圧/Rated Voltage/g’ {} \;
あるいは複数語の置換に対応するなら:
bash
コピーする編集する
perl -pi -e ‘s/定格電圧/Rated Voltage/g; s/接触抵抗/Contact Resistance/g’ ./Stories/*.xml
❹ フォルダを .zip に再圧縮 → .idml にリネーム
元の構造を崩さずZIP圧縮(Macなら zip -r、Windowsなら右クリック圧縮)
拡張子を .idml に戻す
❺ InDesignで .idml を開く → .indd として保存
これでInDesign側で正常に読み込める編集済みファイルが完成します。
✅ メリット
書式やリンクなどの通常のInDesign置換では触れない情報も編集可能
UTF-8で扱えるため、スクリプト不要で sed, awk, perl, Python 等で対応可能
編集対象が多数あるとき(今回のように40種類)にスケーラブル
⚠️ 注意点
XML構造が壊れるとInDesignで読み込めなくなります(バックアップ必須)
属性値やタグ構造に置換対象語が食い込んでいないか注意が必要(正規表現が使えると安全)
✅ 結論
はい、Excelでの「ZIP解凍→XML一括置換」手法はInDesignのIDMLにもそのまま応用できます。
この方式はInDesignのGUIスクリプトに頼らず、UNIX的な一括自動処理に向いています。
スクリプトよりもむしろ自由度が高く、バージョン依存も少ないのが魅力です。

注記:
(1)Excelの場合のようにZIPの圧縮率を最大(ファイル最小)にする必要はない。
(2)ZIPに再圧縮する時はフォルダ単位での圧縮でなく、その下に入って全体のファイルやフォルダーを選択した状態で圧縮する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA