Aceasta este o soluție profesională pentru a comprima PDF folosind Python. Utilizați API ul nostru de optimizare PDF pentru a dezvolta software de nivel înalt, independent de platformă, în Python. Încercați online gratuit!
Această Python bibliotecă oferă dezvoltatorilor posibilitatea de a comprima rapid și eficient PDF documentele în mod programatic. Pregătiți cu ușurință ieșiri PDF optimizate pentru imprimare, arhivare sau partajare în rețea. Este o soluție autonomă de procesare a PDF documentelor pentru Python, care nu necesită instalarea unui software terță parte.
Produsul nostru oferă dezvoltatorilor Python un API integrat pentru a reduce dimensiunea PDF fișierelor. Comprimarea PDF se realizează în două treceri. În timpul primei treceri, toate paginile PDF ului sunt convertite în format imagine. Produsul nostru folosește algoritmi de comprimare a imaginii adaptabili și extrem de eficienți care permit dezvoltatorilor să obțină rezultate compacte PDF, menținând în același timp calitatea optimă a documentului. La următoarea trecere, secvența de imagini este comprimată și combinată pentru a forma conținutul unui PDF fișier nou, optimizat.
Comprimarea PDF este ușoară cu 'Aspose.Words for Python via .NET'. Următorul exemplu demonstrează cum se reduce dimensiunea unui PDF fișier în 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)):
# Setați dimensiunea maximă a paginii pentru a evita scalarea imaginii paginii curente.
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:
# Depinde de dezvoltator să aleagă biblioteca pentru compresia imaginii.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimați imaginea și setați-o înapoi la formă.
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:
# Depinde de dezvoltator să aleagă biblioteca pentru compresia imaginii.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimați imaginea și setați-o înapoi la formă.
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:
# Depinde de dezvoltator să aleagă biblioteca pentru compresia imaginii.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimați imaginea și setați-o înapoi la formă.
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)):
# Setați dimensiunea maximă a paginii pentru a evita scalarea imaginii paginii curente.
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;
Găzduim pachetele noastre Python în depozitele PyPi. Vă rugăm să urmați instrucțiunile pas cu pas despre cum să instalați "Aspose.Words for Python via .NET" în mediul dumneavoastră de dezvoltator.
Acest pachet este compatibil cu Python ≥3.5 și <3.12. Dacă dezvoltați software pentru Linux, vă rugăm să aruncați o privire la cerințele suplimentare pentru gcc și libpython în documentația produsului.
Puteți optimiza fișiere în multe alte formate de fișiere: