本文へスキップ
AZ Tools

フォントファイル検査ツール

フォントファイル内のテーブルを読み、そのファイルが自分自身について実際に何を主張しているかを示します。ファイル名が言っていることとは違う場合がよくあります。オペレーティングシステムが読むままのファミリー名とスタイル名、CSS や PDF の工程が要求する PostScript 名、バージョン文字列、グリフ数、このフォントが実際に対応づけている Unicode コードポイントの数、em あたりのユニット数、ウェイトと幅のクラス、ベンダー ID、そして著作権・ライセンス・ライセンス URL の各欄にデザイナーが書き込んだ内容が得られます。さらに OS/2 テーブルの 2 バイトのフィールドである fsType も読みます。そこにはベンダーが許可する範囲が記録されています。インストール可、プレビューと印刷のみ、編集可能な埋め込み、サブセット化不可、あるいは埋め込み自体の禁止です。アプリや PDF の中にフォントを同梱してよいかを決めるのはこのフィールドなのに、見る人はほとんどいません。混同しやすい二つの数はあえて分けて示します。グリフ数はファイルが持つ字形の数、対応文字数は cmap が実在のグリフへ解決するコードポイントの数です。どのフォントでも両者は食い違います。cmap の範囲には穴があり得ますし、合字やスモールキャップ、字形の異体はどのコードポイントも直接指していないからです。すべてのテーブルのチェックサムを検証するので、ビルド後に編集されたり壊れたりしたファイルは無傷のように読まれず、印が付きます。TrueType、OpenType/CFF、WOFF に対応し、WOFF2 は Brotli 圧縮のため誤読せず理由を示して拒否します。アップロードは行わず、ブラウザー内で解析します。

使い方

  1. .ttf、.otf、.woff を枠にドロップするか、クリックしてファイルを選びます。WOFF は解析の前にブラウザー内で展開します。
  2. ファミリー名とスタイル名で、そのフォントが自分を何と名乗っているかを確認します。フォントメニューに出るのはこの名前で、ファイル名はしばしば誤っています。
  3. アプリや PDF、ウェブページにフォントを同梱する前に埋め込みの行を確認してください。ベンダー自身が示した許諾範囲です。
  4. グリフ数と対応文字数を比べて実際のカバー範囲を判断します。グリフが多いのに対応文字が少なければ、その多くは異体字です。
  5. テーブル一覧を開くとどのテーブルを持っているか分かります。強調された項目はチェックサムが合わなかったテーブルです。

よくある質問

ここに出るファミリー名がファイル名と違うのはなぜですか。
両者は無関係だからです。ファイル名はそのファイルを渡した人が入力した文字列にすぎず、ファミリー名はフォントの name テーブルの中にあって、OS もフォントメニューも CSS も実際に照合するのはそちらです。ファイル名を変えてもフォントは何も変わりません。だからこそ、きれいに名前を付けたファイルばかりのフォルダーが、インストールすると一つのややこしいファミリーになってしまったり、ディスク上では正しく見えるウェブフォントが font-family の指定に一致しなかったりします。効くのは内側の名前で、このツールはその名前を見せます。
fsType とは何で、なぜ気にすべきですか。
fsType は OS/2 テーブルにある 2 バイトのフィールドで、PDF やアプリのバンドル、ゲーム、ウェブフォントに埋め込むときに何をしてよいかをベンダーが記録したものです。0 なら制限なくインストール可。ビット 1 は埋め込み禁止。ビット 2 はプレビューと印刷のみで、PDF は表示できても誰もテキストを編集できません。ビット 3 は編集可能な埋め込みを許します。さらに二つのビットがサブセット化を禁じ、埋め込みをビットマップに限ります。鍵というより機械可読の意思表示であり、ライセンス本文を読む代わりにはなりませんが、制限ありと記されたフォントは配布前に確認せよという明確な合図です。
対応文字数がグリフ数より少ないのはなぜですか。
測っているものが違います。グリフはファイル内の字形、対応文字は cmap テーブルが .notdef ではないグリフへ解決する Unicode のコードポイントです。ほとんどのフォントでグリフの方が多くなります。合字、スモールキャピタル、オールドスタイル数字、アラビア文字の位置別字形、スタイル異体は、いずれもどのコードポイントも直接指していないグリフで、レイアウトエンジンが OpenType 機能を通して呼び出すからです。cmap の範囲が解決するグリフではなく範囲の長さを数えると、カバー範囲を過大に見せてしまいます。範囲の中に未対応の穴があっても仕様上は正当だからです。
WOFF2 やフォントコレクションは開けますか。
まだ開けませんし、推測せずそう伝えます。WOFF2 は Brotli 圧縮で、開くにはこのページ全体よりずっと大きな展開器が必要になるため、メッセージを出して拒否します。Google の woff2 ツールにある woff2_decompress を使えば一瞬で普通のファイルになります。.ttc フォントコレクションは一つのヘッダーの後ろに複数のフォントを収めていますが、このツールは単一のフォントを読むので、コレクションも拒否します。素の WOFF には対応しています。テーブルが zlib で圧縮されており、解析の前にここで展開します。
em あたりのユニット数からは何が分かりますか。
フォントの座標が表現される設計グリッドの大きさ、つまり 1 em を構成する内部単位の数です。TrueType フォントはほぼ必ず 1000 か 2048 を、CFF/OpenType フォントはたいてい 1000 を使います。フォント間でメトリクスを比べるときや、フォントエディターの値を換算するときに効いてきます。アセンダーが 1600 ユニットと言われても、em が 1000 なのか 2048 なのかを知るまでは意味を持ちません。また TrueType のヒンティングが正しく働くには 2 の冪である必要があり、2048 がこれほど多いのはそのためです。
フォントはどこかに送信されますか。
いいえ。ファイルはブラウザー自身のファイル API で読み、このページの JavaScript で解析し、どこにも送りません。直接確かめられます。ページを開いてからネットワークを切り、フォントをドロップしてみてください。そのまま動きます。フォントではこの点がいっそう重要です。ライセンスを購入した商用フォントこそ、ライセンスを確かめるために見知らぬサーバーへ上げてはいけない種類のファイルだからです。

関連ツール

WAV ファイル インスペクター

.wav をドロップ → フォーマット・チャンネル・サンプルレート・ビット深度・再生時間・全 RIFF チャンク・埋め込み LIST/INFO タグを表示。完全クライアントサイド。

ファイル 0 0

WebP ファイル検査ツール

.webp の RIFF チャンクをブラウザーで辿ります。非可逆・可逆・拡張の判別、キャンバスとフレームサイズの比較、アニメーションの時間、アルファ、ICC、Exif、XMP を表示します。

ファイル 0 0

MP4 / ISO ベースメディア構造インスペクター

MP4・M4A・M4V・MOV をブラウザーで解析。ブランド、ファストスタート判定、ボックスツリー、トラックごとのコーデックと長さ、iTunes タグを表示します。

ファイル 0 0

PNG チャンクインスペクター

`.png` ファイルをドロップして、含まれるすべてのチャンクを見る — IHDR、IDAT、tEXt メタデータ、IEND — サイズ、CRC、critical / ancillary / safe-to-copy フラグ付き。

ファイル 0 0

WebAssembly モジュールインスペクタ

ブラウザ内で .wasm を解析し、セクションのサイズ、型付きのインポートとエクスポート、メモリのページ数、start 関数、name と producers セクションを表示します。

開発 0 0

Java クラスファイル解析ツール

コンパイル済みの .class ファイルをブラウザーで解析します。クラスファイルバージョンと Java リリース、アクセスフラグ、定数プール、フィールド、メソッド、参照クラスを表示します。

ファイル 0 0