ExifTool.exeのDTP活用(Illustratorバージョン情報)
DTP Advent Calender 2019の7日目の記事です。
Illustratorドキュメントの正確なバージョン情報を見つけ出そうシリーズ。
ExifToolは、様々なドキュメントのXMP情報を取得・操作するコマンドラインツールです。
性質上カメラマンによく知られており、GUI(Win)版もありますが、そちらは主に書き換えに特化したツールの様。
PostScriptタグ(EPS)PDFタグ(AI)
参考:
ExifToolでIllustratorファイルのバージョンを調べる方法(ものかの)
Illustratorファイルのバージョン情報を整理してみる(ものかの)
これね、調べてもメタ情報の書き換えとか日付管理ばかり出てきて、DTP業務向けの情報って滅多に見つからないの。MacかUnixマンばかりでWinの使い方は滅多に見ない。
基本Perlを利用するコマンドラインツールなため、Windowsでは恐らくPerl環境を構築しないと、コマンドラインからの実行ができません(多分)。なので誰にでも出来る方法として、解凍されるスタンドアロン版を複製・リネームして、欲しい情報を抽出します。
※Adobe Bridgeメタ情報で見れるのは「最後に開いたアプリバージョン」(保存バージョンではない)
※Illustrator v10以前は非対応な部分がある
この辺はとにかく前出、ものかのさんリンクを参照下さい。
※exe実行時、アンチウイルスソフトに引っ掛かる事がある
Windows Executable:exiftoolをダウンロード。
解凍後、好きな場所に置く。exiftool.exeを複製し、リネーム
exiftool(-k).exeにイラレドキュメントをドロップするとコマンドプロンプトが開き、全てのXMP情報を表示します。
ちょっと目当てのコマンドを探しづらい。ので、より可視化できる(-k -a -u -g1 -w txt).exeの使い方。
(-k -a -u -g1 -w txt)は上記XMP情報を、オリジナルと同じディレクトリに*.txtで出力します。
- リネームしたexiftool(-k -a -u -g1 -w txt).exeに、Illustratorドキュメントをドロップ。
- コマンドプロンプトが開き、RETURNキーを要求されます(return)。
- 元ドキュメントと同じ階層に*.txtができます。
- 正規表現でハイライトカラーを設定できるテキストエディタで開きます。筆者は秀丸エディタを使います。
- ユーザー定義→ (新規)追加...
- プロパティで正規表現、ハイライト設定を作って追加していく。
全て設定できたら、保存しておきましょう。
- 見たいポイントだけをカラー表示できます
(日本語は部分的に文字化け)
見に行くタグの違いで、epsとAIで表示される内容は微妙に違います。
(12.11追記)
以下は、以前流星光輝さんが個人的に書いて下さったvbsドロップレットです。
手順は、1)以下のコードをShift-JISテキスト保存 2)拡張子をvbsに 3)exiftool.exe本体をshift + 右クリック「パスをコピー」 4)コード内[exiftool.exeのフルパス]に差し替える
5)ai or EPSをドロップして待つ
各種コマンドはものかのさんリンクのラストにあります。(冒頭のexiftool を抜く)
- 例はHistorySoftwareAgent(ドキュメントが通ってきたAIアプリバージョン)
- パス前後のブラケット[ ]は不要
- コピーしてきた両端のダブルコーテーションは不要
- フルパスとコマンドは半角スペースで区切る
- コマンドの後ろとダブルコーテーション(閉じ)の間は半角スペースが必要
- ここで得られるEPSのCreatorは、恐らく2番目のみ
- ai・epsは、フルパスにスペースを含まない場所に置いて下さい(vbsの仕様上)
- PCのユーザー名にスペースがある場合、多分記述に少し工夫が必要
'-----------------以下プログラム----------------------
Set FSO=CreateObject("Scripting.FileSystemObject")
Set args = WScript.Arguments
For Each pt In args
If fso.FolderExists(pt) Then If fso.FolderExists(pt) Then
'フォルダが投げ込まれた場合
msgbox "フォルダドロップには対応していません"
elseIf fso.FileExists(pt) Then
'ファイルが投げ込まれた場合
msgbox CMDcommandResultGet("[exiftool.exeのフルパス] -T -HistorySoftwareAgent " & pt)
else
'それ以外
'ファイルパスが無効です。
End if
Next
Function CMDcommandResultGet(strCommand)
Dim WshShell
Dim oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("%ComSpec% /c " & strCommand) 'Exec メソッド
If Not oExec.StdOut.AtEndOfStream Then 'StdOut プロパティ'AtEndOfStream プロパティ
CMDcommandResultGet = oExec.StdOut.ReadAll 'ReadAll メソッド
Exit Function
End If
If Not oExec.stderr.AtEndOfStream Then 'stderr プロパティ'AtEndOfStream プロパティ
CMDcommandResultGet = oExec.stderr.ReadAll 'ReadAll メソッド
Exit Function
End If
End Function
'------------------ここまで---------------------
Win7、Win10で動作確認済み。
に、2年も寝かしてごめんなさい流星号()
※コード参照
尚Mac版の方は、ExifToolをインストール後ものかのさんのリンクを頼りに、ターミナルに目的のコマンドを入力、末尾に半角スペース、その後ドキュメントをターミナルウインドウにドロップしてreturn実行して下さい。(雑な説明)
AI8_CreatorVersionが見られるように、ExifTool本体の書き換えも忘れずに。
メモ(スティッキーズ)にコマンドを貼り付けておくと便利。
これらXMP情報は、Adobe側の仕様変更により今後も変わる可能性があります。
…どなたかが暫く前に「今後はバイナリでなければ正確な情報を得られないのかも」とtweetで呟いていた様な、気がしないでもないんですが、正確に覚えていません(ダメじゃん)←
他「上書き保存では更新されない部分」など細かな注意事項は、こちらのものかのさんリンクを参照(こればっか)。
別ページDTPOAの項も、併せてご覧下さい。
epsではCreatorが二度出てきますが、ものかのさんによるとPostScriptのCreatorには2種類(1、2と)が存在するそう。
またデフォルトでは、新規作成したバージョン=AI8_CreatorVersionを見ることができません。Mac版はexiftool本体を書き換えてこれを表示させる事が可能になりますが、Winでは現状、History Software Agentを見るしかないようです。
しかしこの来歴、結構情報が消失します(とほほ)。
因みにGlee Aiに拡張子を関連付けすると、イラレは全て下記メッセージから開くようになります。(Mac ONLY)
・・・・要するに、
ものかのさん最高!!
って話なんですけどね
最後に、
フルパスやコンピュータユーザー名にスペースを突っ込む輩は、死に絶えろ()