To je profesionalna rešitev za stiskanje PDF s Python. Uporabite naš API za optimizacijo PDF za razvoj programske opreme na visoki ravni, neodvisne od platforme v Pythonu. Preizkusite na spletu brezplačno!
Ta knjižnica Python razvijalcem omogoča hitro in učinkovito programsko stiskanje PDF dokumentov. Preprosto pripravite optimiziran izpis PDF, pripravljen za tiskanje, arhiviranje ali skupno rabo prek omrežja. Je samostojna rešitev za obdelavo PDF dokumentov za Python, ki ne zahteva namestitve programske opreme tretjih oseb.
Naš izdelek razvijalcem Python zagotavlja integriran API za zmanjšanje velikosti PDF datotek. Stiskanje PDF poteka v dveh prehodih. Med prvim prehodom se vse strani PDF ja pretvorijo v slikovni format. Naš izdelek uporablja prilagodljive in zelo učinkovite algoritme stiskanja slik, ki razvijalcem omogočajo kompakten izhod PDF, hkrati pa ohranjajo optimalno kakovost dokumenta. Pri naslednjem prehodu se zaporedje slik stisne in združi v vsebino nove, optimizirane PDF datoteke.
Stiskanje PDF jev je preprosto z 'Aspose.Words for Python via .NET'. Naslednji primer prikazuje, kako zmanjšati velikost PDF datoteke v 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)):
# Nastavite največjo velikost strani, da se izognete spreminjanju velikosti slike trenutne strani.
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:
# Razvijalec mora izbrati knjižnico za stiskanje slik.
image = Image.open(shape.image_data.to_stream())
# ...
# Stisnite sliko in jo nastavite nazaj v obliko.
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:
# Razvijalec mora izbrati knjižnico za stiskanje slik.
image = Image.open(shape.image_data.to_stream())
# ...
# Stisnite sliko in jo nastavite nazaj v obliko.
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:
# Razvijalec mora izbrati knjižnico za stiskanje slik.
image = Image.open(shape.image_data.to_stream())
# ...
# Stisnite sliko in jo nastavite nazaj v obliko.
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)):
# Nastavite največjo velikost strani, da se izognete spreminjanju velikosti slike trenutne strani.
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;
Ta paket je združljiv s Python ≥3.5 in <3.12. Če razvijate programsko opremo za Linux, si oglejte dodatne zahteve za gcc in libpython v dokumentaciji izdelka.
Datoteke lahko optimizirate v številnih drugih oblikah datotek: