¿Por qué mi PDF apenas ha encogido?
He pasado mi PDF por un compresor y ha ido de 4,1 MB a 4,0 MB. ¿La herramienta está rota?
Un PDF es un archivador
El modelo mental que provoca la decepción es pensar en un PDF como si fuera una imagen de un documento. No lo es. Un PDF, tal como lo define la norma ISO 32000, es un contenedor de objetos numerados: árboles de páginas, flujos de contenido llenos de operadores de dibujo, programas de fuentes incrustados, XObjects de imagen, campos de formulario, anotaciones, marcadores y una tabla de referencias cruzadas que dice dónde empieza cada objeto.
La mayoría de esos objetos ya están comprimidos. Los flujos de contenido suelen ir codificados con Flate, que es el mismo algoritmo que usa un archivo ZIP. Las fotografías incrustadas se guardan normalmente como flujos DCT, que son datos JPEG pasados sin tocar. Así que cuando un compresor de propósito general mira un PDF, está mirando una caja de cosas que ya se han comprimido una vez cada una.
Averigua dónde están los bytes antes de comprimir nada
El diagnóstico más útil, con diferencia, es saber qué tipo de documento tienes, porque predice el resultado casi por completo.
| Tipo de documento | Dónde están los bytes | Qué puede hacer un guardado estructural |
|---|---|---|
| Informe de texto de un procesador de textos | Programas de fuentes incrustados y flujos de contenido pequeños | Muy poco; el contenido ya es denso |
| Páginas escaneadas | Una imagen grande por página | Casi nada sin tocar las imágenes |
| Exportación de una presentación | Fotografías incrustadas y degradados | Algo, si hay imágenes duplicadas entre diapositivas |
| Plano técnico | Flujos de contenido vectorial largos | Algo, recodificando flujos y quitando objetos sin usar |
| Formulario con adjuntos | Archivos incrustados, JavaScript, diccionarios de anotaciones | Mucho, si los extras se pueden quitar |
Qué quita en realidad un guardado estructural
Un guardado estructural reescribe el documento sin cambiar el aspecto de ninguna página. Puede descartar objetos a los que ya no hace referencia nada, que se van acumulando cada vez que un documento se edita y se guarda de forma incremental. Puede comprimir la tabla de referencias cruzadas y empaquetar objetos pequeños en flujos de objetos. Puede descartar los metadatos del documento, las miniaturas y el historial de edición que dejan atrás algunos generadores.
En un documento que se ha editado y vuelto a guardar muchas veces, eso puede suponer una ganancia grande. En un documento exportado limpiamente, una sola vez, desde un procesador de textos, no hay nada que recoger: el archivo ya está cerca de su forma más pequeña, y cien kilobytes de menos sobre cuatro megabytes es exactamente el resultado que cabe esperar.
Por qué se resiste un documento de texto
En un PDF de texto, una parte grande del archivo suele ser fuentes incrustadas. Un programa de fuente es un binario compacto que contiene los contornos de los glifos e instrucciones de hinting, y está ahí porque el documento tiene que representarse igual en una máquina que no tenga instalada esa tipografía. No puedes comprimirlo hasta hacerlo desaparecer sin reducir aún más su subconjunto o sin quitarlo, y quitarlo cambia el aspecto de la página.
El texto en sí es diminuto. Cien páginas de prosa son unos cientos de kilobytes de caracteres antes de comprimir. Si tu PDF de texto es grande, mira las fuentes y cualquier imagen escondida detrás del texto —un logotipo repetido en una cabecera, una marca de agua de fondo— en vez de mirar las palabras.
Por qué un escaneo se desploma
Una página escaneada es una gran fotografía de un trozo de papel, tomada a menudo a 300 puntos por pulgada o más. Una página A4 a 300 DPI son unos 2480 × 3508 píxeles, casi nueve millones, para una página cuyo contenido informativo son unos pocos kilobytes de texto. Por eso los escaneos responden de forma tan espectacular a la compresión rasterizada: reducir la resolución de renderizado y volver a codificar las imágenes de las páginas ataca la parte del archivo que sí es grande.
También es la razón de que ese modo sea destructivo. Una vez que una página es una imagen, la capa de texto buscable, los enlaces, los campos de formulario, las anotaciones, la estructura etiquetada de accesibilidad y cualquier firma digital desaparecen. FileSlimmer trata la rasterización como un modo aparte, claramente etiquetado y con esa advertencia adjunta, en lugar de como un plan B silencioso cuando el guardado estructural decepciona.
Por qué nadie puede prometerte una cifra
Un tamaño objetivo para un PDF es una búsqueda entre la resolución de renderizado y la calidad de imagen, y la búsqueda tiene un suelo: por debajo de cierta resolución, el texto de un escaneo deja de ser legible. Que un documento concreto alcance un presupuesto concreto por encima de ese suelo depende del número de páginas, de la cobertura de tinta, de la cantidad de contenido fotográfico y del ruido del escáner. Dos documentos con el mismo número de páginas pueden acabar con tamaños muy distintos.
El comportamiento honesto es parar en el suelo e informar de dónde ha parado la búsqueda, que es lo que hacen los ajustes preestablecidos de tamaño objetivo para PDF de FileSlimmer. Una herramienta que siempre acierta la cifra que has escrito, o miente sobre esa cifra, o está destruyendo el documento para alcanzarla.
Antes de culpar a la herramienta
- Comprueba si el PDF es un escaneo. Intenta seleccionar una línea de texto: si el cursor no selecciona nada, todas las páginas son imágenes.
- Compara el número de páginas con el tamaño. Un archivo de 40 MB con tres páginas está cargado de imágenes; un archivo de 40 MB con 900 páginas puede ser del todo razonable.
- Comprueba si el documento está cifrado. Un PDF protegido con contraseña no se puede reestructurar en absoluto mientras no se desbloquee.
- Comprueba si está firmado. Reescribir un documento firmado invalida la firma, y eso suele ser peor resultado que un archivo grande.
- Comprueba qué necesitas de verdad. Extraer las seis páginas que tienes que enviar suele ser mejor que comprimir las noventa.
Herramientas para esta tarea
Fuentes
- ISO 32000-2 — Document management, Portable Document Format
- Adobe — PDF 32000-1:2008, the freely published PDF 1.7 specification
- PDF Association — ISO 32000 and the PDF standards family