Adobe InDesign document
application/x-adobe-indesign
Magic Bytes
Offset: 0
06 06 ED F5 D8 1D 46 E5 BD 31 EF E7 FE 74 B7 1D
Adobe InDesign Document (INDD) is a proprietary page layout format developed and maintained by Adobe Inc. for professional desktop publishing. This format stores comprehensive layout data, including text, images, and formatting styles, primarily for creating print publications like magazines, brochures, and books. Due to its complex internal database structure, INDD files are generally not backward compatible and require the native application for accurate rendering and editing.
Validation Code
How to validate .indd files in Python
Python
def is_indd(file_path: str) -> bool:
"""Check if file is a valid INDD by magic bytes."""
signature = bytes([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])
with open(file_path, "rb") as f:
return f.read(16) == signature
How to validate .indd files in Node.js
Node.js
function isINDD(buffer: Buffer): boolean {
const signature = Buffer.from([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D]);
return buffer.subarray(0, 16).equals(signature);
}
Go
func IsINDD(data []byte) bool {
signature := []byte{0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D}
if len(data) < 16 {
return false
}
return bytes.Equal(data[:16], signature)
}
API Endpoint
GET
/api/v1/indd
curl https://filesignature.org/api/v1/indd