Toto je profesionálne riešenie na kompresiu PDF pomocou Python. Použite naše rozhranie API na optimalizáciu PDF na vývoj softvéru na vysokej úrovni, ktorý je nezávislý od platformy v jazyku Python. Vyskúšajte to online zadarmo!
Táto knižnica Python poskytuje vývojárom možnosť rýchlo a efektívne programovo komprimovať PDF dokumenty. Jednoducho získajte optimalizovaný výstup PDF pripravený na tlač, archiváciu alebo zdieľanie cez sieť. Je to samostatné riešenie na spracovanie PDF dokumentov pre Python, ktoré nevyžaduje inštaláciu softvéru tretích strán.
Náš produkt poskytuje vývojárom Python integrované rozhranie API na zníženie veľkosti PDF súborov. Kompresia PDF sa vykonáva v dvoch prechodoch. Počas prvého prechodu sa všetky strany PDF skonvertujú do obrazového formátu. Náš produkt využíva adaptívne a vysoko efektívne algoritmy kompresie obrázkov, ktoré umožňujú vývojárom získať kompaktný výstup PDF pri zachovaní optimálnej kvality dokumentu. Pri ďalšom prechode sa sekvencia obrázkov skomprimuje a skombinuje tak, aby vytvoril obsah nového optimalizovaného PDF súboru.
Kompresia PDF je jednoduchá vďaka 'Aspose.Words for Python via .NET'. Nasledujúci príklad ukazuje, ako zmenšiť veľkosť PDF súboru v Python:
pip install aspose-words
Kopírovať
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)):
# Nastavte maximálnu veľkosť strany, aby ste sa vyhli zmene mierky aktuálnej strany.
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:
# Je na vývojárovi, aby si vybral knižnicu pre kompresiu obrázkov.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimujte obrázok a nastavte ho späť do tvaru.
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:
# Je na vývojárovi, aby si vybral knižnicu na kompresiu obrázkov.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimujte obrázok a nastavte ho späť do tvaru.
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:
# Je na vývojárovi, aby si vybral knižnicu pre kompresiu obrázkov.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimujte obrázok a nastavte ho späť do tvaru.
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)):
# Nastavte maximálnu veľkosť strany, aby ste sa vyhli zmene mierky aktuálnej strany.
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;
Naše balíčky Python hostíme v úložiskách PyPi. Postupujte podľa podrobných pokynov, ako nainštalovať "Aspose.Words for Python via .NET" do vášho vývojárskeho prostredia.
Tento balík je kompatibilný s Python ≥3.5 a <3.12. Ak vyvíjate softvér pre Linux, pozrite si ďalšie požiadavky pre gcc a libpython v dokumentácii k produktu.
Môžete optimalizovať súbory v mnohých iných formátoch súborov: