Última Atualização: 10 de setembro de 2026

How Compression Works Inside EPUB, DOCX, XLSX, & PPTX: The Hidden ZIP Architecture

Como a Compressão Funciona Dentro de EPUB, DOCX, XLSX e PPTX

Se você renomear um arquivo .docx, .xlsx, .pptx ou .epub para .zip e der um duplo clique nele, algo surpreendente acontece: ele não gera um erro. Seu sistema operacional o abre como uma pasta repleta de subdiretórios, arquivos de configuração XML, folhas de estilo, fontes e imagens incorporadas.

As arquiteturas de documentos modernos abandonaram blobs binários monolíticos há décadas. Em seu lugar, padrões da indústria — nomeadamente Open Packaging Conventions (OPC) para Microsoft Office e Open Container Format (OCF) para EPUB — adotaram uma base surpreendentemente elegante: o humilde arquivo ZIP.

Entender como a compressão opera dentro desses formatos revela por que os documentos modernos são tão resilientes, leves e extensíveis — e por que alguns arquivos são comprimidos em até 90% enquanto outros mal diminuem.

1. A Arquitetura de Contêineres: Pacotes Disfarçados ZIP

Antes de compreender o algoritmo de compressão em si, é útil entender por que os formatos de documentos modernos são estruturados como pacotes em vez de arquivos brutos independentes.

2. O Problema com Formatos Binários Legados

Ao longo da década de 1990 e início dos anos 2000, o Microsoft Office utilizava formatos binários proprietários (.doc, .xls, .ppt). Esses arquivos eram essencialmente despejos de memória estruturados em torno do Compound File Binary Format (CFBF). Eles eram notoriamente frágeis:

  • Uma única inversão de bit poderia corromper toda a estrutura do arquivo.
  • Incorporar imagens fazia com que o tamanho dos arquivos aumentasse de forma imprevisível.
  • A análise exigia engenharia reversa de especificações binárias densas.
  • A interoperabilidade entre plataformas era um pesadelo.

3. A Mudança para Contêineres Abertos e Modulares

Em meados dos anos 2000, duas evoluções paralelas ocorreram:

  1. Office Open XML (OOXML / ISO/IEC 29500): A Microsoft introduziu os formatos baseados em XML que terminam com um x (DOCX, XLSX, PPTX). Nos bastidores, esses arquivos seguem as Open Packaging Conventions (OPC).
  2. EPUB (IDPF / W3C): A publicação digital afastou‑se dos formatos proprietários de leitores em direção às tecnologias web padrão (HTML, CSS, SVG) agrupadas dentro do EPUB Open Container Format (OCF).

Ambas as arquiteturas dependem da PKZIP 2.0 / especificação ZIP padrão. A extensão do arquivo simplesmente determina o esquema esperado, o aplicativo visualizador padrão e as declarações de tipo MIME.

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

4. O Motor Por Trás: O Algoritmo DEFLATE

Quando um aplicativo de software salva um arquivo DOCX ou EPUB, ele não apenas armazena os arquivos em um arquivo não compactado. Ele compacta os recursos internos usando DEFLATE (especificado no RFC 1951).

DEFLATE é um sistema de compressão sem perdas de dois níveis que combina dois algoritmos fundamentais da ciência da computação:

Etapa 1: LZ77 (Lempel-Ziv 1977) — Remoção de Redundância por Janela Deslizante

XML e HTML são extremamente verbosos. Considere com que frequência as tags aparecem em um arquivo padrão document.xml ou chapter1.xhtml:

  • <w:p><w:r><w:rPr><w:sz w:val="24"/></w:rPr><w:t> se repete milhares de vezes no Word.
  • row r="1" spans="1:15"><c r="A1" t="s"><v> repete no Excel em dezenas de milhares de células.
  • <p class="calibre1"><span class="body-text"> repete ao longo dos capítulos de livros EPUB.

O LZ77 varre o fluxo de dados usando uma janela de dicionário deslizante (tipicamente 32 KB). Quando encontra uma sequência de caracteres que viu recentemente, substitui o texto duplicado por um pequeno ponteiro retroativo:

  • (distance, length) — por exemplo, “voltar 142 bytes, copiar 28 bytes”.

Em vez de armazenar marcação verbosa repetidamente, o LZ77 colapsa milhares de tags XML repetitivas em referências coordenadas compactas.

Etapa 2: Codificação Huffman — Codificação de Frequência de Comprimento Variável

Depois que o LZ77 substitui sequências redundantes por tokens de comprimento‑distância, a codificação Huffman analisa a frequência de cada símbolo no fluxo:

  • Símbolos que aparecem com frequência (como caracteres comuns e, t, espaços ou marcadores de distância comuns) recebem códigos binários curtos (por exemplo, de 2 a 4 bits).
  • Símbolos raramente usados recebem códigos binários mais longos (por exemplo, de 12 a 16 bits).

O resultado é um fluxo de códigos de bits de comprimento variável que comprimem o XML em texto simples em 75% a 88%.

3. Análise Formato por Formato: Como Cada Um Lida com a Compressão

Embora DOCX, XLSX, PPTX e EPUB usem todos o mesmo envelope ZIP, as características internas dos dados diferem drasticamente.

A. DOCX: O Equilíbrio entre Texto e Estilo

  • O que há dentro: XML simples (word/document.xml), tabelas de fontes, estilos, catálogos de relacionamentos e uma pasta word/media/.
  • Como a compressão funciona:
    • O texto bruto e a marcação XML apresentam taxas de compressão massivas (frequentemente reduzindo de 5 MB de XML bruto para 500 KB).
    • No entanto, documentos modernos frequentemente incorporam capturas de tela, ilustrações e fotos. Como os arquivos JPEG e PNG são já comprimidos, o DEFLATE não pode reduzi-los ainda mais. Na verdade, aplicar DEFLATE sobre uma imagem já comprimida gera praticamente 0% de economia (e pode até aumentar ligeiramente o tamanho devido aos cabeçalhos de compressão).
    • Consequentemente, arquivos DOCX sem imagens são excepcionalmente pequenos, enquanto relatórios com muitas imagens refletem quase o tamanho exato dos arquivos de imagem contidos.

B. XLSX: Dados Numéricos de Alto Volume e Strings Compartilhadas

Planilhas apresentam um desafio único: uma planilha pode conter centenas de milhares de linhas, levando a tamanhos de arquivo XML astronômicos se não forem tratadas de forma inteligente.

  • A Estratégia de Strings Compartilhadas (xl/sharedStrings.xml):
    • Se um rótulo de texto como “United States” ou “In Progress” aparecer 50.000 vezes em uma planilha, armazenar <c t="inlineStr"><is><t>United States</t></is></c> em 50.000 células inflaria o XML não compactado para gigabytes.
    • O Excel elimina duplicatas de texto antes da compactação armazenando cada string única uma vez em uma tabela de strings compartilhadas e referenciando-a por índice numérico (por exemplo, <v>0</v>, <v>1</v>).
  • Por que o XLSX comprime drasticamente:
    • Registros de linhas numéricas (sheet1.xml) seguem sintaxe repetitiva e previsível.
    • O DEFLATE detecta facilmente padrões repetitivos em XML tabular. É comum que um arquivo bruto sheet1.xml de 120 MB diminua para menos de 6 MB dentro de um arquivo XLSX.

C. PPTX: Conjuntos de Slides com Mídia Pesada

Apresentações são fundamentalmente diferentes de documentos e planilhas:

  • O Dilema das Imagens: Arquivos PPTX são tipicamente dominados por formas vetoriais, gráficos de fundo, clipes de vídeo e slides de alta resolução.
  • Perfil de Compressão: Enquanto ppt/slides/slide1.xml até slideN.xml comprimem eficientemente, a carga de mídia (ppt/media/) representa de 85% a 95% do peso total do arquivo.
  • Por que Recompactar um PPTX Não Muda Nada: Se você tentar comprimir um arquivo PPTX já salvo com 7‑Zip ou WinRAR, notará quase nenhuma redução de tamanho. Porque o interior já é um arquivo ZIP comprimido com DEFLATE contendo JPEGs e MP4s pré‑compactados, a entropia já está quase no máximo.

D. EPUB: Tecnologias Web com um Cabeçalho Não Compactado Obrigatório

Um arquivo EPUB é essencialmente um micro‑site responsivo e empacotado contendo capítulos XHTML, folhas de estilo CSS, fontes TTF/WOFF e metadados. No entanto, o EPUB tem uma regra de empacotamento estrita que o diferencia dos arquivos do Microsoft Office:

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
  • O Arquivo Mágico mimetype:
    • Os leitores de e‑book precisam identificar um EPUB imediatamente sem extrair todo o arquivo ou executar pipelines de descompressão.
    • O Formato de Contêiner Aberto (OCF) exige que o arquivo mimetype:
      1. Deve ser o primeiro arquivo no arquivo ZIP.
      2. Deve conter exatamente a string application/epub+zip.
      3. Não deve ser comprimido (método de compressão ZIP 0 / “Armazenado”).
      4. Não deve conter dados de campo extras, garantindo que a string MIME sempre comece no byte 38 do arquivo físico.
  • Compressão de Texto: Todos os arquivos restantes (.xhtml, .css, .opf) são comprimidos usando o padrão DEFLATE (método ZIP 8), permitindo que romances de comprimento total sejam reduzidos a algumas centenas de kilobytes.

4. Comparando Compressão Entre Formatos

FormatoCarga PrincipalFonte Primária de RedundânciaTaxa de Compressão Típica (Texto/Marcação)Manipulação de Mídia
DOCXWordprocessingML (document.xml)Tags XML repetitivas de parágrafo/execução75% – 85%Armazenado em word/media/ (principalmente pré-comprimido)
XLSXSpreadsheetML (sheet*.xml)Tags repetitivas de célula/linha; Strings compartilhadas80% – 92%Escasso; imagens/gráficos em xl/media/
PPTXPresentationML (slide*.xml)Metadados de layout de slide, coordenadas de forma70% – 80%Carga pesada ppt/media/ limita a economia total
EPUBXHTML, CSS, OPF, NCXtags HTML, seletores CSS repetitivos65% – 80%mimetype descompactado; mídia em subpastas

5. Lições Práticas: Como Otimizar Seus Documentos

Porque agora você sabe como o empacotamento interno funciona, pode aproveitar a mecânica de compressão para resolver problemas do mundo real:

  1. Corrigindo Documentos Corrompidos: Se um documento se recusar a abrir, mudar a extensão para .zip permite extrair o conteúdo e recuperar o texto bruto de document.xml ou capítulos individuais do diretório text/ do EPUB.
  2. Reduzindo Arquivos Office Gigantes: Como a compressão XML já está otimizada, arquivos gigantes são quase sempre causados por imagens não otimizadas em media/. Em vez de usar compressores de PDF ou DOCX de terceiros, abra o contêiner ZIP, extraia as imagens, passe-as por um otimizador de imagens (como WebP, TinyPNG ou MozJPEG) e substitua-as dentro do arquivo.
  3. Automatizando a Geração de Documentos: Os desenvolvedores não precisam de suítes de escritório pesadas para criar relatórios. Você pode gerar modelos XML brutos, empacotá-los usando bibliotecas padrão zlib/ZIP e gerar arquivos DOCX ou XLSX válidos programaticamente em milissegundos.

6. Perguntas Frequentes (FAQ)

Posso converter um DOCX ou EPUB para um arquivo ZIP apenas renomeando a extensão do arquivo? Sim; renomear a extensão para .zip permite que qualquer ferramenta de arquivamento padrão (como 7-Zip, Utilitário de Arquivo do macOS ou Explorador do Windows) abra e inspecione os arquivos internos diretamente.

Por que comprimir um DOCX ou PPTX com 7-Zip não o torna visivelmente menor? Porque o arquivo já é um arquivo ZIP comprimido internamente contendo XML codificado em DEFLATE e imagens pré-comprimidas, deixando pouca redundância para que uma ferramenta externa remova.

Por que a especificação EPUB exige que o arquivo mimetype seja descompactado? Ela permite que o software de leitura verifique se o arquivo é um EPUB autêntico ao checar a string MIME em um deslocamento de byte fixo sem precisar iniciar um motor de descompressão.

Alterar a formatação de células no Excel aumenta o tamanho do arquivo XLSX compactado? Sim; formatação personalizada extensiva interrompe a repetição uniforme de padrões entre as células, criando definições XML mais longas que reduzem a eficiência de compressão do DEFLATE.

É possível extrair imagens originais em alta resolução de um arquivo Word ou PowerPoint sem perda de qualidade? Sim; renomeie o arquivo para .zip, abra a pasta word/media ou ppt/media, e você encontrará as imagens-fonte originais, descompactadas, exatamente como foram inseridas.

Veja também