PyPDF2 معالجة PDF في بايثون

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

التعامل مع ملفات PDF في بايثون: دليل شامل لمكتبة PyPDF2

PDF هو أحد أكثر التنسيقات شيوعًا للمستندات الإلكترونية. لكن التعامل معه، مثل الدمج والتقسيم والتشفير أو استخراج النص، يتطلب أدوات موثوقة. في بايثون، تُعد مكتبة PyPDF2 واحدة من أشهر وأكثر المكتبات استقرارًا للعمل مع ملفات PDF.

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

ما هي PyPDF2

PyPDF2 هي مكتبة بايثون للتعامل مع ملفات PDF، تم تطويرها كنسخة محسّنة من المكتبة الأصلية PyPDF. توفر واجهة برمجة تطبيقات عالية المستوى لقراءة وكتابة وتعديل مستندات PDF دون الحاجة لفهم البنية الداخلية لتنسيق PDF.

الإمكانيات الأساسية للمكتبة

  • قراءة واستخراج النص من ملفات PDF
  • دمج عدة مستندات PDF
  • تقسيم PDF إلى صفحات فردية
  • إضافة العلامات المائية وتراكب الصفحات
  • تشفير وفك تشفير ملفات PDF
  • التعامل مع البيانات الوصفية للمستندات
  • تدوير وتغيير حجم الصفحات
  • التعامل مع الإشارات المرجعية وجدول المحتويات

تثبيت PyPDF2

يتم تثبيت المكتبة عبر pip:

pip install PyPDF2

للحصول على أداء أكثر استقرارًا، يُنصح أيضًا بتثبيت التبعيات الإضافية:

pip install PyPDF2[crypto]

الفئات والمكونات الأساسية

PdfReader

فئة PdfReader مخصصة لقراءة ملفات PDF. توفر الوصول إلى الصفحات والبيانات الوصفية والمعلومات الأخرى للمستند.

PdfWriter

فئة PdfWriter تُستخدم لإنشاء ملفات PDF جديدة أو تعديل الملفات الموجودة. تتيح إضافة الصفحات وتطبيق التشفير وتغيير البيانات الوصفية.

PdfMerger

فئة PdfMerger متخصصة في دمج عدة ملفات PDF في مستند واحد مع إمكانية ترتيب الصفحات.

العمليات الأساسية مع PDF

قراءة ملفات PDF

from PyPDF2 import PdfReader

# تحميل ملف PDF
reader = PdfReader("example.pdf")

# الحصول على عدد الصفحات
print(f"عدد الصفحات: {len(reader.pages)}")

# استخراج النص من الصفحة الأولى
first_page = reader.pages[0]
text = first_page.extract_text()
print(text)

استخراج النص من جميع الصفحات

from PyPDF2 import PdfReader

reader = PdfReader("example.pdf")
full_text = ""

for page_num, page in enumerate(reader.pages):
    text = page.extract_text()
    full_text += f"--- الصفحة {page_num + 1} ---\n{text}\n\n"

print(full_text)

التحقق من معلومات المستند

from PyPDF2 import PdfReader

reader = PdfReader("example.pdf")

# التحقق من التشفير
if reader.is_encrypted:
    print("الملف مشفر")
else:
    print("الملف غير مشفر")

# الحصول على أبعاد الصفحة الأولى
page = reader.pages[0]
print(f"حجم الصفحة: {page.mediabox}")
print(f"الدوران: {page.rotation} درجة")

دمج ملفات PDF

الدمج البسيط

from PyPDF2 import PdfMerger

merger = PdfMerger()

# إضافة الملفات
merger.append("file1.pdf")
merger.append("file2.pdf")
merger.append("file3.pdf")

# حفظ النتيجة
merger.write("merged_document.pdf")
merger.close()

الدمج مع تحديد نطاق الصفحات

from PyPDF2 import PdfMerger

merger = PdfMerger()                    

توصيات