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

نظرة عامة

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

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

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

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

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

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

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

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

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

يستخدم 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 لبايثون يشرح كيفية تحويل جميع الصفحات في ملف PDF إلى صورة TIFF واحدة:

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

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

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

  3. استدعاء طريقة TiffDevice.Process() لتحويل مستند PDF إلى TIFF.

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

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


from asposepdf import Api, Device

# تهيئة الترخيص
documentName = "testdata/license/Aspose.PDF.PythonviaJava.lic"
licenseObject = Api.License()
licenseObject.setLicense(documentName)

# فتح مستند PDF
DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_image = DIR_OUTPUT + "image.tiff"
# فتح مستند PDF
document = Api.Document(input_pdf)
# إنشاء كائن دقة
resolution = Device.Resolution(300)

# إنشاء كائن إعدادات TIFF
tiffSettings = Device.TiffSettings()
tiffSettings._CompressionType = Device.CompressionType.LZW
tiffSettings._ColorDepth = Device.ColorDepth.Default
tiffSettings._Skip_blank_pages = False

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

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

تحويل 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



from asposepdf import Api, Device

DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# افتح مستند PDF
document = Api.Document(input_pdf)

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

for i in range(0, document.getPages.size):
    # إنشاء اسم ملف للحفظ
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.bmp"
    # تحويل صفحة معينة وحفظ الصورة في الملف
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

تحويل PDF إلى EMF


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# فتح مستند PDF
document = Api.Document(input_pdf)

# إنشاء كائن Resolution
resolution = Device.Resolution(300)
device = Device.EmfDevice(resolution)

for i in range(0, document.getPages.size):
    # إنشاء اسم الملف للحفظ
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.emf"
    # تحويل صفحة معينة وحفظ الصورة في الملف
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

تحويل PDF إلى JPEG


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# فتح مستند PDF
document = Api.Document(input_pdf)

# إنشاء كائن Resolution
resolution = Device.Resolution(300)
device = Device.JpegDevice(resolution)

for i in range(0, document.getPages.size):
    # إنشاء اسم الملف للحفظ
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.jpeg"
    # تحويل صفحة معينة وحفظ الصورة في الملف
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

تحويل PDF إلى PNG


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# افتح مستند PDF
document = Api.Document(input_pdf)

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

for i in range(0, document.getPages.size):
    # إنشاء اسم الملف للحفظ
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.png"
    # تحويل صفحة معينة وحفظ الصورة في الملف
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

تحويل PDF إلى GIF


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# افتح مستند PDF
document = Api.Document(input_pdf)

# إنشاء كائن الدقة
resolution = Device.Resolution(300)
device = Device.GifDevice(resolution)

for i in range(0, document.getPages.size):
    # إنشاء اسم الملف للحفظ
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.gif"
    # تحويل صفحة معينة وحفظ الصورة في الملف
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

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

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

رسومات متجهة قابلة للتوسع (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 باستخدام Python.

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

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

تحويل PDF إلى SVG


from asposepdf import Api

documentName = "testdata/input.pdf"
doc = Api.Document(documentName, None)
documentOutName = "testout/out.svg"
doc.save(documentOutName, Api.SaveFormat.Svg)