<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ZIP-verpakking on File Format Blog</title>
    <link>https://blog.fileformat.com/nl/tag/zip-verpakking/</link>
    <description>Recent content in ZIP-verpakking on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>nl</language>
    <lastBuildDate>Thu, 10 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/nl/tag/zip-verpakking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Hoe werkt compressie binnen EPUB, DOCX, XLSX en PPTX?</title>
      <link>https://blog.fileformat.com/nl/compression/how-compression-works-inside-epub-docx-xlsx-and-pptx/</link>
      <pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/nl/compression/how-compression-works-inside-epub-docx-xlsx-and-pptx/</guid>
      <description>Ben je je ooit afgevraagd wat er onder de motorkap van een .docx- of .epub-bestand zit? Ontdek hoe ZIP-verpakking en DEFLATE-compressie moderne kantoordocumenten en e‑books lichtgewicht en georganiseerd houden.</description>
      <content:encoded><![CDATA[<p><strong>Laatst Bijgewerkt</strong>: 10 september 2026</p>
<figure class="align-center ">
    <img loading="lazy" src="images/how-compression-works-inside-epub-docx-xlsx-and-pptx.png#center"
         alt="How Compression Works Inside EPUB, DOCX, XLSX, &amp; PPTX: The Hidden ZIP Architecture"/> 
</figure>

<h2 id="hoe-werkt-compressie-binnen-epub-docx-xlsx-en-pptx">Hoe werkt compressie binnen EPUB, DOCX, XLSX en PPTX</h2>
<p>Als je een <code>.docx</code>, <code>.xlsx</code>, <code>.pptx</code> of <code>.epub</code>-bestand hernoemt naar <code>.zip</code> 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.</p>
<p>Moderne documentarchitecturen hebben decennialang monolithische binaire blobs verlaten. In hun plaats hebben industriestandaarden—namelijk <strong>Open Packaging Conventions (OPC)</strong> voor Microsoft Office en <strong>Open Container Format (OCF)</strong> voor EPUB—een verrassend elegant fundament aangenomen: het eenvoudige <strong>ZIP‑archief</strong>.</p>
<p>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.</p>
<h2 id="1-de-containerarchitectuur-vermomde-zip9-pakketten">1. De Containerarchitectuur: Vermomde <a href="https://docs.fileformat.com/compression/zip/">ZIP</a> pakketten</h2>
<p>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.</p>
<h3 id="het-probleem-met-verouderde-binaire-formaten">Het probleem met verouderde binaire formaten</h3>
<p>Gedurende de jaren 90 en het begin van de jaren 2000 gebruikte Microsoft Office propriëtaire binaire formaten (<code>.doc</code>, <code>.xls</code>, <code>.ppt</code>). Deze bestanden waren in wezen geheugen‑dump&rsquo;s gestructureerd rond het Compound File Binary Format (CFBF). Ze waren berucht fragiel:</p>
<ul>
<li>Een enkele bit‑omslag kon de volledige bestandsstructuur corrupt maken.</li>
<li>Het insluiten van afbeeldingen zorgde ervoor dat bestandsgroottes onvoorspelbaar opliepen.</li>
<li>Parsen vereiste reverse‑engineering van dichte binaire specificaties.</li>
<li>Cross‑platform interoperabiliteit was een nachtmerrie.</li>
</ul>
<h3 id="de-verschuiving-naar-open-modulaire-containers">De verschuiving naar open, modulaire containers</h3>
<p>Midden jaren 2000 vonden twee parallelle evoluties plaats:</p>
<ol>
<li><strong>Office Open XML (OOXML / ISO/IEC 29500):</strong> Microsoft introduceerde de XML‑gebaseerde formaten die eindigen op een <code>x</code> (<a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a>, <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a>, <a href="https://docs.fileformat.com/presentation/pptx/">PPTX</a>). Onder de motorkap volgen deze bestanden de <strong>Open Packaging Conventions (OPC)</strong>.</li>
<li><strong><a href="https://docs.fileformat.com/ebook/epub/">EPUB</a> (IDPF / W3C):</strong> Digitale publicatie is afgeweken van propriëtaire lezerformaten naar standaard webtechnologieën (HTML, CSS, SVG) verpakt in het <strong>EPUB Open Container Format (OCF)</strong>.</li>
</ol>
<p>Beide architecturen vertrouwen op de standaard <strong>PKZIP 2.0 / ZIP-specificatie</strong>. De bestandsextensie bepaalt simpelweg het verwachte schema, de standaard viewer‑applicatie en de mime‑type‑verklaringen.</p>
<pre tabindex="0"><code>Sample DOCX File (Unzipped):
├── [Content_Types].xml        &lt;-- Registry of MIME types for parts
├── _rels/                     &lt;-- Package-level relationships
│   └── .rels
├── docProps/                  &lt;-- Core and extended metadata
│   ├── app.xml
│   └── core.xml
└── word/                      &lt;-- Main content payload
    ├── document.xml           &lt;-- Text, paragraphs, and tags
    ├── styles.xml             &lt;-- Typography and presets
    ├── numbering.xml          &lt;-- Lists and counters
    ├── media/                 &lt;-- Embedded images (PNG, JPG)
    └── _rels/
        └── document.xml.rels  &lt;-- Internal hyperlinks &amp; resource pointers
</code></pre><h2 id="2-de-motor-onder-de-motorkap-het-deflate-algoritme">2. De motor onder de motorkap: Het DEFLATE-algoritme</h2>
<p>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 <strong>DEFLATE</strong> (gespecificeerd in RFC 1951).</p>
<p>DEFLATE is een tweelaags verliesloos compressiesysteem dat twee fundamentele algoritmen uit de informatica combineert:</p>
<h3 id="stap-1-lz77-lempel-ziv-1977--verwijdering-van-redundantie-via-schuivende-venster">Stap 1: LZ77 (Lempel-Ziv 1977) — Verwijdering van redundantie via schuivende venster</h3>
<p>XML en HTML zijn extreem uitgebreid. Overweeg hoe vaak tags voorkomen in een standaard <code>document.xml</code>‑ of <code>chapter1.xhtml</code>‑bestand:</p>
<ul>
<li><code>&lt;w:p&gt;&lt;w:r&gt;&lt;w:rPr&gt;&lt;w:sz w:val=\&quot;24\&quot;/&gt;&lt;/w:rPr&gt;&lt;w:t&gt;</code> wordt duizenden keren herhaald in Word.</li>
<li><code>row r=&quot;1&quot; spans=&quot;1:15&quot;&gt;&lt;c r=&quot;A1&quot; t=&quot;s&quot;&gt;&lt;v&gt;</code> herhaalt zich in Excel over tienduizenden cellen.</li>
<li><code>&lt;p class=&quot;calibre1&quot;&gt;&lt;span class=&quot;body-text&quot;&gt;</code> herhaalt zich over EPUB-boekhoofdstukken.</li>
</ul>
<p>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:</p>
<ul>
<li><code>(distance, length)</code> — bijv. &ldquo;ga 142 bytes terug, kopieer 28 bytes&rdquo;.</li>
</ul>
<p>In plaats van herhaaldelijk uitgebreide markup op te slaan, comprimeert LZ77 duizenden repetitieve XML-tags tot compacte coördinatereferenties.</p>
<h3 id="stap-2-huffman-codering--variabele-lengte-frequentiecodering">Stap 2: Huffman-codering — Variabele-lengte frequentiecodering</h3>
<p>Nadat LZ77 redundante sequenties heeft vervangen door lengte‑afstandstokens, analyseert <strong>Huffman-codering</strong> de frequentie van elk symbool in de stroom:</p>
<ul>
<li>Veelvoorkomende symbolen (zoals veelgebruikte tekens <code>e</code>, <code>t</code>, spaties, of veelvoorkomende afstandsmarkeringen) krijgen korte binaire bitcodes toegewezen (bijv. 2 tot 4 bits).</li>
<li>Zelden gebruikte symbolen krijgen langere binaire bitcodes (bijv. 12 tot 16 bits).</li>
</ul>
<p>Het resultaat is een stroom van variabele-lengte bitcodes die platte-tekst XML comprimeren tot <strong>75% tot 88%</strong>.</p>
<h2 id="3-formaat-per-formaat-analyse-hoe-elk-compressie-behandelt">3. Formaat-per-formaat analyse: Hoe elk compressie behandelt</h2>
<p>Hoewel DOCX, XLSX, PPTX en EPUB allemaal dezelfde ZIP-omslag gebruiken, verschillen hun interne gegevenskenmerken sterk.</p>
<h3 id="a-docx-de-evenwichtsoefening-tussen-tekst-en-opmaak">A. DOCX: De evenwichtsoefening tussen tekst en opmaak</h3>
<ul>
<li><strong>Wat er in zit:</strong> Platte XML (<code>word/document.xml</code>), lettertype-tabellen, stijlen, relatiecatalogi en een <code>word/media/</code> map.</li>
<li><strong>Hoe compressie presteert:</strong>
<ul>
<li>De ruwe tekst en XML-markup ondervinden enorme compressieverhoudingen (vaak dalend van 5 MB ruwe XML tot 500 KB).</li>
<li>Moderne documenten bevatten echter vaak screenshots, illustraties en foto’s. Omdat JPEG- en PNG‑bestanden <strong>al gecomprimeerd</strong> 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).</li>
<li>Daarom zijn DOCX‑bestanden zonder afbeeldingen uitzonderlijk klein, terwijl beeld‑zware rapporten bijna exact de grootte van hun ingesloten afbeeldingsbestanden weerspiegelen.</li>
</ul>
</li>
</ul>
<h3 id="b-xlsx-grote-hoeveelheid-numerieke-gegevens--gedeelde-strings">B. XLSX: Grote Hoeveelheid Numerieke Gegevens &amp; Gedeelde Strings</h3>
<p>Spreadsheets vormen een unieke uitdaging: een blad kan honderdduizenden rijen bevatten, wat leidt tot astronomische XML‑bestandsgroottes als dit niet slim wordt aangepakt.</p>
<ul>
<li><strong>De gedeelde strings-strategie (<code>xl/sharedStrings.xml</code>):</strong>
<ul>
<li>Als een tekstlabel zoals &ldquo;United States&rdquo; of &ldquo;In Progress&rdquo; 50,000 keer voorkomt in een spreadsheet, zou het opslaan van <code>&lt;c t=\&quot;inlineStr\&quot;&gt;&lt;is&gt;&lt;t&gt;United States&lt;/t&gt;&lt;/is&gt;&lt;/c&gt;</code> in 50,000 cellen de ongecomprimeerde XML tot gigabytes opblazen.</li>
<li>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. <code>&lt;v&gt;0&lt;/v&gt;</code>, <code>&lt;v&gt;1&lt;/v&gt;</code>).</li>
</ul>
</li>
<li><strong>Waarom XLSX dramatisch comprimeert:</strong>
<ul>
<li>Numerieke rijrecords (<code>sheet1.xml</code>) volgen repetitieve, voorspelbare syntaxis.</li>
<li>DEFLATE detecteert gemakkelijk repetitieve patronen in tabel-XML. Het is gebruikelijk dat een ruwe <code>sheet1.xml</code> van 120 MB krimpt tot minder dan 6 MB binnen een XLSX-archief.</li>
</ul>
</li>
</ul>
<h3 id="c-pptx-media-intensieve-diareeks">C. PPTX: Media-Intensieve Diareeks</h3>
<p>Presentaties zijn fundamenteel anders dan documenten en spreadsheets:</p>
<ul>
<li><strong>Het beelddilemma:</strong> PPTX-bestanden worden doorgaans gedomineerd door vectorvormen, achtergrondafbeeldingen, videoclips en hoge-resolutie dia&rsquo;s.</li>
<li><strong>Compressieprofiel:</strong> Terwijl <code>ppt/slides/slide1.xml</code> tot <code>slideN.xml</code> efficiënt comprimeren, vormt de mediabelasting (<code>ppt/media/</code>) 85% tot 95% van het totale archiefgewicht.</li>
<li><strong>Waarom opnieuw zippen van een PPTX niets verandert:</strong> 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&rsquo;s en MP4&rsquo;s bevat, is de entropie al bijna maximaal.</li>
</ul>
<h3 id="d-epub-webtechnologieën-met-een-verplichte-niet-gecomprimeerde-header">D. EPUB: Webtechnologieën met een Verplichte Niet-gecomprimeerde Header</h3>
<p>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:</p>
<pre tabindex="0"><code>EPUB Internal Structure:
├── mimetype                    &lt;-- MUST be uncompressed (Stored) &amp; at byte offset 38
├── META-INF/
│   └── container.xml           &lt;-- Tells reader where the OPF manifest lives
└── OEBPS/ (or EPUB/)
    ├── content.opf             &lt;-- Manifest of all book assets
    ├── toc.ncx / nav.xhtml     &lt;-- Table of contents navigation
    ├── styles/style.css        &lt;-- CSS formatting
    ├── images/                 &lt;-- Book cover &amp; illustrations
    └── text/                   &lt;-- chapter1.xhtml, chapter2.xhtml
</code></pre><ul>
<li><strong>Het magische <code>mimetype</code>‑bestand:</strong>
<ul>
<li>E‑readers moeten een EPUB onmiddellijk kunnen identificeren zonder het volledige archief uit te pakken of decompressiepijplijnen uit te voeren.</li>
<li>Het Open Container Format (OCF) vereist dat het <code>mimetype</code>‑bestand:
<ol>
<li>Het moet het allereerste bestand in het ZIP‑archief zijn.</li>
<li>Moet exact de tekenreeks <code>application/epb+zip</code> bevatten.</li>
<li><strong>Mag niet gecomprimeerd worden</strong> (ZIP-compressiemethode <code>0</code> / &ldquo;Stored&rdquo;).</li>
<li>Mag geen extra veldgegevens bevatten, zodat de MIME-string altijd begint bij byte 38 van het fysieke bestand.</li>
</ol>
</li>
</ul>
</li>
<li><strong>Tekstcompressie:</strong> Alle overige bestanden (<code>.xhtml</code>, <code>.css</code>, <code>.opf</code>) worden gecomprimeerd met standaard DEFLATE (ZIP-methode <code>8</code>), waardoor volledige romans kunnen krimpen tot enkele honderden kilobytes.</li>
</ul>
<h2 id="4-vergelijken-van-compressie-over-formaten">4. Vergelijken van compressie over formaten</h2>
<table>
<thead>
<tr>
<th style="text-align:left">Formaat</th>
<th style="text-align:left">Kernpayload</th>
<th style="text-align:left">Primaire redundantiebron</th>
<th style="text-align:left">Typische compressieverhouding (tekst/opmaak)</th>
<th style="text-align:left">Media-afhandeling</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>DOCX</strong></td>
<td style="text-align:left">WordprocessingML (<code>document.xml</code>)</td>
<td style="text-align:left">Herhalende XML alinea-/run-tags</td>
<td style="text-align:left">75% – 85%</td>
<td style="text-align:left">Opgeslagen in <code>word/media/</code> (meestal vooraf gecomprimeerd)</td>
</tr>
<tr>
<td style="text-align:left"><strong>XLSX</strong></td>
<td style="text-align:left">SpreadsheetML (<code>sheet*.xml</code>)</td>
<td style="text-align:left">Herhalende cel-/rij-tags; Gedeelde strings</td>
<td style="text-align:left">80% – 92%</td>
<td style="text-align:left">Sporadisch; afbeeldingen/grafieken in <code>xl/media/</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>PPTX</strong></td>
<td style="text-align:left">PresentationML (<code>slide*.xml</code>)</td>
<td style="text-align:left">Dia‑indeling metadata, vormcoördinaten</td>
<td style="text-align:left">70% – 80%</td>
<td style="text-align:left">Zware <code>ppt/media/</code> payload beperkt de totale besparingen</td>
</tr>
<tr>
<td style="text-align:left"><strong>EPUB</strong></td>
<td style="text-align:left">XHTML, CSS, OPF, NCX</td>
<td style="text-align:left">HTML-tags, repetitieve CSS-selectoren</td>
<td style="text-align:left">65% – 80%</td>
<td style="text-align:left"><code>mimetype</code> ongecomprimeerd; media in submappen</td>
</tr>
</tbody>
</table>
<h2 id="5-praktische-leerpunten-hoe-je-je-documenten-optimaliseert">5. Praktische Leerpunten: Hoe je je documenten optimaliseert</h2>
<p>Omdat je nu weet hoe interne verpakking werkt, kun je compressiemechanismen benutten om echte problemen op te lossen:</p>
<ol>
<li><strong>Corrigeren van corrupte documenten:</strong>
Als een document weigert te openen, kun je de extensie wijzigen naar <code>.zip</code> om de inhoud te extraheren en de ruwe tekst te herstellen uit <code>document.xml</code> of individuele hoofdstukken uit de <code>text/</code>-map van de EPUB.</li>
<li><strong>Verkleinen van enorme Office‑bestanden:</strong>
Aangezien XML-compressie al geoptimaliseerd is, worden enorme bestanden bijna altijd veroorzaakt door niet-geoptimaliseerde afbeeldingen in <code>media/</code>. 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.</li>
<li><strong>Documentgeneratie automatiseren:</strong>
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.</li>
</ol>
<h2 id="6-veelgestelde-vragen-faq">6. Veelgestelde Vragen (FAQ)</h2>
<p><strong>Kan ik een DOCX of EPUB naar een ZIP-bestand converteren door alleen de bestandsextensie te hernoemen?</strong> Ja; het hernoemen van de extensie naar <code>.zip</code> maakt het mogelijk dat elk standaard archiefprogramma (zoals 7-Zip, macOS Archive Utility of Windows Verkenner) de interne bestanden direct kan openen en inspecteren.</p>
<p><strong>Waarom maakt het comprimeren van een DOCX of PPTX met 7-Zip het niet merkbaar kleiner?</strong> 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.</p>
<p><strong>Waarom vereist de EPUB-specificatie dat het <code>mimetype</code>-bestand niet gecomprimeerd is?</strong> 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.</p>
<p><strong>Verhoogt het wijzigen van celopmaak in Excel de grootte van het gecomprimeerde XLSX‑bestand?</strong> Ja; uitgebreide aangepaste opmaak onderbreekt de uniforme patroonherhaling tussen cellen, waardoor langere XML‑definities ontstaan die de compressie‑efficiëntie van DEFLATE verminderen.</p>
<p><strong>Is het mogelijk om hoge‑resolutie originele afbeeldingen uit een Word‑ of PowerPoint‑bestand te extraheren zonder kwaliteitsverlies?</strong> Ja; hernoem het bestand naar <code>.zip</code>, open de <code>word/media</code>‑ of <code>ppt/media</code>‑map, en je zult de originele, ongecomprimeerde bronafbeeldingen vinden precies zoals ze zijn ingevoegd.</p>
<h2 id="zie-ook">Zie ook</h2>
<ul>
<li><a href="https://blog.fileformat.com/compression/compression-file-formats-at-fileformat-com/">Compressie bestandsformaten op FileFormat.com</a></li>
<li><a href="https://blog.fileformat.com/compression/zip-bombs-exploding-your-storage/">ZIP-bommen – Uw opslag laten exploderen</a></li>
<li><a href="https://blog.fileformat.com/compression/what-is-7z-file-format-comprehensive-guide-and-faqs/">Begrijpen van 7z-bestandsformaat - Uitgebreide gids en FAQ&rsquo;s</a></li>
<li><a href="https://blog.fileformat.com/compression/how-to-open-rar-files-with-best-rar-openers/">De 7 beste tools om RAR-bestanden te openen of uit te pakken</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
