تحويل PDF إلى تنسيقات صور مختلفة في بايثون

نظرة عامة

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

تنسيق الصورة: TIFF

تنسيق الصورة: BMP

تنسيق الصورة: EMF

تنسيق الصورة: JPG

تنسيق الصورة: PNG

تنسيق الصورة: GIF

تنسيق الصورة: SVG

تحويل PDF إلى صورة باستخدام Python

يستخدم Aspose.PDF for Python عدة طرق لتحويل PDF إلى صورة. بشكل عام، نستخدم نهجين: التحويل باستخدام نهج الجهاز والتحويل باستخدام SaveOption. ستوضح لك هذه القسم كيفية تحويل مستندات PDF إلى تنسيقات الصور مثل BMP وJPEG وGIF وPNG وEMF وTIFF وSVG باستخدام أحد هذه النهج.

هناك عدة فئات في المكتبة تتيح لك استخدام جهاز افتراضي لتحويل الصور. DocumentDevice موجه لتحويل المستند بالكامل، ولكن ImageDevice - لصفحة معينة.

تحويل PDF باستخدام فئة DocumentDevice

Aspose.PDF for Python يجعل من الممكن تحويل صفحات PDF إلى صور TIFF.

تتيح لك فئة TiffDevice (المبنية على DocumentDevice) تحويل صفحات PDF إلى صور TIFF. توفر هذه الفئة طريقة تسمى process والتي تتيح لك تحويل جميع الصفحات في ملف PDF إلى صورة TIFF واحدة.

تحويل صفحات PDF إلى صورة TIFF واحدة

Aspose.PDF لـ Python يشرح كيفية تحويل جميع الصفحات في ملف PDF إلى صورة TIFF واحدة:

الخطوات: تحويل PDF إلى TIFF في Python

  1. إنشاء كائن من فئة Document.

  2. إنشاء كائنات TiffSettings وTiffDevice

  3. قم باستدعاء process لتحويل مستند PDF إلى TIFF.

  4. لتعيين خصائص ملف الإخراج، استخدم فئة TiffSettings.

يظهر مقطع الشيفرة التالي كيفية تحويل جميع صفحات PDF إلى صورة TIFF واحدة.


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_tiff.tiff"
    # افتح مستند PDF
    document = ap.Document(input_pdf)

    # إنشاء كائن Resolution
    resolution = ap.devices.Resolution(300)

    # إنشاء كائن TiffSettings
    tiffSettings = ap.devices.TiffSettings()
    tiffSettings.compression = ap.devices.CompressionType.LZW
    tiffSettings.depth = ap.devices.ColorDepth.DEFAULT
    tiffSettings.skip_blank_pages = False

    # إنشاء جهاز TIFF
    tiffDevice = ap.devices.TiffDevice(resolution, tiffSettings)

    # تحويل صفحة معينة وحفظ الصورة إلى التدفق
    tiffDevice.process(document, output_pdf)

تحويل PDF باستخدام فئة ImageDevice

ImageDevice هو السلف لـ BmpDevice، JpegDevice، GifDevice، PngDevice و EmfDevice.

  • تتيح لك فئة BmpDevice تحويل صفحات PDF إلى صور BMP.

  • تتيح لك فئة EmfDevice تحويل صفحات PDF إلى صور EMF.

  • تتيح لك فئة JpegDevice تحويل صفحات PDF إلى صور JPEG.

  • تتيح لك فئة PngDevice تحويل صفحات PDF إلى صور PNG.

  • تتيح لك فئة GifDevice تحويل صفحات PDF إلى صور GIF.

لنلقِ نظرة على كيفية تحويل صفحة PDF إلى صورة.

توفر فئة BmpDevice طريقة باسم process التي تتيح لك تحويل صفحة معينة من ملف PDF إلى تنسيق صورة BMP. الفئات الأخرى لديها نفس الطريقة. لذا، إذا كنا بحاجة إلى تحويل صفحة PDF إلى صورة، فنحن نقوم بإنشاء نسخة من الفئة المطلوبة.

الخطوات التالية ومقتطف الكود في بايثون يوضح هذه الإمكانية

الخطوات: تحويل PDF إلى صورة (BMP, EMF, JPG, PNG, GIF) في بايثون

  1. قم بتحميل ملف PDF باستخدام فئة Document.
  2. قم بإنشاء مثيل لفئة فرعية من ImageDevice مثل:
  3. قم باستدعاء طريقة ImageDevice.Process() لتنفيذ تحويل PDF إلى صورة.

تحويل PDF إلى BMP


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_bmp"
    # فتح مستند PDF
    document = ap.Document(input_pdf)

    # إنشاء كائن Resolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.BmpDevice(resolution)

    for i in range(0, len(document.pages)):
        # إنشاء ملف للحفظ
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.bmp", 'x'
        )
        # تحويل صفحة معينة وحفظ الصورة إلى التدفق
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

تحويل PDF إلى EMF


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_emf"
    # فتح مستند PDF
    document = ap.Document(input_pdf)

    # إنشاء كائن دقة
    resolution = ap.devices.Resolution(300)
    device = ap.devices.EmfDevice(resolution)

    for i in range(0, len(document.pages)):
        # إنشاء ملف للحفظ
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.emf", 'x'
        )
        # تحويل صفحة معينة وحفظ الصورة إلى التدفق
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

تحويل PDF إلى JPEG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_jpeg"
    # فتح مستند PDF
    document = ap.Document(input_pdf)

    # إنشاء كائن دقة
    resolution = ap.devices.Resolution(300)
    device = ap.devices.JpegDevice(resolution)

    for i in range(0, len(document.pages)):
        # إنشاء ملف للحفظ
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.jpeg", "x"
        )
        # تحويل صفحة معينة وحفظ الصورة إلى التدفق
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()  

تحويل PDF إلى PNG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_png"
    # فتح مستند PDF
    document = ap.Document(input_pdf)

    # إنشاء كائن دقة
    resolution = ap.devices.Resolution(300)
    device = ap.devices.PngDevice(resolution)

    for i in range(0, len(document.pages)):
        # إنشاء ملف للحفظ
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.png", 'x'
        )
        # تحويل صفحة معينة وحفظ الصورة في الدفق
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

تحويل PDF إلى GIF


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_gif"
    # فتح مستند PDF
    document = ap.Document(input_pdf)

    # إنشاء كائن دقة
    resolution = ap.devices.Resolution(300)

    device = ap.devices.GifDevice(resolution)

    for i in range(0, len(document.pages)):
        # إنشاء ملف للحفظ
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.gif", 'x'
        )
        # تحويل صفحة معينة وحفظ الصورة في الدفق
        device.process(document.pages[i + 1], imageStream)
        # إغلاق الدفق
        imageStream.close()  

تحويل PDF باستخدام فئة SaveOptions

يظهر لك هذا الجزء من المقالة كيفية تحويل PDF إلى SVG باستخدام Python وفئة SaveOptions.

Scalable Vector Graphics (SVG) هو عائلة من المواصفات الخاصة بتنسيق الملفات المعتمد على XML للرسومات المتجهية ثنائية الأبعاد، سواء كانت ثابتة أو ديناميكية (تفاعلية أو متحركة). إن مواصفة SVG هي معيار مفتوح تم تطويره من قبل اتحاد شبكة الويب العالمية (W3C) منذ عام 1999.

يتم تعريف صور SVG وسلوكياتها في ملفات نصية XML. هذا يعني أنها يمكن أن تُبحث، تُفهرس، تُبرمج، وإذا لزم الأمر، تُضغط. وكملفات XML، يمكن إنشاء صور SVG وتحريرها باستخدام أي محرر نصوص، ولكن غالبًا ما يكون من الأكثر ملاءمة إنشاؤها باستخدام برامج الرسم مثل Inkscape.

يدعم Aspose.PDF for Python ميزة تحويل صور SVG إلى تنسيق PDF كما يقدم القدرة على تحويل ملفات PDF إلى تنسيق SVG. لتلبية هذا المتطلب، تم إدخال فئة SvgSaveOptions إلى مساحة الأسماء Aspose.PDF. قم بإنشاء كائن من SvgSaveOptions ومرره كمعامل ثانٍ إلى طريقة Document.Save().

يوضح المقتطف البرمجي التالي الخطوات لتحويل ملف PDF إلى تنسيق SVG باستخدام بايثون.

الخطوات: تحويل PDF إلى SVG في بايثون

  1. قم بإنشاء كائن من فئة Document.
  2. قم بإنشاء كائن SvgSaveOptions بالإعدادات المطلوبة.
  3. استدعاء Document.Save() وتمرير كائن SvgSaveOptions لتحويل مستند PDF إلى SVG.

تحويل PDF إلى SVG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_svg.svg"
    # فتح مستند PDF
    document = ap.Document(input_pdf)

    # إنشاء كائن من SvgSaveOptions
    saveOptions = ap.SvgSaveOptions()

    # عدم ضغط صورة SVG إلى أرشيف Zip
    saveOptions.compress_output_to_zip_archive = False
    saveOptions.treat_target_file_name_as_directory = True

    # حفظ المخرجات في ملفات SVG
    document.save(output_pdf, saveOptions)