Laatst Bijgewerkt: 10 september 2026

Hoe werkt compressie binnen EPUB, DOCX, XLSX en PPTX
Als je een .docx, .xlsx, .pptx of .epub-bestand hernoemt naar .zip en er dubbel op klikt, gebeurt er iets verrassends: het geeft geen foutmelding. Je besturingssysteem opent het als een map vol met submappen, XML-configuratiebestanden, stijlsheets, lettertypen en ingesloten afbeeldingen.
Moderne documentarchitecturen hebben decennialang monolithische binaire blobs verlaten. In hun plaats hebben industriestandaarden—namelijk Open Packaging Conventions (OPC) voor Microsoft Office en Open Container Format (OCF) voor EPUB—een verrassend elegant fundament aangenomen: het eenvoudige ZIP‑archief.
Begrijpen hoe compressie werkt binnen deze formaten onthult waarom moderne documenten zo veerkrachtig, lichtgewicht en uitbreidbaar zijn—en waarom sommige bestanden met 90 % comprimeren terwijl andere nauwelijks krimpen.
1. De Containerarchitectuur: Vermomde ZIP pakketten
Voordat je het compressie‑algoritme zelf begrijpt, helpt het om te begrijpen waarom moderne documentformaten zijn gestructureerd als pakketten in plaats van als losse ruwe bestanden.
Het probleem met verouderde binaire formaten
Gedurende de jaren 90 en het begin van de jaren 2000 gebruikte Microsoft Office propriëtaire binaire formaten (.doc, .xls, .ppt). Deze bestanden waren in wezen geheugen‑dump’s gestructureerd rond het Compound File Binary Format (CFBF). Ze waren berucht fragiel:
- Een enkele bit‑omslag kon de volledige bestandsstructuur corrupt maken.
- Het insluiten van afbeeldingen zorgde ervoor dat bestandsgroottes onvoorspelbaar opliepen.
- Parsen vereiste reverse‑engineering van dichte binaire specificaties.
- Cross‑platform interoperabiliteit was een nachtmerrie.
De verschuiving naar open, modulaire containers
Midden jaren 2000 vonden twee parallelle evoluties plaats:
- Office Open XML (OOXML / ISO/IEC 29500): Microsoft introduceerde de XML‑gebaseerde formaten die eindigen op een
x(DOCX, XLSX, PPTX). Onder de motorkap volgen deze bestanden de Open Packaging Conventions (OPC). - EPUB (IDPF / W3C): Digitale publicatie is afgeweken van propriëtaire lezerformaten naar standaard webtechnologieën (HTML, CSS, SVG) verpakt in het EPUB Open Container Format (OCF).
Beide architecturen vertrouwen op de standaard PKZIP 2.0 / ZIP-specificatie. De bestandsextensie bepaalt simpelweg het verwachte schema, de standaard viewer‑applicatie en de mime‑type‑verklaringen.
Sample DOCX File (Unzipped):
├── [Content_Types].xml <-- Registry of MIME types for parts
├── _rels/ <-- Package-level relationships
│ └── .rels
├── docProps/ <-- Core and extended metadata
│ ├── app.xml
│ └── core.xml
└── word/ <-- Main content payload
├── document.xml <-- Text, paragraphs, and tags
├── styles.xml <-- Typography and presets
├── numbering.xml <-- Lists and counters
├── media/ <-- Embedded images (PNG, JPG)
└── _rels/
└── document.xml.rels <-- Internal hyperlinks & resource pointers
2. De motor onder de motorkap: Het DEFLATE-algoritme
Wanneer een software‑applicatie een DOCX‑ of EPUB‑bestand opslaat, slaat het niet alleen bestanden op in een ongecomprimeerd archief. Het comprimeert de interne assets met DEFLATE (gespecificeerd in RFC 1951).
DEFLATE is een tweelaags verliesloos compressiesysteem dat twee fundamentele algoritmen uit de informatica combineert:
Stap 1: LZ77 (Lempel-Ziv 1977) — Verwijdering van redundantie via schuivende venster
XML en HTML zijn extreem uitgebreid. Overweeg hoe vaak tags voorkomen in een standaard document.xml‑ of chapter1.xhtml‑bestand:
<w:p><w:r><w:rPr><w:sz w:val=\"24\"/></w:rPr><w:t>wordt duizenden keren herhaald in Word.row r="1" spans="1:15"><c r="A1" t="s"><v>herhaalt zich in Excel over tienduizenden cellen.<p class="calibre1"><span class="body-text">herhaalt zich over EPUB-boekhoofdstukken.
LZ77 scant de gegevensstroom met een schuivend woordenboekvenster (meestal 32 KB). Wanneer het een tekenreeks tegenkomt die het recent heeft gezien, vervangt het de dubbele tekst door een kleine achterwaartse pointer:
(distance, length)— bijv. “ga 142 bytes terug, kopieer 28 bytes”.
In plaats van herhaaldelijk uitgebreide markup op te slaan, comprimeert LZ77 duizenden repetitieve XML-tags tot compacte coördinatereferenties.
Stap 2: Huffman-codering — Variabele-lengte frequentiecodering
Nadat LZ77 redundante sequenties heeft vervangen door lengte‑afstandstokens, analyseert Huffman-codering de frequentie van elk symbool in de stroom:
- Veelvoorkomende symbolen (zoals veelgebruikte tekens
e,t, spaties, of veelvoorkomende afstandsmarkeringen) krijgen korte binaire bitcodes toegewezen (bijv. 2 tot 4 bits). - Zelden gebruikte symbolen krijgen langere binaire bitcodes (bijv. 12 tot 16 bits).
Het resultaat is een stroom van variabele-lengte bitcodes die platte-tekst XML comprimeren tot 75% tot 88%.
3. Formaat-per-formaat analyse: Hoe elk compressie behandelt
Hoewel DOCX, XLSX, PPTX en EPUB allemaal dezelfde ZIP-omslag gebruiken, verschillen hun interne gegevenskenmerken sterk.
A. DOCX: De evenwichtsoefening tussen tekst en opmaak
- Wat er in zit: Platte XML (
word/document.xml), lettertype-tabellen, stijlen, relatiecatalogi en eenword/media/map. - Hoe compressie presteert:
- De ruwe tekst en XML-markup ondervinden enorme compressieverhoudingen (vaak dalend van 5 MB ruwe XML tot 500 KB).
- Moderne documenten bevatten echter vaak screenshots, illustraties en foto’s. Omdat JPEG- en PNG‑bestanden al gecomprimeerd zijn, kan DEFLATE ze niet verder verkleinen. In feite levert het toepassen van DEFLATE op een al gecomprimeerde afbeelding praktisch 0 % besparing op (en kan het zelfs de grootte iets verhogen door compressiekoppen).
- Daarom zijn DOCX‑bestanden zonder afbeeldingen uitzonderlijk klein, terwijl beeld‑zware rapporten bijna exact de grootte van hun ingesloten afbeeldingsbestanden weerspiegelen.
B. XLSX: Grote Hoeveelheid Numerieke Gegevens & Gedeelde Strings
Spreadsheets vormen een unieke uitdaging: een blad kan honderdduizenden rijen bevatten, wat leidt tot astronomische XML‑bestandsgroottes als dit niet slim wordt aangepakt.
- De gedeelde strings-strategie (
xl/sharedStrings.xml):- Als een tekstlabel zoals “United States” of “In Progress” 50,000 keer voorkomt in een spreadsheet, zou het opslaan van
<c t=\"inlineStr\"><is><t>United States</t></is></c>in 50,000 cellen de ongecomprimeerde XML tot gigabytes opblazen. - Excel verwijdert duplicaten van tekst vóór compressie door elke unieke tekenreeks één keer op te slaan in een gedeelde stringtabel en ernaar te verwijzen via een numerieke index (bijv.
<v>0</v>,<v>1</v>).
- Als een tekstlabel zoals “United States” of “In Progress” 50,000 keer voorkomt in een spreadsheet, zou het opslaan van
- Waarom XLSX dramatisch comprimeert:
- Numerieke rijrecords (
sheet1.xml) volgen repetitieve, voorspelbare syntaxis. - DEFLATE detecteert gemakkelijk repetitieve patronen in tabel-XML. Het is gebruikelijk dat een ruwe
sheet1.xmlvan 120 MB krimpt tot minder dan 6 MB binnen een XLSX-archief.
- Numerieke rijrecords (
C. PPTX: Media-Intensieve Diareeks
Presentaties zijn fundamenteel anders dan documenten en spreadsheets:
- Het beelddilemma: PPTX-bestanden worden doorgaans gedomineerd door vectorvormen, achtergrondafbeeldingen, videoclips en hoge-resolutie dia’s.
- Compressieprofiel: Terwijl
ppt/slides/slide1.xmltotslideN.xmlefficiënt comprimeren, vormt de mediabelasting (ppt/media/) 85% tot 95% van het totale archiefgewicht. - Waarom opnieuw zippen van een PPTX niets verandert: Als je probeert een al opgeslagen PPTX-bestand opnieuw te comprimeren met 7-Zip of WinRAR, zul je bijna geen verkleining van de grootte merken. Omdat de binnenkant al een DEFLATE-gecomprimeerd ZIP-archief is dat vooraf gecomprimeerde JPEG’s en MP4’s bevat, is de entropie al bijna maximaal.
D. EPUB: Webtechnologieën met een Verplichte Niet-gecomprimeerde Header
Een EPUB‑bestand is in wezen een responsieve, verpakte micro‑website die XHTML‑hoofdstukken, CSS‑stylesheets, TTF/WOFF‑lettertypen en metadata bevat. EPUB heeft echter één strikte verpakkingsregel die het onderscheidt van Microsoft Office‑bestanden:
EPUB Internal Structure:
├── mimetype <-- MUST be uncompressed (Stored) & at byte offset 38
├── META-INF/
│ └── container.xml <-- Tells reader where the OPF manifest lives
└── OEBPS/ (or EPUB/)
├── content.opf <-- Manifest of all book assets
├── toc.ncx / nav.xhtml <-- Table of contents navigation
├── styles/style.css <-- CSS formatting
├── images/ <-- Book cover & illustrations
└── text/ <-- chapter1.xhtml, chapter2.xhtml
- Het magische
mimetype‑bestand:- E‑readers moeten een EPUB onmiddellijk kunnen identificeren zonder het volledige archief uit te pakken of decompressiepijplijnen uit te voeren.
- Het Open Container Format (OCF) vereist dat het
mimetype‑bestand:- Het moet het allereerste bestand in het ZIP‑archief zijn.
- Moet exact de tekenreeks
application/epb+zipbevatten. - Mag niet gecomprimeerd worden (ZIP-compressiemethode
0/ “Stored”). - Mag geen extra veldgegevens bevatten, zodat de MIME-string altijd begint bij byte 38 van het fysieke bestand.
- Tekstcompressie: Alle overige bestanden (
.xhtml,.css,.opf) worden gecomprimeerd met standaard DEFLATE (ZIP-methode8), waardoor volledige romans kunnen krimpen tot enkele honderden kilobytes.
4. Vergelijken van compressie over formaten
| Formaat | Kernpayload | Primaire redundantiebron | Typische compressieverhouding (tekst/opmaak) | Media-afhandeling |
|---|---|---|---|---|
| DOCX | WordprocessingML (document.xml) | Herhalende XML alinea-/run-tags | 75% – 85% | Opgeslagen in word/media/ (meestal vooraf gecomprimeerd) |
| XLSX | SpreadsheetML (sheet*.xml) | Herhalende cel-/rij-tags; Gedeelde strings | 80% – 92% | Sporadisch; afbeeldingen/grafieken in xl/media/ |
| PPTX | PresentationML (slide*.xml) | Dia‑indeling metadata, vormcoördinaten | 70% – 80% | Zware ppt/media/ payload beperkt de totale besparingen |
| EPUB | XHTML, CSS, OPF, NCX | HTML-tags, repetitieve CSS-selectoren | 65% – 80% | mimetype ongecomprimeerd; media in submappen |
5. Praktische Leerpunten: Hoe je je documenten optimaliseert
Omdat je nu weet hoe interne verpakking werkt, kun je compressiemechanismen benutten om echte problemen op te lossen:
- Corrigeren van corrupte documenten:
Als een document weigert te openen, kun je de extensie wijzigen naar
.zipom de inhoud te extraheren en de ruwe tekst te herstellen uitdocument.xmlof individuele hoofdstukken uit detext/-map van de EPUB. - Verkleinen van enorme Office‑bestanden:
Aangezien XML-compressie al geoptimaliseerd is, worden enorme bestanden bijna altijd veroorzaakt door niet-geoptimaliseerde afbeeldingen in
media/. In plaats van derde-partij PDF- of DOCX-compressors te gebruiken, open je de ZIP-container, extraheer je de afbeeldingen, voer je ze door een afbeeldingsoptimalizer (zoals WebP, TinyPNG of MozJPEG), en vervang je ze in het archief. - Documentgeneratie automatiseren: Ontwikkelaars hebben geen zware kantoorsuites nodig om rapporten te maken. Je kunt ruwe XML-sjablonen genereren, ze bundelen met standaard zlib/ZIP-bibliotheken, en programmatisch binnen enkele milliseconden geldige DOCX- of XLSX-bestanden produceren.
6. Veelgestelde Vragen (FAQ)
Kan ik een DOCX of EPUB naar een ZIP-bestand converteren door alleen de bestandsextensie te hernoemen? Ja; het hernoemen van de extensie naar .zip maakt het mogelijk dat elk standaard archiefprogramma (zoals 7-Zip, macOS Archive Utility of Windows Verkenner) de interne bestanden direct kan openen en inspecteren.
Waarom maakt het comprimeren van een DOCX of PPTX met 7-Zip het niet merkbaar kleiner? Omdat het bestand al een intern gecomprimeerd ZIP-archief is dat DEFLATE-gecodeerde XML en vooraf gecomprimeerde afbeeldingen bevat, waardoor er minimale redundantie overblijft die een extern hulpmiddel kan verwijderen.
Waarom vereist de EPUB-specificatie dat het mimetype-bestand niet gecomprimeerd is? Het stelt e‑reader‑software in staat om te verifiëren dat het bestand een authentieke EPUB is door de MIME‑string op een vaste byte‑offset te controleren, zonder een decompressie‑engine te hoeven initialiseren.
Verhoogt het wijzigen van celopmaak in Excel de grootte van het gecomprimeerde XLSX‑bestand? Ja; uitgebreide aangepaste opmaak onderbreekt de uniforme patroonherhaling tussen cellen, waardoor langere XML‑definities ontstaan die de compressie‑efficiëntie van DEFLATE verminderen.
Is het mogelijk om hoge‑resolutie originele afbeeldingen uit een Word‑ of PowerPoint‑bestand te extraheren zonder kwaliteitsverlies? Ja; hernoem het bestand naar .zip, open de word/media‑ of ppt/media‑map, en je zult de originele, ongecomprimeerde bronafbeeldingen vinden precies zoals ze zijn ingevoegd.