見出し画像

PDFで使われているフォントの詳細情報を見るツール

前回の記事はPDFファイルの内部構造を見るためのツールを紹介しましたが、今回はPDFファイルで使われているフォントの詳細情報を出力してくれるツールです。

Adobe の Acrobat や Acrobat Reader では今開いているファイルのフォントの情報を、メニュー「ファイル(F)」-「プロパティ(E)...」-「フォント」タブで表示してくれます。

Acrobat の「文書のプロパティ」の「フォント」

しかしそこにはフォントの名前・種類・エンコーディングだけしか表示されません。(Adobe Acrobat については、実は別の方法でもっと細かい情報を見ることができます)
もう少し詳しい情報が欲しくて探し出したものが PDFlib FontReporter でした。Windows 版と Mac 版の Adobe Acrobat のプラグインとして無償で利用できます。残念ながら Adobe Acrobat Reader では利用できません。フォント関連の詳細情報や利用されているフォントのグリフを表形式で表示してくれます。

現時点では、ダウンロードページで「PDFlib FontReporter Plugin 2.0」が利用可能になっています。私は「Windows (Acrobat DC 64-bit)」の「PDFlib-FontReporter-Plugin-2.0-Acrobat-DC-64-bit.exe」というファイル名のインストーラーをダウンロードしました。インストールすると Acrobat の上部のメニューに「プラグイン(P)」という項目が増えます。

追加されたメニュー項目

何かPDFファイルを開いている状態で、このメニューから「PDFlib FontReporter...」-「Create Font Report」を選択すると、新しいPDFファイルとしてフォントの情報を出力してくれます。
ちなみにメニュー項目の「Restrict Font Reports to current page」はON/OFFのスイッチになっていて、OFFの状態ではPDFファイル全体のフォントの情報を出力しますが、ONの状態では現在開いているページに限定してフォントの情報を出力してくれます。

サンプルに利用するPDFファイルを取得します。
著作権とかであまり問題にならないように、Google で「PDF 法律」で検索すると、先頭に「法令|デジタル庁Web」のページが出ました。
そのページにあるPDFファイルのリンクが「情報通信技術を利用する方法による国の歳入等の納付に関する法律(令和4年法律第39号)」でしたので、これを使います。

サンプルとして利用したPDFのページ先頭部分

このPDFファイルを開いて PDFlib FontReporter でフォントの情報を出力します。先頭ページは「General Info」です。このPDFファイルでは「SJBUHT+MeiryoUIBold」と「SJBUHT+MeiryoUIBold」の2つのフォントが使われているのがわかります。

フォントの詳細情報の先頭ページ

ここで Acrobat でこのPDFファイルの内部構造を見てみると、フォントは
F1が「SJBUHT+MeiryoUIBold」で、F2が「SRPNPW+MeiryoUI」となっています。

PDFで利用するフォントが定義されている箇所

さらにコンテンツストリームを見てみると、「Tj」というのがテキストを表示するオペレータなのですが、それが最初に現れる前に、「Tf」というオペレータで、これから使うフォントとそのサイズを指定しています。ここでは F1 ですので「SJBUHT+MeiryoUIBold」が指定されています。

これから使うフォントを指定している箇所

この Acrobat の内部構造の表示はわかりにくいので、前回紹介したツールの1つで PDF Stream Dumper というのを使います。同じコンテンツストリームを PDF Stream Dumper で表示したものです。「Tj」が使われているところに赤の下線を表示しました。

「Tj」が現れる箇所

最初の「Tj」のオペランドは 0A72 です。CID x0A00 のページの 7x とx2 が交差するところにあるのが「情」です。その下にユニコードの U+60C5 も表示されています。
次の「Tj」のオペランドは 0A3E です。同様に見ていくと「報」です。

CID x0A00 のページ

次の「Tj」のオペランドは 09E2 です。CID x0900 のページで同様に見ていくと「通」です。

CID x0900 のページ

続けると以下のようになり、PDFファイルの一番上に書いてある行であることがわかります。
(0A72)
(0A3E)
(09E2)
(0A26)
(0AFC)
(0B52)
(5CFC)
(0A39)
(09F7)
(5CC3)
(5CF5)
(09CD)
(09E7)

全部のPDFがこの方法で見ることができるわけではありませんが、そんな見方もあるということです。
このプラグインは大変便利なので、無償で公開していただけるのは大変ありがたいです。ちなみにこのプラグインをインストールしたフォルダーに、英語と独語のPDFのマニュアルがあります。

しかし、残念ながら日本語のファイル名やフォント名などで文字化けします。

ファイル名とフォント名の文字化け


いいなと思ったら応援しよう!