Det här är en professionell lösning för att komprimera PDF med Python. Använd vårt PDF optimerings API för att utveckla plattformsoberoende programvara på hög nivå i Python. Prova det gratis online!
Detta Python bibliotek ger utvecklare möjligheten att snabbt och effektivt komprimera PDF dokument programmatiskt. Få enkelt optimerad PDF utdata redo för utskrift, arkivering eller delning över nätverket. Det är en fristående PDF dokumentbehandlingslösning för Python som inte kräver att någon programvara från tredje part installeras.
Vår produkt förser Python utvecklare med ett integrerat API för att minska storleken på PDF filer. PDF komprimering utförs i två omgångar. Under det första passet konverteras alla sidor i PDF till bildformat. Vår produkt använder adaptiva och mycket effektiva bildkomprimeringsalgoritmer som gör att utvecklare kan få kompakt PDF utdata samtidigt som dokumentets optimala kvalitet bibehålls. Vid nästa pass komprimeras bildsekvensen och kombineras för att bilda innehållet i en ny, optimerad PDF fil.
PDF komprimering på ett enkelt sätt med 'Aspose.Words for Python via .NET'. Följande exempel visar hur du kan minska storleken på en PDF fil i Python:
pip install aspose-words
Kopiera
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)):
# Ställ in maximal sidstorlek för att undvika skalning av den aktuella sidbilden.
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:
# Det är upp till utvecklaren att välja biblioteket för bildkomprimering.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimera bilden och ställ tillbaka den till formen.
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:
# Det är upp till utvecklaren att välja biblioteket för bildkomprimering.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimera bilden och ställ tillbaka den till formen.
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:
# Det är upp till utvecklaren att välja biblioteket för bildkomprimering.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimera bilden och ställ tillbaka den till formen.
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)):
# Ställ in maximal sidstorlek för att undvika skalning av den aktuella sidbilden.
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;
Vi är värd för våra Python paket i PyPi- förråd. Följ steg-för-steg-instruktionerna för hur du installerar "Aspose.Words for Python via .NET" i din utvecklarmiljö.
Detta paket är kompatibelt med Python ≥3.5 och <3.12. Om du utvecklar programvara för Linux, vänligen ta en titt på ytterligare krav för gcc och libpython i produktdokumentation.
Du kan optimera filer i många andra filformat: