Il s'agit d'une solution professionnelle pour compresser PDF en utilisant Python. Utilisez notre API d'optimisation PDF pour développer des logiciels de haut niveau indépendants de la plate-forme en Python. Essayez-le en ligne gratuitement!
Cette Python bibliothèque offre aux développeurs la possibilité de compresser rapidement et efficacement des PDF documents par programmation. Obtenez facilement une sortie PDF optimisée prête pour l'impression, l'archivage ou le partage sur le réseau. Il s'agit d'une solution autonome de traitement de PDF documents pour Python qui ne nécessite l'installation d'aucun logiciel tiers.
Notre produit fournit aux Python développeurs une API intégrée pour réduire la taille des PDF fichiers. La compression PDF est effectuée en deux passes. Lors du premier passage, toutes les pages du PDF sont converties au format image. Notre produit utilise des algorithmes de compression d'image adaptatifs et hautement efficaces qui permettent aux développeurs d'obtenir une sortie PDF compacte tout en maintenant la qualité optimale du document. Au passage suivant, la séquence d'images est compressée et combinée pour former le contenu d'un nouveau PDF fichier optimisé.
Compression PDF simplifiée avec 'Aspose.Words for Python via .NET'. L'exemple suivant montre comment réduire la taille d'un PDF fichier en Python:
pip install aspose-words
Copie
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)):
# Définissez la taille de page maximale pour éviter la mise à l'échelle de l'image de la page actuelle.
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:
# C'est au développeur de choisir la bibliothèque pour la compression d'image.
image = Image.open(shape.image_data.to_stream())
# ...
# Compressez l'image et remettez-la à la forme.
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:
# C'est au développeur de choisir la bibliothèque pour la compression d'image.
image = Image.open(shape.image_data.to_stream())
# ...
# Compressez l'image et remettez-la à la forme.
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:
# C'est au développeur de choisir la bibliothèque pour la compression d'image.
image = Image.open(shape.image_data.to_stream())
# ...
# Compressez l'image et remettez-la à la forme.
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)):
# Définissez la taille de page maximale pour éviter la mise à l'échelle de l'image de la page actuelle.
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;
Nous hébergeons Python dans des référentiels PyPi. Veuillez suivre les instructions étape par étape sur la façon d'installer "Aspose.Words for Python via .NET" dans votre environnement de développeur.
Ce package est compatible avec Python ≥3.5 et <3.12. Si vous développez des logiciels pour Linux, veuillez consulter les exigences supplémentaires pour gcc et libpython dans Product Documentation.
Vous pouvez optimiser des fichiers dans de nombreux autres formats de fichiers :