Comprime un archivo Office
¿El .docx, .xlsx o .pptx con fotos dentro pesa demasiado para el correo o el portal? Aquí se recomprimen solo las imágenes y todo lo demás queda idéntico byte por byte: el texto del documento no puede cambiar. El archivo no sale de tu navegador.
Dónde está el peso, y por qué solo se tocan las imágenes
Un archivo Office moderno (.docx, .xlsx, .pptx) es en realidad un archivo ZIP con muchas partes dentro: el texto, el formato, y las imágenes, que son archivos aparte. Cuando un documento pesa decenas de MB, el peso está casi siempre en las fotos de alta resolución metidas dentro (una foto del móvil pesa más que mil páginas de texto). Aquí solo se recomprimen esas: todo el resto del documento se copia exactamente como estaba, así el texto, las tablas y el formato no pueden romperse.
Por qué no se puede romper
Es la misma idea de Limpia un archivo Office: las partes que no se tocan no se reconstruyen, se copian aún comprimidas, byte por byte. Y las imágenes se recomprimen en su mismo formato (un JPEG sigue JPEG, un PNG sigue PNG): así los nombres de los archivos, los enlaces internos y el mapa de tipos quedan intactos. Cambiar el formato de una imagen sería justo lo que hace aparecer «Word ha detectado un problema».
Qué les pasa a las imágenes
Cada foto se reduce (si es enorme) y se recomprime a una calidad más baja pero aún buena para leer e imprimir. Eliges tú el nivel: «para la pantalla» hace el archivo más ligero, «buena» es el compromiso recomendado, «alta» toca poco. Una regla que no se ve: si recomprimir una imagen no gana nada (ya era ligera, o es un logo pequeño), se deja como estaba, así el archivo nunca empeora.
Cómo se comprueba que es correcto
El archivo producido lo releen los programas que leen Office de verdad (python-docx, openpyxl, python-pptx): el texto debe ser idéntico al de partida, si no algo se ha roto. Además el archivo debe pasar la verificación de integridad (unzip -t), el número de imágenes debe seguir siendo el mismo, y en un archivo con imágenes pesadas el peso debe bajar de verdad. Un archivo que abre pero con el texto cambiado es el peor fallo, y esta prueba lo coge.
Lo que no hace
No toca el texto, el formato, las tablas: solo las imágenes. No decodifica los formatos vectoriales (EMF, WMF, los gráficos dibujados por Office): esos los deja como estaban y lo dice. Si el archivo tiene contraseña quítala antes, con el programa con que se guardó. Para quitar los datos ocultos (autor, revisiones) está Limpia un archivo Office, y para un PDF en vez de un archivo Office está Comprime PDF.