ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

Illustratorファイル(ai, eps)の作成アプリバージョンと保存バージョンを抽出するコードをSwiftで書いてみた

概要

敬愛するものかのさんが、Illustratorファイル(ai, eps)の作成アプリバージョンと保存バージョンを抽出するコードをPythonで書いたコードを公開されたので、同じようなものをSwiftで書いてみたいと思って書いてみました。
Tweetにあるとおり当初はCLIを書こうかと思ったんですが、ぐちゃっとしたコードを書き直しながらCLI化していると飽きてしまいそうなので、XcodeのPlaygroundにコードを貼り付けたら動くという状態で公開することにしました。

ソースコード

Extract the creation application version and saved version of an Illustrator file (ai, eps) ref: https://gist.github.com/monokano/8bffac0c07401627c5a1ebf020b93b0e

やっていること

  1. ファイルを1MBバイトずつ読み込んで、Data型に変換する
  2. バージョンが表記してある箇所の前後にある文字列をキーとして、バージョンが表記されているRangeを取得する
    • 作成バージョンは AI8_CreatorVersion:%%For の間にある
    • 保存バージョンは %Creator: Adobe Illustrator(R)%%AI8_CreatorVersion: の間にある
  3. 取得したRangeを使って1のDataから値を抽出してString型に変換する
  4. 作成バージョンと保存バージョンが抽出できたらクロージャを実行して、バージョンを出力する

やっていないこと

ものかのさんのPythonスクリプトではCCのバージョンへの読み替えを行っていますが、私のコードではやっていません。

まとめ

私、がんばった