PDFファイルのフォント情報(埋め込みかどうか)をxpdfを用いて一気にチェックする

PDFファイルのフォント情報で、とくに埋め込みになっているか(別PC等でフォントがなくて文字化け、表示が出来ないなどにならないため)を確認したいときがありました。

PDFファイルを普通にAcrobat Reader DC等で開いてオプション情報を見ればわかるのですが、ファイル数がさすがに多いとだるいです。意外に埋め込みチェックは印刷等で課題になりそうなので、イラストレーターやPDFファイル一個ずつ見るみたいな感じが多かったので、自分メモです。

xpdfを用いて、バッチ処理で一個ずつ見ていくという処理を考えてみました。出てきた情報を後はVBAで見るなり、テキスト処理をすれば瞬時に終わるはずです。VBAでのテキスト処理はここでは扱いません。

PDFフォント情報をxpdfで複数ファイルを一気に処理する

xpdfをダウンロードして、PATHを通しておきます。

メインバッチファイルとしては、main.batで保存し、

for %%a in (*.pdf) do (
call pdfcheck.bat %%a
)

みたいな感じでやると、現在フォルダにあるPDFファイルに対してforループ回してくれます。pdfcheck.batは別のバッチファイルで、%%aはファイル名を引数として渡しているということです。

次にxpdfにあるフォント情報を得るpdffonts.exeを用いて、

pdffonts %1 > %~n1.txt

として、これをpdfcheck.batとしておきます。

つまり、main.batを叩くと、pdfファイルを見に行って、pdfcheck.batが動いて、それぞれのpdffontsでPDFファイル名を引数にして情報をアウトプットしてくれます。 >自体は出力してファイル名でテキストファイルを出します。

これによって、PDFファイル名のファイル数分だけテキストファイルが出来るので、あとは、これをVBAなり、お好きなテキストファイル処理でやれば一気に埋め込みかどうかを確認できるというわけです。

この手のものは分かってしまえば楽ですが、バッチ処理等で楽しようとかアイデアがないと手でゴリゴリやってしまいがちな領域だなあと感じました。

参考

PDFファイルで使用されているフォントを調べるにはがとても参考になりました。こちらにも書かれていますが、項目の情報自体は、pdffontsのアウトプットは公式サイトにあるので、埋め込みかどうかはemb項目がyesを見れば良さそうです。

他のフォント情報項目もあるので適宜参照して使ってみてください。

タイトルとURLをコピーしました