Cómo comprimir archivos PDF en Python
El método CompressImages de IronPDF permite a los desarrolladores de Python reducir el tamaño de los archivos PDF comprimiendo las imágenes incrustadas con configuraciones de calidad ajustables, ayudando a optimizar el almacenamiento y acelerar el intercambio de documentos sin sacrificar la legibilidad.
Inicio rápido: Comprimir archivos PDF en Python
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/quickstart.py
from ironpdf import PdfDocument
# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import PdfDocument
# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs qualityFlujo de trabajo mínimo (5 pasos)
- Instale la biblioteca Python necesaria para comprimir archivos PDF
- Cargue un documento PDF con
PdfDocument - Llame a
CompressImagescon un entero de calidad (1–100) - Guarde el archivo de tamaño reducido utilizando
SaveAs - Revise la salida en cualquier visor de PDF para confirmar la calidad
Los archivos PDF son ampliamente utilizados para el almacenamiento y compartir de documentos, pero pueden volverse engorrosos en tamaños de archivo grandes. Subir o enviar por correo electrónico un informe de 10 MB es notablemente más lento que compartir un equivalente de 2 MB, y los costos de almacenamiento se acumulan cuando los volúmenes de documentos son altos. La compresión de PDF aborda esto al reducir el tamaño del archivo mientras mantiene el contenido legible.
Esta guía muestra cómo usar IronPDF para comprimir archivos PDF en Python. Los ejemplos de código práctico cubren tanto la compresión de imágenes estándar como la compresión avanzada basada en resolución, por lo que puede elegir el enfoque que se adapte a su pipeline. Ya sea trabajando con conversiones de HTML a PDF o documentos existentes, la misma API de compresión se aplica.
¿Qué es IronPDF y por qué utilizarlo para la compresión de PDF?
IronPDF es una biblioteca de PDF en Python que maneja la creación, lectura, edición y optimización de documentos PDF. Funciona con archivos generados desde cero, convertidos desde HTML o cargados desde el disco. Su API de compresión apunta a imágenes, que son el principal contribuyente a los grandes tamaños de PDF.
El método CompressImages acepta un entero de calidad de 1 a 100 y un booleano opcional que escala las imágenes a su resolución visible. Este diseño de parámetros dobles le permite ajustar la compresión con precisión: un panel de informes de alto tráfico podría usar calidad 70 para mantener las visuales nítidas, mientras que un sistema de archivo interno podría usar calidad 40 para maximizar el ahorro de almacenamiento. La biblioteca maneja toda la codificación internamente, por lo que no se requieren dependencias adicionales.
IronPDF es parte de Iron Suite, que cubre la creación de documentos, procesamiento de códigos de barras, OCR y archivado ZIP, todo desde una instalación compartida de Python. Para los desarrolladores que ya utilizan IronPDF para crear PDFs desde cero, la compresión se inserta como un paso natural antes de guardar o distribuir archivos.
¿Cómo se instala IronPDF en Python?
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/install.sh
:ProductInstall// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
:ProductInstallDespués de la instalación, configure su clave de licencia para ambientes de producción. IronPDF incluye una prueba gratuita de 30 días que cubre todas las características, incluida la compresión, sin necesidad de tarjeta de crédito. La página del paquete en PyPI enumera las notas de la última versión y detalles de dependencias.
¿Cómo se comprimen archivos PDF usando IronPDF?
Pasa un entero de calidad a CompressImages para reducir el tamaño de las imágenes incrustadas en todo el documento. Los enteros más bajos producen archivos más pequeños a costa de la fidelidad de la imagen; los enteros más altos preservan más detalles. El ejemplo a continuación muestra tanto una llamada de compresión estándar como una llamada avanzada que también reduce las imágenes a su tamaño visible.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/compress-basic.py
from ironpdf import PdfDocument
# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")
# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")
# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import PdfDocument
# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")
# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")
# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")¿Qué significan los parámetros de compresión?
CompressImages acepta dos parámetros:
- Calidad (requerido): Un número entero del 1 al 100. Un valor de 100 retiene la calidad original de la imagen sin aplicar compresión. Los valores entre 40 y 80 cubren la mayoría de los casos de uso práctico, siendo 60 un punto de partida común para documentos de propósito general.
- Escalar al tamaño visible (opcional): Un booleano que por defecto es
False. CuandoTrue, cada imagen se re-muestrea para coincidir con sus dimensiones renderizadas en la página. Esto agrega un segundo paso de reducción además de la compresión de calidad, produciendo archivos más pequeños. Tenga en cuenta que las páginas escaladas o impresas a mayor DPI posteriormente pueden mostrar artefactos.
Después de guardar, compare el archivo comprimido con el original en cualquier visor de PDF para confirmar que la calidad cumple con sus requisitos. Para ejemplos adicionales de patrones, vea la página de ejemplos de compresión PDF.
¿Qué aspecto tiene el PDF antes de la compresión?
![]()
¿Cómo se ve el PDF después de la compresión?
![]()
La comparación muestra una reducción de 458 KB a 357 KB (aproximadamente 22%) utilizando calidad 60. Los archivos con una mayor proporción de contenido fotográfico típicamente logran reducciones mayores que los archivos dominados por texto o gráficos vectoriales.
¿Cómo Aplicar Compresión por Lotes a Archivos PDF Múltiples?
Procesar una carpeta de archivos PDF sigue la misma API: itera sobre cada archivo .pdf, cárgalo con PdfDocument, llama a CompressImages, y guarda el resultado. La función a continuación envuelve ese patrón en una utilidad reutilizable.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/batch-compress.py
import os
from ironpdf import PdfDocument
def batch_compress_pdfs(input_folder, output_folder, quality=60):
"""
Compress all PDF files in a folder.
Args:
input_folder: Path to folder containing source PDFs
output_folder: Path where compressed PDFs will be saved
quality: Compression quality (1–100); default is 60
"""
# Create the output folder if it does not exist
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".pdf"):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f"compressed_{filename}")
try:
pdf = PdfDocument(input_path)
pdf.CompressImages(quality)
pdf.SaveAs(output_path)
print(f"Compressed: {filename}")
except Exception as e:
print(f"Error compressing {filename}: {e}")// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
import os
from ironpdf import PdfDocument
def batch_compress_pdfs(input_folder, output_folder, quality=60):
"""
Compress all PDF files in a folder.
Args:
input_folder: Path to folder containing source PDFs
output_folder: Path where compressed PDFs will be saved
quality: Compression quality (1–100); default is 60
"""
# Create the output folder if it does not exist
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".pdf"):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f"compressed_{filename}")
try:
pdf = PdfDocument(input_path)
pdf.CompressImages(quality)
pdf.SaveAs(output_path)
print(f"Compressed: {filename}")
except Exception as e:
print(f"Error compressing {filename}: {e}")El bloque except evita que un solo archivo corrupto o protegido con contraseña detenga todo el lote. Registrar el nombre del archivo junto con el mensaje de excepción facilita identificar qué archivos necesitan revisión manual. Para canales de mayor volumen, considere dividir la carpeta en partes y procesarlas en hilos paralelos.
¿Qué Configuraciones de Calidad Debería Usar para la Compresión de PDF?
La configuración de calidad adecuada depende de cómo se utilizará el PDF después de la compresión. Tres rangos cubren los escenarios más comunes.
Alta calidad (70–90): Los documentos destinados a la impresión o distribución formal se benefician de permanecer en este rango. El texto permanece nítido y los diagramas siguen siendo legibles a resoluciones de impresión estándar. La reducción del tamaño del archivo es modesta, típicamente del 10 al 25%, pero la salida es indistinguible de la fuente para la mayoría de los lectores.
Calidad media (50–70): Este rango se adapta a la entrega web y a los adjuntos de correo electrónico. El contenido fotográfico muestra un ligero suavizado en una inspección cercana, pero la reducción del tamaño del archivo (a menudo del 25 al 50%) mejora significativamente los tiempos de carga y la entrega de correos electrónicos. La mayoría de los sistemas de gestión de documentos y las cargas en portales funcionan bien a calidad 60.
Compresión agresiva (30–50): Archivos de archivo interno, copias de seguridad de almacenamiento a largo plazo y documentos que no se imprimirán pueden usar este rango. A calidad 40, las imágenes son notablemente más suaves, pero el texto renderizado por el motor PDF (en lugar de incrustado como imágenes) permanece completamente claro. Este enfoque también es adecuado para documentos que se convertirán a imágenes y se cambiarán de tamaño antes de mostrarse.
¿Cómo Verificar los Resultados de la Compresión en Python?
Comprobar el tamaño del archivo de salida programáticamente confirma que la compresión alcanzó tu objetivo antes de que el archivo pase al siguiente paso en una tubería. El os.path.getsize incorporado en Python devuelve el conteo de bytes para cualquier ruta de archivo, por lo que la verificación no requiere bibliotecas adicionales.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/verify-compression.py
import os
from ironpdf import PdfDocument
# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")
pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")
compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100
# Report results to confirm compression was effective
print(f"Original: {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction: {reduction_pct:.1f}%")// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
import os
from ironpdf import PdfDocument
# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")
pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")
compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100
# Report results to confirm compression was effective
print(f"Original: {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction: {reduction_pct:.1f}%")La salida da un claro porcentaje de reducción que se puede registrar o verificar contra un umbral. Si la reducción cae por debajo de las expectativas, el documento puede contener pocas o ninguna imagen incrustada. En ese caso, el tamaño del archivo permanecerá prácticamente sin cambios independientemente de la configuración de calidad, ya que CompressImages solo apunta a imágenes rasterizadas. El texto y los gráficos vectoriales no se ven afectados por este método.
¿Cuáles Son los Próximos Pasos para la Compresión de PDF en Python?
El método CompressImages de IronPDF ofrece a los desarrolladores de Python una API única y bien definida para reducir el tamaño de los archivos PDF. Ajuste el parámetro de calidad para equilibrar el ahorro de almacenamiento frente a la fidelidad visual, y agregue el booleano de escalado de resolución para un segundo paso de reducción cuando las dimensiones de salida estén fijas. Para una visión más amplia de lo que maneja IronPDF, consulte la página de visión general de la biblioteca de PDF for Python.
Comience su prueba gratuita para probar la compresión junto con el conjunto completo de funciones de IronPDF, incluyendo conversión de HTML a PDF, firmas digitales, manejo de formularios y fusión de documentos. Cuando termine el período de prueba, vea las opciones de licencia para encontrar el plan que se adapte a su implementación.
¿Listo para ver qué más puede hacer IronPDF? Explore el completo tutorial de PDF for Python para un recorrido por las capacidades principales de IronPDF.
Preguntas Frecuentes
¿Cómo instalo IronPDF para comprimir PDFs en Python?
Ejecuta pip install ironpdf en tu terminal. IronPDF for Python requiere que el SDK de .NET 6.0 esté instalado primero. Después de la instalación, importa PdfDocument del paquete ironpdf para empezar a comprimir PDFs.
¿Cuál es el código básico para comprimir un archivo PDF en Python?
Carga el archivo con PdfDocument("your-file.pdf"), llama a CompressImages(60) con un entero de calidad de 1 a 100, y guarda el resultado usando SaveAs("compressed.pdf"). Ajusta el valor de calidad para equilibrar el tamaño del archivo con la fidelidad de la imagen.
¿Cómo afecta el parámetro de calidad a la compresión de PDF?
El parámetro de calidad CompressImages varía de 1 a 100. Los valores más bajos producen archivos más pequeños con mayor suavizado de imágenes visible. Los valores más altos preservan más detalle a costa de un archivo más grande. Valores entre 40 y 80 cubren la mayoría de los casos prácticos, con 60 como punto de partida común.
¿Puedo pasar un segundo argumento a CompressImages?
Sí. Pasar True como segundo argumento le indica a IronPDF que re-muestree cada imagen a sus dimensiones visibles en la página antes de aplicar la compresión de calidad. Esto añade una segunda pasada de reducción y produce archivos más pequeños, pero las páginas escaladas o impresas a una mayor resolución (DPI) podrían mostrar artefactos.
¿La compresión de PDF afecta el texto y los gráficos vectoriales?
CompressImages se dirige a las imágenes rasterizadas incrustadas en el PDF. El texto renderizado por el motor PDF y los gráficos vectoriales no se ven afectados por este método, por lo que los documentos con poca o ninguna imagen incrustada mostrarán una reducción mínima de tamaño.
¿Cómo verifico la reducción de tamaño de archivo en Python?
Usa os.path.getsize("compressed.pdf") para obtener el conteo de bytes del archivo guardado y compáralo con el original. Dividir la diferencia por el tamaño original da el porcentaje de reducción como un número flotante.
¿Qué rango de calidad es mejor para la entrega en la web?
Un ajuste de calidad entre 50 y 70 es adecuado para la mayoría de los escenarios de entrega web y correo electrónico. Este rango suele reducir el tamaño del archivo entre un 25 y un 50 por ciento mientras mantiene el contenido fotográfico visualmente aceptable para la lectura en pantalla.







