Última actualización: 10 de septiembre de 2026

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

Cómo funciona la compresión dentro de EPUB, DOCX, XLSX y PPTX

Si renombras un archivo .docx, .xlsx, .pptx o .epub a .zip y haces doble clic, ocurre algo sorprendente: no muestra un error. Tu sistema operativo lo abre como una carpeta llena de subdirectorios, archivos de configuración XML, hojas de estilo, fuentes e imágenes incrustadas.

Las arquitecturas de documentos modernos abandonaron los bloques binarios monolíticos hace décadas. En su lugar, los estándares de la industria —en concreto Open Packaging Conventions (OPC) para Microsoft Office y el Open Container Format (OCF) para EPUB— adoptaron una base sorprendentemente elegante: el humilde archivo ZIP.

Comprender cómo funciona la compresión dentro de estos formatos revela por qué los documentos modernos son tan resilientes, livianos y extensibles —y por qué algunos archivos se comprimen hasta un 90 % mientras que otros apenas se reducen.

1. La arquitectura del contenedor: paquetes ZIP disfrazados

Antes de entender el algoritmo de compresión en sí, es útil comprender por qué los formatos de documentos modernos están estructurados como paquetes en lugar de archivos crudos independientes.

El problema con los formatos binarios heredados

Durante la década de 1990 y principios de los 2000, Microsoft Office utilizó formatos binarios propietarios (.doc, .xls, .ppt). Estos archivos eran esencialmente volcados de memoria estructurados alrededor del Compound File Binary Format (CFBF). Eran notoriamente frágiles:

  • Un solo cambio de bit podía corromper toda la estructura del archivo.
  • Incrustar imágenes provocaba que el tamaño de los archivos se inflara de manera impredecible.
  • El análisis requería ingeniería inversa de especificaciones binarias densas.
  • La interoperabilidad multiplataforma era una pesadilla.

El cambio a contenedores abiertos y modulares

A mediados de la década de 2000, se produjeron dos evoluciones paralelas:

  1. Office Open XML (OOXML / ISO/IEC 29500): Microsoft introdujo los formatos basados en XML que terminan con una x (DOCX, XLSX, PPTX). En su interior, estos archivos siguen las Open Packaging Conventions (OPC).
  2. EPUB (IDPF / W3C): La publicación digital se alejó de los formatos propietarios de lectores hacia tecnologías web estándar (HTML, CSS, SVG) empaquetadas dentro del EPUB Open Container Format (OCF).

Ambas arquitecturas se basan en la especificación PKZIP 2.0 / ZIP estándar. La extensión del archivo simplemente determina el esquema esperado, la aplicación visor predeterminada y las declaraciones 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

2. El motor bajo el capó: el algoritmo DEFLATE

Cuando una aplicación de software guarda un archivo DOCX o EPUB, no solo almacena los archivos en un archivo sin comprimir. Comprime los recursos internos usando DEFLATE (especificado en RFC 1951).

DEFLATE es un sistema de compresión sin pérdida de dos niveles que combina dos algoritmos fundamentales de la informática:

Paso 1: LZ77 (Lempel-Ziv 1977) — Eliminación de redundancia con ventana deslizante

XML y HTML son extremadamente verbosos. Considera cuántas veces aparecen las etiquetas en un archivo estándar document.xml o chapter1.xhtml:

  • <w:p><w:r><w:rPr><w:sz w:val=\"24\"/></w:rPr><w:t> se repite miles de veces en Word.
  • row r="1" spans="1:15"><c r="A1" t="s"><v> se repite en Excel en decenas de miles de celdas.
  • <p class="calibre1"><span class="body-text"> se repite a través de los capítulos de libros EPUB.

LZ77 escanea el flujo de datos usando una ventana de diccionario deslizante (normalmente 32 KB). Cuando encuentra una cadena de caracteres que ha visto recientemente, reemplaza el texto duplicado con un pequeño puntero hacia atrás:

  • (distance, length) — p. ej., “retroceder 142 bytes, copiar 28 bytes”.

En lugar de almacenar marcas verbosas una y otra vez, LZ77 colapsa miles de etiquetas XML repetitivas en referencias de coordenadas compactas.

Paso 2: Codificación Huffman — Codificación de frecuencia de longitud variable

Después de que LZ77 reemplaza secuencias redundantes con tokens de longitud-distancia, codificación Huffman analiza la frecuencia de cada símbolo en el flujo:

  • Los símbolos que aparecen con frecuencia (como los caracteres comunes e, t, espacios, o marcadores de distancia comunes) se asignan códigos binarios cortos (p. ej., de 2 a 4 bits).
  • Los símbolos de uso raro reciben códigos binarios más largos (p. ej., de 12 a 16 bits).

El resultado es una secuencia de códigos de bits de longitud variable que comprimen el XML de texto plano en un 75% a 88%.

3. Desglose formato por formato: cómo cada uno maneja la compresión

Aunque DOCX, XLSX, PPTX y EPUB utilizan el mismo contenedor ZIP, sus características internas de datos difieren enormemente.

A. DOCX: El acto de equilibrar texto y estilo

  • Qué hay dentro: XML plano (word/document.xml), tablas de fuentes, estilos, catálogos de relaciones y una carpeta word/media/.
  • Cómo funciona la compresión:
    • El texto sin formato y el marcado XML experimentan ratios de compresión masivos (a menudo reduciéndose de 5 MB de XML sin procesar a 500 KB).
    • Sin embargo, los documentos modernos a menudo incluyen capturas de pantalla, ilustraciones y fotos. Debido a que los archivos JPEG y PNG están ya comprimidos, DEFLATE no puede reducirlos más. De hecho, aplicar DEFLATE sobre una imagen ya comprimida produce prácticamente un ahorro del 0 % (e incluso puede aumentar ligeramente el tamaño debido a los encabezados de compresión).
    • En consecuencia, los archivos DOCX sin imágenes son excepcionalmente pequeños, mientras que los informes con muchas imágenes reflejan casi el tamaño exacto de los archivos de imagen que contienen.

B. XLSX: Datos Numéricos de Alto Volumen y Cadenas Compartidas

Las hojas de cálculo presentan un desafío único: una hoja puede contener cientos de miles de filas, lo que conduce a tamaños de archivo XML astronómicos si no se manejan de manera inteligente.

  • La estrategia de cadenas compartidas (xl/sharedStrings.xml):
    • Si una etiqueta de texto como “United States” o “In Progress” aparece 50,000 veces en una hoja de cálculo, almacenar <c t="inlineStr"><is><t>United States</t></is></c> en 50,000 celdas inflaría el XML sin comprimir a gigabytes.
    • Excel elimina duplicados de texto antes de la compresión almacenando cada cadena única una vez en una tabla de cadenas compartidas y referenciándola por índice numérico (p. ej., <v>0</v>, <v>1</v>).
  • Por qué XLSX se comprime drásticamente:
    • Los registros de filas numéricas (sheet1.xml) siguen una sintaxis repetitiva y predecible.
    • DEFLATE detecta fácilmente patrones repetitivos en XML tabular. Es común que un archivo sheet1.xml sin procesar de 120 MB se reduzca a menos de 6 MB dentro de un archivo XLSX.

C. PPTX: Presentaciones con Mucha Media

Las presentaciones son fundamentalmente diferentes de los documentos y las hojas de cálculo:

  • El dilema de la imagen: Los archivos PPTX suelen estar dominados por formas vectoriales, gráficos de fondo, clips de video y diapositivas de alta resolución.
  • Perfil de compresión: Mientras ppt/slides/slide1.xml hasta slideN.xml se comprimen eficientemente, la carga de medios (ppt/media/) representa del 85% al 95% del peso total del archivo.
  • Por qué volver a comprimir un PPTX no cambia nada: Si intentas comprimir un archivo PPTX ya guardado con 7-Zip o WinRAR, notarás casi ninguna reducción de tamaño. Porque el interior ya es un archivo ZIP comprimido con DEFLATE que contiene JPEG y MP4 precomprimidos, la entropía ya está cerca del máximo.

D. EPUB: Tecnologías Web con un Encabezado No Comprimido Obligatorio

Un archivo EPUB es esencialmente un micro‑sitio web empaquetado y adaptable que contiene capítulos XHTML, hojas de estilo CSS, fuentes TTF/WOFF y metadatos. Sin embargo, EPUB tiene una regla de empaquetado estricta que lo diferencia de los archivos de 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
  • El mágico archivo mimetype:
    • Los lectores electrónicos necesitan identificar un EPUB de inmediato sin extraer todo el archivo o ejecutar tuberías de descompresión.
    • El Formato de Contenedor Abierto (OCF) exige que el archivo mimetype:
      1. Debe ser el primer archivo en el archivo ZIP.
      2. Debe contener exactamente la cadena application/epub+zip.
      3. No debe comprimirse (método de compresión ZIP 0 / “Stored”).
      4. No debe contener datos de campo extra, garantizando que la cadena MIME siempre comience en el byte 38 del archivo físico.
  • Compresión de texto: Todos los archivos restantes (.xhtml, .css, .opf) se comprimen usando DEFLATE estándar (método ZIP 8), lo que permite que novelas de longitud completa se reduzcan a unos pocos cientos de kilobytes.

4. Comparación de Compresión entre Formatos

FormatoCarga útil centralFuente principal de redundanciaRelación de compresión típica (Texto/Marcado)Gestión de medios
DOCXWordprocessingML (document.xml)Etiquetas XML repetitivas de párrafo/ejecución75% – 85%Almacenado en word/media/ (principalmente precomprimido)
XLSXSpreadsheetML (sheet*.xml)Etiquetas repetitivas de celda/fila; Cadenas compartidas80% – 92%Escaso; imágenes/gráficos en xl/media/
PPTXPresentationML (slide*.xml)Metadatos de diseño de diapositivas, coordenadas de formas70% – 80%Carga pesada ppt/media/ limita el ahorro total
EPUBXHTML, CSS, OPF, NCXEtiquetas HTML, selectores CSS repetitivos65% – 80%mimetype sin comprimir; medios en subcarpetas

5. Conclusiones Prácticas: Cómo Optimizar tus Documentos

Porque ahora sabes cómo funciona el empaquetado interno, puedes aprovechar la mecánica de compresión para resolver problemas del mundo real:

  1. Corrección de documentos corruptos: Si un documento se niega a abrirse, cambiar la extensión a .zip te permite extraer el contenido y recuperar el texto sin formato de document.xml o capítulos individuales del directorio text/ del EPUB.
  2. Reducción de archivos de Office gigantes: Dado que la compresión XML ya está optimizada, los archivos gigantes casi siempre son causados por imágenes no optimizadas en media/. En lugar de usar compresores de PDF o DOCX de terceros, abra el contenedor ZIP, extraiga las imágenes, páselas por un optimizador de imágenes (como WebP, TinyPNG o MozJPEG) y reemplácelas dentro del archivo.
  3. Automatización de la generación de documentos: Los desarrolladores no necesitan suites de oficina pesadas para crear informes. Puede generar plantillas XML sin procesar, empaquetarlas usando bibliotecas estándar zlib/ZIP y generar archivos DOCX o XLSX válidos de forma programática en milisegundos.

6. Preguntas Frecuentes (FAQ)

¿Puedo convertir un DOCX o EPUB a un archivo ZIP simplemente cambiando la extensión del archivo? Sí; cambiar la extensión a .zip permite que cualquier herramienta de archivo estándar (como 7-Zip, macOS Archive Utility o Windows Explorer) abra e inspeccione los archivos internos directamente.

¿Por qué comprimir un DOCX o PPTX con 7-Zip no lo hace notablemente más pequeño? Porque el archivo ya es un archivo ZIP comprimido internamente que contiene XML codificado con DEFLATE e imágenes precomprimidas, dejando una redundancia mínima para que una herramienta externa la elimine.

¿Por qué la especificación EPUB requiere que el archivo mimetype esté sin comprimir? Permite que el software de lectores electrónicos verifique que el archivo es un EPUB auténtico al comprobar la cadena MIME en una posición de byte fija sin necesidad de iniciar un motor de descompresión.

¿Cambiar el formato de celdas en Excel aumenta el tamaño del archivo XLSX comprimido? Sí; el formato personalizado extenso rompe la repetición uniforme de patrones entre celdas, creando definiciones XML más largas que reducen la eficiencia de compresión de DEFLATE.

¿Es posible extraer imágenes originales de alta resolución de un archivo Word o PowerPoint sin pérdida de calidad? Sí; renombra el archivo a .zip, abre la carpeta word/media o ppt/media, y encontrarás las imágenes fuente originales, sin comprimir, exactamente como fueron insertadas.

Ver también