Ovo je profesionalno rješenje za komprimiranje PDF pomoću Python. Upotrijebite naš PDF API za optimizaciju za razvoj softvera visoke razine, neovisnog o platformi u Pythonu. Isprobajte online besplatno!
Ova Python biblioteka pruža programerima mogućnost brzog i učinkovitog programskog komprimiranja PDF dokumenata. Jednostavno pripremite optimizirani PDF izlaz spreman za ispis, arhiviranje ili dijeljenje putem mreže. To je samostalno rješenje za obradu PDF dokumenata za Python koje ne zahtijeva instaliranje softvera treće strane.
Naš proizvod omogućuje Python programerima integrirani API za smanjenje veličine PDF datoteka. PDF kompresija se izvodi u dva prolaza. Tijekom prvog prolaza, sve stranice PDF a se pretvaraju u slikovni format. Naš proizvod koristi prilagodljive i vrlo učinkovite algoritme kompresije slike koji programerima omogućuju kompaktan PDF izlaz uz zadržavanje optimalne kvalitete dokumenta. Na sljedećem prolazu, slijed slika se komprimira i kombinira kako bi se formirao sadržaj nove, optimizirane PDF datoteke.
Kompresija PDF a pojednostavljena uz 'Aspose.Words for Python via .NET'. Sljedeći primjer pokazuje kako smanjiti veličinu PDF datoteke u Python:
pip install aspose-words
Kopirati
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)):
# Postavite maksimalnu veličinu stranice kako biste izbjegli skaliranje slike trenutne stranice.
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:
# Na programeru je da odabere biblioteku za kompresiju slike.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimirajte sliku i vratite je u oblik.
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:
# Na programeru je da odabere biblioteku za kompresiju slika.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimirajte sliku i vratite je u oblik.
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:
# Na programeru je da odabere biblioteku za kompresiju slike.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimirajte sliku i vratite je u oblik.
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)):
# Postavite maksimalnu veličinu stranice kako biste izbjegli skaliranje slike trenutne stranice.
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 Python pakete hostiramo u PyPi repozitorijumima. Slijedite upute korak po korak o tome kako instalirati "Aspose.Words for Python via .NET" u svoje razvojno okruženje.
Ovaj paket je kompatibilan s Python ≥3.5 i <3.12. Ako razvijate softver za Linux, pogledajte dodatne zahtjeve za gcc i libpython u dokumentaciji proizvoda.
Možete optimizirati datoteke u mnogim drugim formatima datoteka: