pypdf هي مكتبة PDF مجانية ومفتوحة المصدر قادرة على تقسيم صفحات ملفات PDF ودمجها واقتصاصها وتحويلها. يمكنه أيضًا إضافة بيانات مخصصة وخيارات العرض وكلمات المرور إلى ملفات PDF. يمكن لـ pypdf استرداد النص والبيانات الوصفية من ملفات PDF أيضًا.
راجع pdfly للتعرف على تطبيق CLI الذي يستخدم pypdf للتفاعل مع ملفات PDF.
تثبيت pypdf باستخدام النقطة:
pip install pypdf
لاستخدام pypdf مع تشفير أو فك تشفير AES، قم بتثبيت تبعيات إضافية:
pip install pypdf[crypto]
ملاحظة : يتضمن
pypdf
3.1.0 والإصدارات الأحدث تحسينات كبيرة مقارنة بالإصدارات السابقة. يرجى الرجوع إلى دليل الهجرة لمزيد من المعلومات.
from pypdf import PdfReader
reader = PdfReader ( "example.pdf" )
number_of_pages = len ( reader . pages )
page = reader . pages [ 0 ]
text = page . extract_text ()
يمكن لـ pypdf القيام بالمزيد، على سبيل المثال، التقسيم والدمج وقراءة وإنشاء التعليقات التوضيحية وفك التشفير والتشفير والمزيد. تحقق من الوثائق للحصول على أمثلة استخدام إضافية!
للأسئلة والأجوبة، قم بزيارة StackOverflow (الموسوم بـ pypdf).
تعد صيانة pypdf بمثابة جهد تعاوني. يمكنك دعم المشروع عن طريق كتابة الوثائق، والمساعدة في تضييق نطاق المشكلات، وإرسال التعليمات البرمجية. راجع ملف CONTRIBUTING.md لمزيد من المعلومات.
تغطي تجربة مستخدمي pypdf النطاق الكامل من المبتدئين الذين يرغبون في جعل حياتهم أسهل إلى الخبراء الذين طوروا البرامج قبل وجود PDF. يمكنك المساهمة في مجتمع pypdf من خلال الإجابة على الأسئلة الموجودة على StackOverflow، والمساعدة في المناقشات، وسؤال المستخدمين الذين يبلغون عن مشكلات MCVE (الرمز + مثال PDF!).
تشتمل تذكرة الأخطاء الجيدة على MCVE - وهو مثال بسيط يمكن التحقق منه. بالنسبة إلى pypdf، هذا يعني أنه يجب عليك تحميل ملف PDF الذي يتسبب في حدوث الخطأ بالإضافة إلى التعليمات البرمجية التي تنفذها مع كل المخرجات. استخدم print(pypdf.__version__)
لتخبرنا بالإصدار الذي تستخدمه.
نرحب بجميع مساهمات الكود، ولكن المساهمات الأصغر لديها فرصة أفضل لإدراجها في الوقت المناسب. إن إضافة اختبارات الوحدة للميزات الجديدة أو حالات الاختبار للأخطاء التي قمت بإصلاحها يساعدنا على التأكد من أن طلب السحب (PR) جيد.
يتضمن pypdf مجموعة اختبار يمكن تنفيذها باستخدام pytest
:
$ pytest
===================== test session starts =====================
platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/moose/GitHub/Martin/pypdf
plugins: cov-3.0.0
collected 233 items
tests/test_basic_features.py .. [ 0%]
tests/test_constants.py . [ 1%]
tests/test_filters.py .................x..... [ 11%]
tests/test_generic.py ................................. [ 25%]
............. [ 30%]
tests/test_javascript.py .. [ 31%]
tests/test_merger.py . [ 32%]
tests/test_page.py ......................... [ 42%]
tests/test_pagerange.py ................ [ 49%]
tests/test_papersizes.py .................. [ 57%]
tests/test_reader.py .................................. [ 72%]
............... [ 78%]
tests/test_utils.py .................... [ 87%]
tests/test_workflows.py .......... [ 91%]
tests/test_writer.py ................. [ 98%]
tests/test_xmp.py ... [100%]
========== 232 passed, 1 xfailed, 1 warning in 4.52s ==========