InDesignファイルの作成バージョンを検出する

私が忘れがちなのでメモがわりに書いておきます。

InDesignファイル(ドキュメント、ブック、ライブラリ、テンプレート)には、先頭から30バイトあたりに作成アプリバージョンの情報があります。
以下はその検出をPython 2.7で書いてみたものです。

「old pattern」と「new pattern」の2つあるのが注意点。「old pattern」はCS2(v4)までの記述方法で、それ以降は「new pattern」で記述されます。

ここで気をつけなければいけないのは、「old pattern」で記述されたものは、以降のどんなに新しいバージョンで保存してもずっと「old pattern」のままだということです。「new pattern」にするにはIDMLで書き出すしかありません。したがって、どのバージョンのファイルであっても、「old pattern」「new pattern」のどちらかで調べる必要があります(Glee 1.15.0はこれを忘れてバグってしまいました)。

さらに注意点。このPythonのコードはマイナーバージョンまで検出していますが、(CS5.5を除いて)マイナーバージョンはあてにありません。マイナーバージョンの記述は「別名で保存」ではじめて書き換えられる箇所です。ずっと「別名で保存」をしないで上書保存されてきたファイルは、マイナーバージョンの記述が不正確なままです。本当ならメジャーバージョンだけにしたいところですが、CS5.5があるのでしかたなくマイナーバージョンまで検出している次第です。

コメントする

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