PFA
application/x-font-type1
Magic Bytes
Offset: 0
80 01 FF FF 00 00 25 21 50 53 2D 41 64 6F 62 65 46 6F 6E 74
The Printer Font ASCII (PFA) format is a Type 1 PostScript font specification developed by Adobe Systems for use on various computer systems. These files define scalable vector outlines for typographic characters and were primarily utilized in professional typesetting and high-resolution printing environments. Although largely superseded by modern OpenType and TrueType formats, PFA remains a historically significant legacy format that is generally considered safe for system installation and document processing.
Validation Code
How to validate .pfa files in Python
Python
def is_pfa(file_path: str) -> bool:
"""Check if file is a valid PFA by magic bytes."""
signature = bytes([0x80, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x25, 0x21, 0x50, 0x53, 0x2D, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x46, 0x6F, 0x6E, 0x74])
with open(file_path, "rb") as f:
return f.read(20) == signature
How to validate .pfa files in Node.js
Node.js
function isPFA(buffer: Buffer): boolean {
const signature = Buffer.from([0x80, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x25, 0x21, 0x50, 0x53, 0x2D, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x46, 0x6F, 0x6E, 0x74]);
return buffer.subarray(0, 20).equals(signature);
}
Go
func IsPFA(data []byte) bool {
signature := []byte{0x80, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x25, 0x21, 0x50, 0x53, 0x2D, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x46, 0x6F, 0x6E, 0x74}
if len(data) < 20 {
return false
}
return bytes.Equal(data[:20], signature)
}
API Endpoint
GET
/api/v1/pfa
curl https://filesignature.org/api/v1/pfa