Comprimir una carpeta entera de PDFs en lote: automatización completa
Comprimir un PDF individualmente es una tarea de un minuto. Comprimir una carpeta con 500 PDFs manualmente sería un trabajo de toda la jornada. La automatización es la única solución viable cuando se trabaja con grandes volúmenes de documentos PDF que necesitan reducción de tamaño. Esta necesidad surge en muchos contextos profesionales: archivar documentos escaneados que se han acumulado durante años, preparar carpetas de facturas para enviarlas a un servicio de contabilidad con límite de tamaño, optimizar los PDFs de un repositorio documental antes de subirlos a un sistema de gestión, o simplificar el backup de carpetas que contienen PDFs de gran tamaño. En esta guía veremos cómo usar Ghostscript para comprimir lotes completos de PDFs desde la línea de comandos, cómo automatizar este proceso con scripts de Python o Bash, cómo configurar el nivel de compresión adecuado para diferentes tipos de contenido, y cómo verificar que los PDFs comprimidos mantienen la calidad necesaria.
Comprimir PDFs en lote con Ghostscript desde la línea de comandos
Ghostscript es el motor estándar para compresión de PDFs y es completamente gratuito. Está disponible para Windows, macOS y Linux. Con un simple bucle de Bash o PowerShell puedes comprimir todos los PDFs de una carpeta.
- 1Instala Ghostscript: en macOS usa 'brew install ghostscript', en Linux 'sudo apt install ghostscript', en Windows descarga desde el sitio oficial.
- 2Abre la terminal y navega a la carpeta que contiene los PDFs.
- 3Ejecuta el bucle de compresión: en macOS/Linux escribe 'for f in *.pdf; do gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sColorConversionStrategy=RGB -sOutputFile="compressed_$f" "$f"; done'.
- 4Verifica que los archivos comprimidos tienen el tamaño esperado con 'ls -lh compressed_*.pdf'.
- 5Si el resultado es correcto, sustituye los originales o guarda ambas versiones según tu política de archivo.
Script Python para compresión inteligente en lote
Un script Python puede hacer la compresión en lote de forma más sofisticada: registrar los resultados, saltar archivos que ya son pequeños, manejar errores individuales sin detener el proceso completo, y generar un informe del ahorro de espacio conseguido. ```python import subprocess import os import glob def comprimir_pdf(entrada, salida, calidad='ebook'): cmd = [ 'gs', '-sDEVICE=pdfwrite', '-dCompatibilityLevel=1.4', f'-dPDFSETTINGS=/{calidad}', '-dNOPAUSE', '-dQUIET', '-dBATCH', '-sColorConversionStrategy=RGB', f'-sOutputFile={salida}', entrada ] result = subprocess.run(cmd, capture_output=True) return result.returncode == 0 carpeta = '/ruta/a/tus/pdfs' total_original = 0 total_comprimido = 0 for pdf_path in glob.glob(f'{carpeta}/*.pdf'): if pdf_path.startswith('compressed_'): continue tamano_original = os.path.getsize(pdf_path) ruta_salida = pdf_path.replace('.pdf', '_comprimido.pdf') if comprimir_pdf(pdf_path, ruta_salida): tamano_nuevo = os.path.getsize(ruta_salida) reduccion = (1 - tamano_nuevo/tamano_original) * 100 print(f'{os.path.basename(pdf_path)}: {tamano_original//1024}KB → {tamano_nuevo//1024}KB ({reduccion:.0f}% reducción)') total_original += tamano_original total_comprimido += tamano_nuevo else: print(f'Error procesando: {pdf_path}') ahorro_total = (1 - total_comprimido/total_original) * 100 if total_original > 0 else 0 print(f'\nTotal: {total_original//1048576}MB → {total_comprimido//1048576}MB ({ahorro_total:.0f}% ahorro total)') ```
Niveles de compresión de Ghostscript: cuál elegir
Ghostscript ofrece cuatro niveles de compresión predefinidos con el parámetro `-dPDFSETTINGS`: `/screen`: máxima compresión, calidad mínima. Las imágenes se comprimen a 72 DPI. Adecuado solo para visualización en pantalla a tamaño pequeño. Reduce el tamaño un 80-95%. `/ebook`: compresión alta con calidad aceptable. Imágenes a 150 DPI. Ideal para documentos que se leerán en pantalla o se enviarán por email. Reduce el tamaño un 60-85%. `/printer`: compresión moderada, alta calidad. Imágenes a 300 DPI. Adecuado para documentos que se van a imprimir. Reduce el tamaño un 20-40%. `/prepress`: mínima compresión, calidad máxima. Para producción editorial o impresión profesional. La reducción es mínima. Para la mayoría de casos de uso corporativo (archivar, enviar por email, subir a plataformas), `/ebook` es el punto óptimo entre calidad y tamaño.
Verificar la calidad de los PDFs comprimidos
Después de comprimir un lote de PDFs, es importante verificar que la calidad del resultado es aceptable antes de descartar los originales. Estas son las estrategias de verificación más eficientes: Verificación manual por muestreo: abre aleatoriamente 5-10% de los PDFs comprimidos y compara visualmente con los originales, especialmente las páginas con imágenes fotográficas y el texto en fuentes pequeñas. Verificación de número de páginas: confirma que cada PDF comprimido tiene el mismo número de páginas que el original. Una discrepancia indica un error en la compresión. Comparación de tamaños: si algún archivo comprimido es más grande que el original, Ghostscript tuvo problemas con ese archivo (puede ocurrir con PDFs que ya están muy optimizados). En ese caso, conserva el original. Herramienta de diff visual: para archivos críticos, herramientas como diff-pdf pueden comparar visualmente dos PDFs página por página e identificar diferencias. Es de código abierto y gratuita.
Preguntas frecuentes
¿Puedo comprimir PDFs en lote sin conocimientos técnicos de línea de comandos?
Para usuarios sin experiencia con la línea de comandos, la opción más sencilla es usar LazyPDF para comprimir los archivos uno a uno (rápido para lotes pequeños de 10-20 archivos), o buscar aplicaciones de escritorio con interfaz gráfica como PDF Compressor (Windows) o PDF Squeezer (macOS) que permiten arrastrar y soltar múltiples archivos para procesarlos en lote sin comandos.
¿Ghostscript en Windows funciona igual que en macOS o Linux?
Sí, Ghostscript es multiplataforma y los comandos son esencialmente idénticos en los tres sistemas operativos. La única diferencia es cómo se instala (Homebrew en macOS, apt en Linux Debian/Ubuntu, instalador .exe en Windows) y la forma de escribir los bucles de automatización (PowerShell o CMD en Windows frente a Bash en macOS/Linux).
¿Cuánto tiempo tarda comprimir 500 PDFs con Ghostscript?
El tiempo depende del tamaño y complejidad de los PDFs. Para PDFs típicos de oficina de 1-5 páginas, Ghostscript procesa aproximadamente 10-20 PDFs por minuto en hardware moderno. Para 500 PDFs, el proceso puede tardar entre 25 y 50 minutos. PDFs con muchas imágenes de alta resolución son más lentos — el mismo hardware puede procesar solo 3-5 por minuto.