الكود المراد ضغطه PDF في Python

مكتبة Python عالية الأداء لتحسين المحتوى والحجم PDF مع الاحتفاظ بالجودة الأصلية وبيانات الأساس

هذا حل احترافي لضغط PDF باستخدام Python. استخدم PDF واجهة برمجة تطبيقات التحسين الخاصة بنا لتطوير برامج عالية المستوى ومستقلة عن النظام الأساسي في Python. جربه على الإنترنت مجانا!

اعرض مقتطف الشفرة

ضغط ملفات PDF في Python

توفر مكتبة Python هذه للمطورين القدرة على ضغط مستندات PDF برمجيًا بسرعة وكفاءة. احصل بسهولة على إخراج PDF محسن جاهز للطباعة أو الأرشفة أو المشاركة عبر الشبكة. إنه حل معالجة مستندات PDF مستقل لجافا سكريبت ولا يتطلب تثبيت أي برنامج تابع لجهة خارجية.

قم بتقليل حجم ملف PDF باستخدام Python

يزود منتجنا مطوري Python بواجهة برمجة تطبيقات متكاملة لتقليل حجم ملفات PDF. يتم تنفيذ ضغط ملفات PDF على مرحلتين. أثناء المرور الأول، يتم تحويل جميع صفحات PDF إلى تنسيق صورة. يستخدم منتجنا خوارزميات ضغط صور قابلة للتكيف وذات كفاءة عالية تسمح للمطورين بالحصول على مخرجات PDF مضغوطة مع الحفاظ على الجودة المثلى للمستند. في التمرير التالي، يتم ضغط تسلسل الصور ودمجها لتشكيل محتوى ملف PDF جديد ومحسّن.

أصبح ضغط ملفات PDF أمرًا سهلاً باستخدام 'Aspose.Words for Python via .NET'. يوضح المثال التالي كيفية تقليل حجم ملف PDF في Python:

مثال رمز في Python لضغط ملفات PDF
قم بتحميل الملف الذي تريد تحسينه / ضغطه
قم بتشغيل الكود
حدد التنسيق الهدف من القائمة
50%
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") # قم بتحديث إعدادات الصفحة لاقتصاص المستند لتناسب حجم الصورة. pageSetup = builder.page_setup pageSetup.page_width = shape.width pageSetup.page_height = shape.height pageSetup.top_margin = 0 pageSetup.left_margin = 0 pageSetup.bottom_margin = 0 pageSetup.right_margin = 0 save_options = aw.saving.ImageSaveOptions(aw.SaveFormat.PDF) doc.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;
قم بتشغيل الكود

كيفية ضغط PDF

  1. ثبّت Aspose.Words for Python via .NET.
  2. أضف مرجع مكتبة (استيراد المكتبة) إلى مشروع Python الخاص بك.
  3. افتح الملف المصدر PDF في Python.
  4. ضغط PDF دون فقدان الجودة.
  5. قم باستدعاء طريقة document_cleanup(). قد يختلف الكود الناتج بناءً على تنسيق ملف الإخراج.
  6. احصل على النتيجة المضغوطة كملف PDF.

مكتبة Python لتحسين وضغط PDF الملفات

نستضيف حزم Python بنا في مستودعات PyPi. يرجى اتباع التعليمات خطوة بخطوة حول كيفية تثبيت "Aspose.Words for Python via .NET" في بيئة المطور لديك.

متطلبات النظام

هذه الحزمة متوافقة مع Python ≥3.5 و <3.12. إذا قمت بتطوير برنامج لنظام التشغيل Linux، فيرجى إلقاء نظرة على المتطلبات الإضافية لدول gcc و libpython في وثائق المنتج.

تحسينات تنسيق الملفات المدعومة الأخرى

يمكنك تحسين الملفات في العديد من تنسيقات الملفات الأخرى:

5%

اشترك في Aspose Product Updates

احصل على رسائل إخبارية وعروض شهرية يتم تسليمها مباشرة إلى صندوق البريد الخاص بك.

© Aspose Pty Ltd 2001-2024. كل الحقوق محفوظة.