Ini adalah solusi profesional untuk mengompresi PDF menggunakan Python. Gunakan PDF API pengoptimalan kami untuk mengembangkan perangkat lunak tingkat tinggi yang tidak bergantung pada platform dengan Python. Cobalah secara online gratis!
Pustaka Python ini memberi pengembang kemampuan untuk dengan cepat dan efisien mengompresi PDF dokumen secara terprogram. Dapatkan hasil PDF yang dioptimalkan dengan mudah untuk dicetak, diarsipkan, atau dibagikan melalui jaringan. Ini adalah solusi pemrosesan PDF dokumen mandiri untuk Python yang tidak memerlukan perangkat lunak pihak ketiga untuk diinstal.
Produk kami menyediakan pengembang Python dengan API terintegrasi untuk mengurangi ukuran PDF file. Kompresi PDF dilakukan dalam dua lintasan. Selama lintasan pertama, semua halaman PDF dikonversi ke format gambar. Produk kami menggunakan algoritme kompresi gambar adaptif dan sangat efisien yang memungkinkan pengembang mendapatkan keluaran PDF yang ringkas sambil mempertahankan kualitas dokumen yang optimal. Pada langkah berikutnya, urutan gambar dikompresi dan digabungkan untuk membentuk konten PDF file baru yang dioptimalkan.
Kompresi PDF menjadi mudah dengan 'Aspose.Words for Python via .NET'. Contoh berikut menunjukkan cara mengurangi ukuran PDF file 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)):
# Atur ukuran halaman maksimum untuk menghindari penskalaan gambar halaman saat ini.
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:
# Terserah pengembang untuk memilih perpustakaan untuk kompresi gambar.
image = Image.open(shape.image_data.to_stream())
# ...
# Kompres gambar dan atur kembali ke bentuknya.
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:
# Terserah pengembang untuk memilih perpustakaan untuk kompresi gambar.
image = Image.open(shape.image_data.to_stream())
# ...
# Kompres gambar dan atur kembali ke bentuknya.
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:
# Terserah pengembang untuk memilih perpustakaan untuk kompresi gambar.
image = Image.open(shape.image_data.to_stream())
# ...
# Kompres gambar dan atur kembali ke bentuknya.
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)):
# Atur ukuran halaman maksimum untuk menghindari penskalaan gambar halaman saat ini.
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 meng-host paket Python kami di repositori PyPi. Silakan ikuti petunjuk langkah demi langkah tentang cara menginstal "Aspose.Words for Python via .NET" ke lingkungan pengembang Anda.
Paket ini kompatibel dengan Python ≥3.5 dan <3.12. Jika Anda mengembangkan perangkat lunak untuk Linux, silakan lihat persyaratan tambahan untuk gcc dan libpython di Dokumentasi Produk.
Anda dapat mengoptimalkan file dalam banyak format file lainnya: