Questa è una soluzione professionale per comprimere PDF utilizzando Python. Utilizza la nostra PDF API di ottimizzazione per sviluppare software di alto livello indipendente dalla piattaforma in Python. Provalo online gratuitamente!
Questa libreria Python offre agli sviluppatori la possibilità di comprimere i PDF documenti in modo rapido ed efficiente in modo programmatico. Ottieni facilmente output PDF ottimizzato pronto per la stampa, l'archiviazione o la condivisione in rete. È una soluzione di elaborazione di PDF documenti standalone per Python che non richiede l'installazione di software di terze parti.
Il nostro prodotto fornisce agli sviluppatori Python un'API integrata per ridurre le dimensioni dei PDF file. La compressione PDF viene eseguita in due passaggi. Durante il primo passaggio, tutte le pagine del PDF vengono convertite in formato immagine. Il nostro prodotto utilizza algoritmi di compressione delle immagini adattivi e altamente efficienti che consentono agli sviluppatori di ottenere un output PDF compatto mantenendo la qualità ottimale del documento. Al passaggio successivo, la sequenza di immagini viene compressa e combinata per formare il contenuto di un nuovo PDF file ottimizzato.
Compressione PDF semplificata con 'Aspose.Words for Python via .NET'. L'esempio seguente mostra come ridurre le dimensioni di un PDF file in Python:
pip install aspose-words
Copia
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)):
# Imposta la dimensione massima della pagina per evitare il ridimensionamento dell'immagine della pagina corrente.
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:
# Spetta allo sviluppatore scegliere la libreria per la compressione delle immagini.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimi l'immagine e riportala alla 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:
# Spetta allo sviluppatore scegliere la libreria per la compressione delle immagini.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimi l'immagine e riportala alla 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:
# Spetta allo sviluppatore scegliere la libreria per la compressione delle immagini.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimi l'immagine e riportala alla 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)):
# Imposta la dimensione massima della pagina per evitare il ridimensionamento dell'immagine della pagina corrente.
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;
Ospitiamo i nostri pacchetti Python nei repository PyPi. Segui le istruzioni passo passo su come installare "Aspose.Words for Python via .NET" nel tuo ambiente di sviluppo.
Questo pacchetto è compatibile con Python ≥3.5 e <3.12. Se sviluppi software per Linux, dai un'occhiata ai requisiti aggiuntivi per gcc e libpython nella documentazione del prodotto.
Puoi ottimizzare i file in molti altri formati di file: