Tai profesionalus sprendimas suspausti PDF naudojant Python. Naudokite mūsų PDF optimizavimo API, kad sukurtumėte aukšto lygio, nuo platformos nepriklausomą programinę įrangą Python. Išbandykite internetu nemokamai!
Ši Python biblioteka suteikia kūrėjams galimybę greitai ir efektyviai programiškai suspausti PDF dokumentus. Lengvai paruoškite optimizuotą PDF išvestį spausdinimui, archyvavimui ar bendrinimui tinkle. Tai atskiras PDF dokumentų apdorojimo sprendimas, skirtas Python, kuriam nereikia įdiegti jokios trečiosios šalies programinės įrangos.
Mūsų produktas suteikia Python kūrėjams integruotą API, kad sumažintų PDF failų dydį. PDF suspaudimas atliekamas dviem važiavimais. Pirmojo praėjimo metu visi PDF puslapiai konvertuojami į vaizdo formatą. Mūsų gaminyje naudojami prisitaikantys ir labai efektyvūs vaizdų glaudinimo algoritmai, leidžiantys kūrėjams gauti kompaktišką PDF išvestį išlaikant optimalią dokumento kokybę. Kitą kartą vaizdų seka suglaudinama ir sujungiama, kad susidarytų naujo optimizuoto PDF failo turinys.
PDF glaudinimas palengvinamas naudojant 'Aspose.Words for Python via .NET'. Šis pavyzdys parodo, kaip sumažinti PDF failo dydį Python:
pip install aspose-words
Kopijuoti
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)):
# Nustatykite maksimalų puslapio dydį, kad išvengtumėte dabartinio puslapio vaizdo mastelio.
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:
# Kūrėjas turi pasirinkti vaizdo glaudinimo biblioteką.
image = Image.open(shape.image_data.to_stream())
# ...
# Suspauskite vaizdą ir nustatykite jį atgal į 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:
# Kūrėjas turi pasirinkti vaizdo glaudinimo biblioteką.
image = Image.open(shape.image_data.to_stream())
# ...
# Suspauskite vaizdą ir nustatykite jį atgal į 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:
# Kūrėjas turi pasirinkti vaizdo glaudinimo biblioteką.
image = Image.open(shape.image_data.to_stream())
# ...
# Suspauskite vaizdą ir nustatykite jį atgal į 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")
# Atnaujinkite puslapio nustatymus, kad apkarpytumėte dokumentą, kad jis atitiktų nuotraukos dydį.
pageSetup = builder.page_setup
pageSetup.page_width = shape.width
pageSetup.page_height = shape.height
pageSetup.top_margin = 0
pageSetup.left_margin = 0
pageSetup.bottom_margin = 0
pageSetup.right_margin = 0
save_options = aw.saving.ImageSaveOptions(aw.SaveFormat.PDF)
doc.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)):
# Nustatykite maksimalų puslapio dydį, kad išvengtumėte dabartinio puslapio vaizdo mastelio.
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;
Python paketus talpiname PyPi saugyklose. Vadovaukitės nuosekliomis instrukcijomis, kaip įdiegti "Aspose.Words for Python via .NET" į kūrėjo aplinką.
Šis paketas suderinamas su Python ≥3.5 ir <3.12. Jei kuriate programinę įrangą, skirtą Linux, peržiūrėkite papildomus gcc ir libpython reikalavimus produkto dokumentacijoje.
Galite optimizuoti daugelio kitų failų formatų failus: