این یک راه حل حرفه ای برای فشرده سازی PDF با استفاده از Python است. از API بهینه سازی PDF ما برای توسعه نرم افزار سطح بالا و مستقل از پلت فرم در پایتون استفاده کنید. آن را به صورت آنلاین به صورت رایگان امتحان کنید!
این کتابخانه Python به توسعه دهندگان این امکان را می دهد که اسناد PDF را به سرعت و کارآمد فشرده کنند. به راحتی خروجی PDF بهینه شده را برای چاپ، بایگانی یا اشتراک گذاری از طریق شبکه آماده کنید. این یک راه حل مستقل پردازش اسناد PDF برای Python است که نیازی به نصب نرم افزار شخص ثالث ندارد.
محصول ما به توسعه دهندگان Python یک API یکپارچه برای کاهش اندازه فایل های PDF ارائه می دهد. فشرده سازی PDF در دو پاس انجام می شود. در طی اولین پاس، تمام صفحات PDF به فرمت تصویر تبدیل می شوند. محصول ما از الگوریتمهای فشردهسازی تصویر تطبیقی و بسیار کارآمد استفاده میکند که به توسعهدهندگان اجازه میدهد با حفظ کیفیت مطلوب سند، خروجی فشرده PDF را دریافت کنند. در پاس بعدی، توالی تصاویر فشرده شده و ترکیب می شود تا محتوای یک فایل PDF جدید و بهینه شده را تشکیل دهد.
فشردهسازی PDF با "Aspose.Words برای Python via .NET" آسان شد. مثال زیر نحوه کاهش اندازه یک فایل PDF در Python را نشان می دهد:
pip install aspose-words
کپی 🀄
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)):
# حداکثر اندازه صفحه را تنظیم کنید تا از تغییر مقیاس تصویر صفحه فعلی جلوگیری کنید.
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:
# این به توسعه دهنده بستگی دارد که کتابخانه را برای فشرده سازی تصویر انتخاب کند.
image = Image.open(shape.image_data.to_stream())
# ...
# تصویر را فشرده کنید و آن را به شکل برگردانید.
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:
# این به توسعه دهنده بستگی دارد که کتابخانه را برای فشرده سازی تصویر انتخاب کند.
image = Image.open(shape.image_data.to_stream())
# ...
# تصویر را فشرده کنید و آن را به شکل برگردانید.
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:
# این به توسعه دهنده بستگی دارد که کتابخانه را برای فشرده سازی تصویر انتخاب کند.
image = Image.open(shape.image_data.to_stream())
# ...
# تصویر را فشرده کنید و آن را به شکل برگردانید.
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)):
# حداکثر اندازه صفحه را تنظیم کنید تا از تغییر مقیاس تصویر صفحه فعلی جلوگیری کنید.
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;
ما بسته های Python خود را در مخازن PyPi میزبانی می کنیم. لطفاً دستورالعمل های گام به گام نحوه نصب "Aspose.Words for Python via .NET" در محیط توسعه دهنده خود دنبال کنید.
این بسته با Python ≥3.5 و <3.12 سازگار است. اگر نرمافزاری برای لینوکس توسعه میدهید، لطفاً به الزامات اضافی برای gcc و libpython در مستندات محصول نگاهی بیندازید.
شما می توانید فایل ها را در بسیاری از فرمت های فایل دیگر بهینه سازی کنید: