Esta es una solución profesional para comprimir PDF usando Python. Utilice nuestra API de optimización PDF para desarrollar software independiente de plataforma de alto nivel en Python. ¡Pruébelo online gratis!
Esta biblioteca de Python brinda a los desarrolladores la capacidad de comprimir PDF documentos de manera rápida y eficiente mediante programación. Obtenga fácilmente una salida PDF optimizada lista para imprimir, archivar o compartir a través de la red. Es una solución independiente de procesamiento de PDF documentos para Python que no requiere la instalación de ningún software de terceros.
Nuestro producto proporciona a los desarrolladores de Python una API integrada para reducir el tamaño de los PDF archivos. La compresión de PDF se realiza en dos pasos. Durante la primera pasada, todas las paginas del PDF se convierten a formato de imagen. Nuestro producto utiliza algoritmos de compresión de imagenes adaptables y altamente eficientes que permiten a los desarrolladores obtener una salida PDF compacta manteniendo la calidad óptima del documento. En la siguiente pasada, la secuencia de imagenes se comprime y combina para formar el contenido de un nuevo PDF archivo optimizado.
Compresión de PDF fácil con 'Aspose.Words for Python via .NET'. El siguiente ejemplo demuestra cómo reducir el tamaño de un PDF archivo en Python:
pip install aspose-words
Copiar
import aspose.words as aw
renderer = aw.pdf2word.fixedformats.PdfFixedRenderer()
pdf_read_options = aw.pdf2word.fixedformats.PdfFixedOptions()
pdf_read_options.image_format = aw.pdf2word.fixedformats.FixedImageFormat.JPEG
pdf_read_options.jpeg_quality = 50
with open ("Input.pdf", 'rb') as pdf_stream:
pages_stream = renderer.save_pdf_as_images(pdf_stream, pdf_read_options);
builder = aw.DocumentBuilder()
for i in range(0, len(pages_stream)):
# Establecer el tamaño máximo de página para evitar la escala de la imagen de la página actual.
max_page_dimension = 1584
page_setup = builder.page_setup
set_page_size(page_setup, max_page_dimension, max_page_dimension)
page_image = builder.insert_image(pages_stream[i])
set_page_size(page_setup, page_image.width, page_image.height)
page_setup.top_margin = 0
page_setup.left_margin = 0
page_setup.bottom_margin = 0
page_setup.right_margin = 0
if i != len(pages_stream) - 1:
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE)
save_options = aw.saving.PdfSaveOptions()
save_options.cache_background_graphics = true
builder.document.save("Output.pdf", save_options)
def set_page_size(page_setup, width, height):
page_setup.page_width = width;
page_setup.page_height = height;
import aspose.words as aw
doc = aw.Document("Input.pdf")
doc.cleanup()
shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)]
for shape in shapes:
if shape.isImage:
# Depende del desarrollador elegir la biblioteca para la compresión de imágenes.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimir imagen y volver a configurarla en la forma.
shape.image_data.set_image("yourCompressedImage")
save_options = aw.saving.PdfSaveOptions
save_options.cache_background_graphics = true
doc.save("Output.pdf", save_options)
import aspose.words as aw
doc = aw.Document("Input.pdf")
doc.cleanup()
shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)]
for shape in shapes:
if shape.isImage:
# Depende del desarrollador elegir la biblioteca para la compresión de imágenes.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimir imagen y volver a configurarla en la forma.
shape.image_data.set_image("yourCompressedImage")
doc.save("Output.pdf")
import aspose.words as aw
doc = aw.Document("Input.pdf")
doc.cleanup()
shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)]
for shape in shapes:
if shape.isImage:
# Depende del desarrollador elegir la biblioteca para la compresión de imágenes.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimir imagen y volver a configurarla en la forma.
shape.image_data.set_image("yourCompressedImage")
save_options = aw.saving.OoxmlSaveOptions
save_options.compression_level = aw.saving.CompressionLevel.MAXIMUM
doc.save("Output.pdf", save_options)
import aspose.words as aw
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.InsertImage("Input.pdf")
save_options = aw.saving.ImageSaveOptions(aw.SaveFormat.PDF)
shape.get_shape_renderer().save("Output.pdf", save_options)
import aspose.words as aw
renderer = aw.pdf2word.fixedformats.PdfFixedRenderer()
pdf_read_options = aw.pdf2word.fixedformats.PdfFixedOptions()
pdf_read_options.image_format = aw.pdf2word.fixedformats.FixedImageFormat.JPEG
pdf_read_options.jpeg_quality = 50
with open ("Input.pdf", 'rb') as pdf_stream:
pages_stream = renderer.save_pdf_as_images(pdf_stream, pdf_read_options);
builder = aw.DocumentBuilder()
for i in range(0, len(pages_stream)):
# Establecer el tamaño máximo de página para evitar la escala de la imagen de la página actual.
max_page_dimension = 1584
page_setup = builder.page_setup
set_page_size(page_setup, max_page_dimension, max_page_dimension)
page_image = builder.insert_image(pages_stream[i])
set_page_size(page_setup, page_image.width, page_image.height)
page_setup.top_margin = 0
page_setup.left_margin = 0
page_setup.bottom_margin = 0
page_setup.right_margin = 0
if i != len(pages_stream) - 1:
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE)
save_options = aw.saving.PdfSaveOptions()
save_options.cache_background_graphics = true
builder.document.save("Output.pdf", save_options)
def set_page_size(page_setup, width, height):
page_setup.page_width = width;
page_setup.page_height = height;
Alojamos nuestros paquetes de Python en repositorios de PyPi. Siga las instrucciones paso a paso sobre cómo instalar "Aspose.Words for Python via .NET" en su entorno de desarrollador.
Este paquete es compatible con Python ≥3.5 y <3.12. Si desarrolla software para Linux, consulte los requisitos adicionales para gcc y libpython en la documentación del producto.
Puede optimizar archivos en muchos otros formatos de archivo: