Adobe FrameMaker file
application/octet-stream
Magic Bytes
Offset: 0
3C 67 70 78 20 76 65 72 73 69 6F 6E 3D 22 31 2E 31
The Adobe FrameMaker file format is a proprietary document publishing system developed by Adobe Inc. designed specifically for handling large, complex technical documents. It is widely used by technical writers to author structured content, manage extensive cross-references, and generate multi-format publications. Originally created by Frame Technology Corporation, the format remains a standard in enterprise technical communication for supporting both unstructured and XML-based authoring workflows.
Validation Code
How to validate .fm files in Python
Python
def is_fm(file_path: str) -> bool:
"""Check if file is a valid FM by magic bytes."""
signature = bytes([0x3C, 0x67, 0x70, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 0x2E, 0x31])
with open(file_path, "rb") as f:
return f.read(17) == signature
How to validate .fm files in Node.js
Node.js
function isFM(buffer: Buffer): boolean {
const signature = Buffer.from([0x3C, 0x67, 0x70, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 0x2E, 0x31]);
return buffer.subarray(0, 17).equals(signature);
}
Go
func IsFM(data []byte) bool {
signature := []byte{0x3C, 0x67, 0x70, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 0x2E, 0x31}
if len(data) < 17 {
return false
}
return bytes.Equal(data[:17], signature)
}
API Endpoint
GET
/api/v1/fm
curl https://filesignature.org/api/v1/fm