Šis ir profesionāls risinājums, lai saspiestu PDF, izmantojot Python. Izmantojiet mūsu PDF optimizācijas API, lai Python izstrādātu augsta līmeņa, no platformas neatkarīgu programmatūru. Izmēģiniet to tiešsaistē bez maksas!
Šī Python bibliotēka nodrošina izstrādātājiem iespēju ātri un efektīvi programmatiski saspiest PDF dokumentus. Viegli sagatavojiet optimizētu PDF izvadi drukāšanai, arhivēšanai vai kopīgošanai tīklā. Tas ir atsevišķs PDF dokumentu apstrādes risinājums Python, kam nav nepieciešama trešās puses programmatūras instalēšana.
Mūsu produkts nodrošina Python izstrādātājus ar integrētu API, lai samazinātu PDF failu lielumu. PDF saspiešana tiek veikta divās piegājienos. Pirmajā piegājienā visas PDF lapas tiek pārveidotas attēla formātā. Mūsu produkts izmanto adaptīvus un ļoti efektīvus attēlu saspiešanas algoritmus, kas ļauj izstrādātājiem iegūt kompaktu PDF izvadi, vienlaikus saglabājot optimālu dokumenta kvalitāti. Nākamajā piegājienā attēlu secība tiek saspiesta un apvienota, lai izveidotu jauna, optimizēta PDF faila saturu.
PDF saspiešana ir atvieglota, izmantojot 'Aspose.Words for Python via .NET'. Šis piemērs parāda, kā samazināt PDF faila lielumu Python:
pip install aspose-words
Kopēt
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)):
# Iestatiet maksimālo lapas izmēru, lai izvairītos no pašreizējās lapas attēla mērogošanas.
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:
# Attēlu saspiešanas bibliotēkas izvēle ir atkarīga no izstrādātāja.
image = Image.open(shape.image_data.to_stream())
# ...
# Saspiediet attēlu un iestatiet to atpakaļ 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:
# Izstrādātājs var izvēlēties attēlu saspiešanas bibliotēku.
image = Image.open(shape.image_data.to_stream())
# ...
# Saspiediet attēlu un iestatiet to atpakaļ 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:
# Attēlu saspiešanas bibliotēkas izvēle ir atkarīga no izstrādātāja.
image = Image.open(shape.image_data.to_stream())
# ...
# Saspiediet attēlu un iestatiet to atpakaļ 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)):
# Iestatiet maksimālo lapas izmēru, lai izvairītos no pašreizējās lapas attēla mērogošanas.
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;
Mēs mitinām Python pakotnes PyPi krātuvēs. Lūdzu, izpildiet detalizētos norādījumus par to, kā izstrādātāja vidē 'Aspose.Words for Python via .NET'.
Šī pakotne ir saderīga ar Python ≥3.5 un <3.12. Ja izstrādājat programmatūru operētājsistēmai Linux, lūdzu, skatiet papildu prasības gcc un libpython sadaļā Produkta dokumentācija.
Varat optimizēt failus daudzos citos failu formātos: