<?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>Komprese v DOCX on File Format Blog</title>
    <link>https://blog.fileformat.com/cs/tag/komprese-v-docx/</link>
    <description>Recent content in Komprese v DOCX on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>cs</language>
    <lastBuildDate>Thu, 10 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/cs/tag/komprese-v-docx/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Jak funguje komprese uvnitř EPUB, DOCX, XLSX a PPTX?</title>
      <link>https://blog.fileformat.com/cs/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/cs/compression/how-compression-works-inside-epub-docx-xlsx-and-pptx/</guid>
      <description>Už jste se někdy zamysleli, co se skrývá pod kapotou souboru .docx nebo .epub? Prozkoumejte, jak ZIP balení a DEFLATE komprese udržují moderní kancelářské dokumenty a e-knihy lehké a uspořádané.</description>
      <content:encoded><![CDATA[<p><strong>Poslední aktualizace</strong>: 10 září 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="jak-funguje-komprese-uvnitř-epub-docx-xlsx-a-pptx">Jak funguje komprese uvnitř EPUB, DOCX, XLSX a PPTX</h2>
<p>Pokud přejmenujete soubor <code>.docx</code>, <code>.xlsx</code>, <code>.pptx</code> nebo <code>.epub</code> na <code>.zip</code> a dvojkliknete na něj, stane se něco překvapivého: nevygeneruje chybu. Váš operační systém jej otevře jako složku plnou podadresářů, konfiguračních souborů XML, stylových listů, fontů a vložených obrázků.</p>
<p>Moderní architektury dokumentů opustily monolitické binární bloky před desítkami let. Na jejich místo přišly průmyslové standardy — konkrétně <strong>Open Packaging Conventions (OPC)</strong> pro Microsoft Office a <strong>Open Container Format (OCF)</strong> pro EPUB — které přijaly překvapivě elegantní základ: skromný <strong>ZIP archiv</strong>.</p>
<p>Pochopení toho, jak komprese funguje uvnitř těchto formátů, odhaluje, proč jsou moderní dokumenty tak odolné, lehké a rozšiřitelné — a proč některé soubory se komprimují o 90 %, zatímco jiné téměř vůbec nesestoupí.</p>
<h2 id="1-architektura-kontejneru-maskované-balíčky-zip9">1. Architektura kontejneru: maskované balíčky <a href="https://docs.fileformat.com/compression/zip/">ZIP</a></h2>
<p>Než pochopíme samotný kompresní algoritmus, pomůže pochopit, proč jsou moderní formáty dokumentů strukturovány jako balíčky místo samostatných surových souborů.</p>
<h3 id="problém-se-starými-binárními-formáty">Problém se starými binárními formáty</h3>
<p>V průběhu 90. let a počátku 2000. let Microsoft Office používal proprietární binární formáty (<code>.doc</code>, <code>.xls</code>, <code>.ppt</code>). Tyto soubory byly v podstatě výpisy paměti strukturované kolem formátu Compound File Binary Format (CFBF). Byly notoricky křehké:</p>
<ul>
<li>Jedno překlopení bitu mohlo poškodit celou strukturu souboru.</li>
<li>Vkládání obrázků způsobovalo nepředvídatelný nárůst velikosti souboru.</li>
<li>Parsování vyžadovalo reverzní inženýrství hustých binárních specifikací.</li>
<li>Meziplatformní interoperabilita byla noční můrou.</li>
</ul>
<h3 id="přechod-na-otevřené-modulární-kontejnery">Přechod na otevřené, modulární kontejnery</h3>
<p>V polovině 2000. let proběhly dvě paralelní evoluce:</p>
<ol>
<li><strong>Office Open XML (OOXML / ISO/IEC 29500):</strong> Microsoft představil formáty založené na XML končící na <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>). Vnitřně tyto soubory používají <strong>Open Packaging Conventions (OPC)</strong>.</li>
<li><strong><a href="https://docs.fileformat.com/ebook/epub/">EPUB</a> (IDPF / W3C):</strong> Digitální publikování se odklonilo od proprietárních formátů čteček směrem k standardním webovým technologiím (HTML, CSS, SVG) zabaleným v <strong>EPUB Open Container Format (OCF)</strong>.</li>
</ol>
<p>Obě architektury se opírají o standardní <strong>PKZIP 2.0 / ZIP specifikaci</strong>. Přípona souboru jednoduše určuje očekávané schéma, výchozí aplikaci pro prohlížení a deklarace mime‑type.</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-motor-pod-kapotou-algoritmus-deflate">2. Motor pod kapotou: algoritmus DEFLATE</h2>
<p>Když softwarová aplikace uloží soubor DOCX nebo EPUB, neukládá soubory jen do nekomprimovaného archivu. Komprimuje vnitřní součásti pomocí <strong>DEFLATE</strong> (specifikováno v RFC 1951).</p>
<p>DEFLATE je dvoustupňový bezztrátový kompresní systém kombinující dva základní algoritmy informatiky:</p>
<h3 id="krok-1-lz77-lempel-ziv-1977--odstranění-redundance-pomocí-posuvného-okna">Krok 1: LZ77 (Lempel-Ziv 1977) — Odstranění redundance pomocí posuvného okna</h3>
<p>XML a HTML jsou extrémně verbózní. Zvažte, jak často se značky objevují ve standardním souboru <code>document.xml</code> nebo <code>chapter1.xhtml</code>:</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> se v aplikaci Word opakuje tisíckrát.</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> se opakuje v Excelu napříč desítkami tisíc buněk.</li>
<li><code>&lt;p class=&quot;calibre1&quot;&gt;&lt;span class=&quot;body-text&quot;&gt;</code> se opakuje napříč kapitolami knihy EPUB.</li>
</ul>
<p>LZ77 prohledává datový proud pomocí posuvného slovníkového okna (obvykle 32 KB). Když narazí na řetězec znaků, který nedávno viděl, nahradí duplicitní text malým zpětným ukazatelem:</p>
<ul>
<li><code>(distance, length)</code> — např. „vrátit se o 142 bajtů, zkopírovat 28 bajtů“.</li>
</ul>
<p>Místo opakovaného ukládání rozsáhlého značkování LZ77 sloučí tisíce opakujících se XML značek do kompaktních souřadnicových odkazů.</p>
<h3 id="krok-2-huffmanovo-kódování--kódování-frekvence-proměnné-délky">Krok 2: Huffmanovo kódování — Kódování frekvence proměnné délky</h3>
<p>Po tom, co LZ77 nahradí nadbytečné sekvence tokeny délka‑vzdálenost, <strong>Huffmanovo kódování</strong> analyzuje četnost každého symbolu v proudu:</p>
<ul>
<li>Často se vyskytující symboly (jako běžné znaky <code>e</code>, <code>t</code>, mezery nebo běžné značky vzdálenosti) jsou přiřazeny krátké binární kódy (např. 2 až 4 bity).</li>
<li>Zřídka používané symboly dostávají delší binární kódy (např. 12 až 16 bitů).</li>
</ul>
<p>Výsledek je proud proměnlivé délky bitových kódů, které stlačují prostý text XML o <strong>75 % až 88 %</strong>.</p>
<h2 id="3-rozbor-formát-po-formátu-jak-každý-zvládá-kompresi">3. Rozbor formát po formátu: Jak každý zvládá kompresi</h2>
<p>Zatímco DOCX, XLSX, PPTX a EPUB všechny používají stejný ZIP obal, jejich vnitřní datové charakteristiky se výrazně liší.</p>
<h3 id="a-docx-vyvažování-textu-a-stylování">A. DOCX: Vyvažování textu a stylování</h3>
<ul>
<li><strong>Co je uvnitř:</strong> Plain XML (<code>word/document.xml</code>), tabulky fontů, styly, katalogy vztahů a složka <code>word/media/</code>.</li>
<li><strong>Jak funguje komprese:</strong>
<ul>
<li>Surový text a XML značkování dosahují obrovských kompresních poměrů (často klesají z 5 MB surového XML na 500 KB).</li>
<li>Moderní dokumenty však často obsahují snímky obrazovky, ilustrace a fotografie. Protože soubory JPEG a PNG jsou <strong>již komprimované</strong>, DEFLATE je nemůže dále zmenšit. Ve skutečnosti aplikace DEFLATE na již komprimovaný obrázek přináší prakticky 0 % úsporu (a může dokonce mírně zvýšit velikost kvůli kompresním hlavičkám).</li>
<li>V důsledku toho jsou soubory DOCX bez obrázků výjimečně malé, zatímco zprávy s mnoha obrázky mají téměř stejnou velikost jako jejich obsažené soubory obrázků.</li>
</ul>
</li>
</ul>
<h3 id="b-xlsx-vysokokapacitní-číselná-data-a-sdílené-řetězce">B. XLSX: Vysokokapacitní číselná data a sdílené řetězce</h3>
<p>Tabulky představují jedinečnou výzvu: list může obsahovat stovky tisíc řádků, což vede k astronomickým velikostem XML souborů, pokud se s nimi nepracuje chytře.</p>
<ul>
<li><strong>Strategie sdílených řetězců (<code>xl/sharedStrings.xml</code>):</strong>
<ul>
<li>Pokud se textová značka jako &ldquo;United States&rdquo; nebo &ldquo;In Progress&rdquo; objeví 50 000krát v tabulce, uložení <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> do 50 000 buněk by nafoukl nekomprimované XML na gigabajty.</li>
<li>Excel před kompresí odstraňuje duplicitní text tím, že každou jedinečnou řetězec uloží jednou do tabulky sdílených řetězců a odkazuje na něj pomocí číselného indexu (např. <code>&lt;v&gt;0&lt;/v&gt;</code>, <code>&lt;v&gt;1&lt;/v&gt;</code>).</li>
</ul>
</li>
<li><strong>Proč se XLSX dramaticky komprimuje:</strong>
<ul>
<li>Číselné řádkové záznamy (<code>sheet1.xml</code>) mají opakující se, předvídatelnou syntaxi.</li>
<li>DEFLATE snadno detekuje opakující se vzory v tabulkovém XML. Je běžné, že surový soubor <code>sheet1.xml</code> o velikosti 120 MB se zmenší na méně než 6 MB uvnitř archivu XLSX.</li>
</ul>
</li>
</ul>
<h3 id="c-pptx-mediálně-náročné-prezentace">C. PPTX: Mediálně náročné prezentace</h3>
<p>Prezentace jsou zásadně odlišné od dokumentů a tabulek:</p>
<ul>
<li><strong>Obrázková dilema:</strong> Soubory PPTX jsou typicky ovládány vektorovými tvary, pozadími, video klipy a snímky ve vysokém rozlišení.</li>
<li><strong>Profil komprese:</strong> While <code>ppt/slides/slide1.xml</code> through <code>slideN.xml</code> compress efficiently, the media payload (<code>ppt/media/</code>) accounts for 85% to 95% of the total archive weight.</li>
<li><strong>Proč opětovné zipování PPTX nic nezmění:</strong> If you try to compress an already-saved PPTX file with 7-Zip or WinRAR, you will notice almost no size reduction. Because the interior is already a DEFLATE-compressed ZIP archive containing pre-compressed JPEGs and MP4s, the entropy is already near maximum.</li>
</ul>
<h3 id="d-epub-webové-technologie-s-povinnou-nekomprimovanou-hlavičkou">D. EPUB: Webové technologie s povinnou nekomprimovanou hlavičkou</h3>
<p>Soubor EPUB je v podstatě responzivní, zabalená mikrowebová stránka obsahující kapitoly v XHTML, styly v CSS, písma TTF/WOFF a metadata. Nicméně EPUB má jedno přísné pravidlo balení, které jej odlišuje od souborů Microsoft Office:</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>Magický soubor <code>mimetype</code>:</strong>
<ul>
<li>E‑čtečky musí EPUB okamžitě identifikovat, aniž by musely rozbalovat celý archiv nebo spouštět dekompresní pipeline.</li>
<li>Formát Open Container (OCF) vyžaduje, aby soubor <code>mimetype</code>:
<ol>
<li>Musel být první soubor v ZIP archivu.</li>
<li>Musí obsahovat přesně řetězec <code>application/epub+zip</code>.</li>
<li><strong>Nesmí být komprimováno</strong> (ZIP compression method <code>0</code> / &ldquo;Uloženo&rdquo;).</li>
<li>Nesmí obsahovat žádná další data pole, aby řetězec MIME vždy začínal na bajtu 38 fyzického souboru.</li>
</ol>
</li>
</ul>
</li>
<li><strong>Komprese textu:</strong> Všechny zbývající soubory (<code>.xhtml</code>, <code>.css</code>, <code>.opf</code>) jsou komprimovány pomocí standardního DEFLATE (ZIP method <code>8</code>), což umožňuje, aby se celé romány zmenšily na několik stovek kilobajtů.</li>
</ul>
<h2 id="4-porovnání-komprese-napříč-formáty">4. Porovnání komprese napříč formáty</h2>
<table>
<thead>
<tr>
<th style="text-align:left">Formát</th>
<th style="text-align:left">Jádrový náklad</th>
<th style="text-align:left">Primární zdroj redundance</th>
<th style="text-align:left">Typický poměr komprese (text/markup)</th>
<th style="text-align:left">Zpracování médií</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">Opakující se XML značky odstavců/úseků</td>
<td style="text-align:left">75% – 85%</td>
<td style="text-align:left">Uloženo v <code>word/media/</code> (většinou předkomprimováno)</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">Opakující se značky buněk/řádků; sdílené řetězce</td>
<td style="text-align:left">80% – 92%</td>
<td style="text-align:left">Řídké; obrázky/grafy v <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">Metadata rozložení snímků, souřadnice tvarů</td>
<td style="text-align:left">70% – 80%</td>
<td style="text-align:left">Těžký <code>ppt/media/</code> payload omezuje celkové úspory</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 značky, opakující se CSS selektory</td>
<td style="text-align:left">65% – 80%</td>
<td style="text-align:left"><code>mimetype</code> nekomprimovaný; média v podsložkách</td>
</tr>
</tbody>
</table>
<h2 id="5-praktické-poznatky-jak-optimalizovat-své-dokumenty">5. Praktické poznatky: Jak optimalizovat své dokumenty</h2>
<p>Protože nyní víte, jak funguje interní balení, můžete využít kompresní mechanismy k řešení reálných problémů:</p>
<ol>
<li><strong>Oprava poškozených dokumentů:</strong>
Pokud se dokument odmítá otevřít, změna přípony na <code>.zip</code> vám umožní rozbalit obsah a obnovit surový text z <code>document.xml</code> nebo jednotlivé kapitoly z adresáře <code>text/</code> EPUBu.</li>
<li><strong>Zmenšení obrovských Office souborů:</strong>
Protože komprese XML je již optimalizovaná, obrovské soubory jsou téměř vždy způsobeny neoptimalizovanými obrázky ve složce <code>media/</code>. Místo používání třetích stran PDF nebo DOCX kompresorů otevřete kontejner ZIP, extrahujte obrázky, projděte je optimalizátorem obrázků (např. WebP, TinyPNG nebo MozJPEG) a nahraďte je v archivu.</li>
<li><strong>Automatizace generování dokumentů:</strong>
Vývojáři nepotřebují těžké kancelářské balíky k vytváření zpráv. Můžete generovat surové XML šablony, zabalit je pomocí standardních knihoven zlib/ZIP a programově během milisekund vytvořit platné soubory DOCX nebo XLSX.</li>
</ol>
<h2 id="6-často-kladené-otázky-faq">6. Často kladené otázky (FAQ)</h2>
<p><strong>Mohu převést DOCX nebo EPUB na soubor ZIP pouhým přejmenováním přípony souboru?</strong> Ano; přejmenování přípony na <code>.zip</code> umožní jakémukoli standardnímu archivnímu nástroji (např. 7-Zip, macOS Archive Utility nebo Windows Explorer) otevřít a přímo prozkoumat vnitřní soubory.</p>
<p><strong>Proč komprese DOCX nebo PPTX pomocí 7-Zip nevede k výrazně menší velikosti?</strong> Protože soubor je již interně komprimovaný ZIP archiv, který obsahuje XML kódované DEFLATE a předkomprimované obrázky, takže zůstává jen minimální nadbytek, který by externí nástroj mohl odstranit.</p>
<p><strong>Proč specifikace EPUB vyžaduje, aby soubor <code>mimetype</code> byl nekomprimovaný?</strong> Umožňuje to softwaru pro čtečky e-knih ověřit, že soubor je autentický EPUB, kontrolou řetězce MIME na pevně daném offsetu bajtu, aniž by bylo nutné spouštět dekompresní engine.</p>
<p><strong>Zvyšuje změna formátování buněk v Excelu velikost komprimovaného souboru XLSX?</strong> Ano; rozsáhlé vlastní formátování narušuje jednotné opakování vzorů napříč buňkami, což vytváří delší definice XML a snižuje efektivitu komprese DEFLATE.</p>
<p><strong>Je možné extrahovat vysoce rozlišené originální obrázky ze souboru Word nebo PowerPoint bez ztráty kvality?</strong> Ano; přejmenujte soubor na <code>.zip</code>, otevřete složku <code>word/media</code> nebo <code>ppt/media</code> a najdete originální, nekomprimované zdrojové obrázky přesně tak, jak byly vloženy.</p>
<h2 id="viz-také">Viz také</h2>
<ul>
<li><a href="https://blog.fileformat.com/compression/compression-file-formats-at-fileformat-com/">Formáty souborů komprese na FileFormat.com</a></li>
<li><a href="https://blog.fileformat.com/compression/zip-bombs-exploding-your-storage/">ZIP bomby – výbuch vašeho úložiště</a></li>
<li><a href="https://blog.fileformat.com/compression/what-is-7z-file-format-comprehensive-guide-and-faqs/">Porozumění formátu souboru 7z – komplexní průvodce a časté dotazy</a></li>
<li><a href="https://blog.fileformat.com/compression/how-to-open-rar-files-with-best-rar-openers/">7 nejlepších nástrojů pro otevření nebo extrakci souborů RAR</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
