Test files › Office documents › presentation.odp

Sample ODP file (presentation)

A two-slide OpenDocument presentation built from source, with a title frame and a bullet list.

↓ Download presentation.odp
Filenamepresentation.odp
FormatODP
Size951 bytes (951 bytes)
MIME typeapplication/vnd.oasis.opendocument.presentation
SHA-256b43b1246da01efa0e6c7dd86ec3c2a1c6eb1da6c201ebc4f66f68923e293ba8e
What this file catchesThe third OpenDocument type, which importers routinely forget. Handlers that accept .odt and .ods often reject .odp, or sniff it as a plain ZIP, because its mimetype part is the one nobody added to the allowlist.

Handle it in code

Each snippet below was run against this exact file with Python 3.14.4 and Node 24.15.0 when this page was built, and the output shown is what it printed.

Python

Check for macros before accepting or opening an Office upload. Modern files are ZIPs: VBA lives in vbaProject.bin (Microsoft) or a Basic folder (OpenDocument). Legacy .xls/.doc files are OLE2 containers that need a dedicated parser, such as oletools, to see inside.

import zipfile

OLE2 = bytes.fromhex("d0cf11e0a1b11ae1")

with open("presentation.odp", "rb") as f:
    magic = f.read(8)
if magic == OLE2:
    print("legacy OLE2 file (.xls, .doc, .ppt, .msg): may carry VBA; inspect it with an OLE parser")
elif not zipfile.is_zipfile("presentation.odp"):
    print("not an Office file")
else:
    with zipfile.ZipFile("presentation.odp") as z:
        names = z.namelist()
        types = z.read("[Content_Types].xml").decode() if "[Content_Types].xml" in names else ""
    macros = [n for n in names if n.lower().endswith("vbaproject.bin") or n.startswith(("Basic/", "Scripts/"))]
    if macros or "macroEnabled" in types:
        print("contains macros:", ", ".join(macros) or "declared in [Content_Types].xml")
    else:
        print(f"no macro parts among {len(names)} entries")

Run against this file, it prints: no macro parts among 3 entries

Related guides and tools

File signaturesMIME typesCheck a file's real typeVerify its SHA-256

Download & verify

curl -fsSL -o "presentation.odp" "https://files.hexaqa.com/office/presentation.odp"
curl -fsSL "https://files.hexaqa.com/office/presentation.odp" | sha256sum # expect: b43b1246da01efa0e6c7dd86ec3c2a1c6eb1da6c201ebc4f66f68923e293ba8e

More office documents test files

document.odtformula-injection.xlsxlegacy-workbook.xlsmacro-enabled.xlsmpresentation.pptxspreadsheet.odsspreadsheet.xlsxcorrupt-missing-content-types.docx

← All Office documents files