Ini ialah penyelesaian profesional untuk memampatkan PDF menggunakan Python. Gunakan API pengoptimuman PDF kami untuk membangunkan perisian bebas platform peringkat tinggi dalam Python. Cuba dalam talian secara percuma!
Pustaka Python ini menyediakan pembangun dengan keupayaan untuk memampatkan PDF dokumen secara cepat dan cekap secara pemrograman. Dapatkan output PDF yang dioptimumkan dengan mudah untuk dicetak, diarkibkan atau perkongsian melalui rangkaian. Ia adalah penyelesaian pemprosesan PDF dokumen kendiri untuk Python yang tidak memerlukan sebarang perisian pihak ketiga untuk dipasang.
Produk kami menyediakan pembangun Python dengan API bersepadu untuk mengurangkan saiz PDF fail. Pemampatan PDF dilakukan dalam dua laluan. Semasa pas pertama, semua halaman PDF ditukar kepada format imej. Produk kami menggunakan algoritma pemampatan imej yang adaptif dan sangat cekap yang membolehkan pembangun mendapatkan output PDF padat sambil mengekalkan kualiti optimum dokumen. Pada laluan seterusnya, jujukan imej dimampatkan dan digabungkan untuk membentuk kandungan PDF fail baharu yang dioptimumkan.
Pemampatan PDF dipermudahkan dengan 'Aspose.Words for Python via .NET'. Contoh berikut menunjukkan cara mengurangkan saiz PDF fail dalam Python:
pip install aspose-words
Salinan
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)):
# Tetapkan saiz halaman maksimum untuk mengelakkan penskalaan imej halaman semasa.
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:
# Terpulang kepada pembangun untuk memilih perpustakaan untuk pemampatan imej.
image = Image.open(shape.image_data.to_stream())
# ...
# Mampatkan imej dan tetapkannya semula kepada bentuk.
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:
# Terpulang kepada pembangun untuk memilih perpustakaan untuk pemampatan imej.
image = Image.open(shape.image_data.to_stream())
# ...
# Mampatkan imej dan tetapkannya semula kepada bentuk.
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:
# Terpulang kepada pembangun untuk memilih perpustakaan untuk pemampatan imej.
image = Image.open(shape.image_data.to_stream())
# ...
# Mampatkan imej dan tetapkannya semula kepada bentuk.
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)):
# Tetapkan saiz halaman maksimum untuk mengelakkan penskalaan imej halaman semasa.
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;
Kami menjadi tuan rumah pakej Python kami dalam repositori PyPi. Sila ikut arahan langkah demi langkah tentang cara memasang "Aspose.Words for Python via .NET" ke persekitaran pembangun anda.
Pakej ini serasi dengan Python ≥3.5 dan <3.12. Jika anda membangunkan perisian untuk Linux, sila lihat keperluan tambahan untuk gcc dan libpython dalam Dokumentasi Produk.
Anda boleh mengoptimumkan fail dalam banyak format fail lain: