AFM

application/x-font-adobe-metric

Safe

Magic Bytes

Offset: 0
53 74 61 72 74 46 6F 6E 74 4D 65 74 72 69 63 73

Adobe Font Metrics (AFM) is a plain-text file format developed by Adobe Systems to store technical specification data for PostScript Type 1 fonts. These files provide character dimensions, kerning pairs, and font bounding boxes necessary for typesetting engines to calculate accurate text layouts. As a text-based format containing only measurement metadata, it is considered safe, though it has largely been superseded by modern OpenType formats that integrate metrics directly.

Extension

.afm

MIME Type

application/x-font-adobe-metric

Byte Offset

0

Risk Level

Safe

Validation Code

How to validate .afm files in Python

Python
def is_afm(file_path: str) -> bool:
    """Check if file is a valid AFM by magic bytes."""
    signature = bytes([0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6F, 0x6E, 0x74, 0x4D, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73])
    with open(file_path, "rb") as f:
        return f.read(16) == signature

How to validate .afm files in Node.js

Node.js
function isAFM(buffer: Buffer): boolean {
  const signature = Buffer.from([0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6F, 0x6E, 0x74, 0x4D, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73]);
  return buffer.subarray(0, 16).equals(signature);
}
Go
func IsAFM(data []byte) bool {
    signature := []byte{0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6F, 0x6E, 0x74, 0x4D, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73}
    if len(data) < 16 {
        return false
    }
    return bytes.Equal(data[:16], signature)
}

API Endpoint

GET /api/v1/afm
curl https://filesignature.org/api/v1/afm

Related Formats