برنامج تعليمي للتعامل مع ملفات Python PDF

برنامج تعليمي للتعامل مع ملفات Python PDF

برنامج تعليمي للتعامل مع ملفات Python PDF

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

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

مكتبات Python PDF الاكثر شعبية

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

استخراج النصوص من ملفات PDF

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

تثبيت برنامج PDFMiner

يمكنك تثبيت PDFMiner عن طريق تشغيل الأمر التالي.

 pip install "pdfminer.six==20200124" <<<

هنا، نحدد الإصدار المعين من PDFMiner بعد “==”. قد تثير بعض الإصدارات أخطاء عدم التوافق مع Python، وبالتالي، يُقترح هذا الإصدار أثناء العمل مع PDFMiner.
الآن، بالانتقال إلى الجزء الرئيسي، دعنا نرى كيف يمكننا استخراج النصوص باستخدام PDFMiner.


أولا، يتعين علينا استيراد الوظائف والفئات الضرورية من وحدة PDFMiner. وفقا لوثائق PDFMiner ، يتم استخدام PDFPageInterpreter لمعالجة محتويات الصفحة بينما يتم استخدام PDFResourceManager لتخزين الموارد المشتركة مثل الخطوط أو الصور. يستخدم PDFPage لإجراء تحليل صفحة تلو صفحة للمعلومات. يقوم LAParams بتحميل تحليل التخطيط للأحرف ومربع النص وخطوط النص والصور والأشكال. باستخدام هذه ، تقوم وظيفة TextConverter بتحويل مستند PDF إلى نص.
نحن نعطي "sample.pdf" كملف PDF لتحليله ومعالجته باستخدام PDFMiner. يمكننا استخراج نصوص من ملف PDF بمساعدة وظيفة process_page.
أخيرًا ، ستقوم وظيفة الطباعة (النص) بطباعة النص المستخرج من ملف PDF. لذلك، بهذه الطريقة، يمكننا استخراج النصوص من ملف PDF باستخدام PDFMiner.

استخراج الصور من ملفات PDF

عندما يتعين علينا استخراج الصور من PDF، يمكننا استخدام PyMuPDF. يحتوي هذا على وحدة fitz التي تجعل من السهل جدا استخراج الصور من ملف PDF. قبل الانتقال إلى الوحدة مباشرةً ، يمكننا تثبيت المكتبات على النحو التالي.
تثبيت PyMuPDF
قم بما يلي.
pip install pymupd  <<<
pip install fitz   <<<

سيتم الآن تثبيت مكتبات PyMuPDF و Fitz. الآن، لنبدأ في استخراج الصور من ملفات PDF.

استخراج الصور من ملفات PDF
أولا، نقوم بتحميل ملف sample.pdf باستخدام وحدة fitz. ثم نذهب صفحة بصفحة ونجد قائمة الصور. نقوم بتحويل بايت الصورة في ملفات PDF إلى صور فعلية وحفظها محليا. لذلك، بهذه الطريقة، يمكننا استخراج الصور من ملف PDF.

استخراج الجداول من ملفات PDF

استخراج الجداول سهل للغاية مقارنة بالصور واستخراج النص. توجد مكتبة محددة مسبقًا تسمى "camelot" والتي يمكن استخدامها لاستخراج الجدول. قبل القفز إلى تطبيق الترميز، علينا تثبيت المكتبة أولاً.

تثبيت camelot

يمكن تثبيت وحدة camelot عن طريق إجراء تثبيت بسيط للنقطة على النحو التالي:

pip install camelot <<<

سيتم الآن تركيب مكتبة camelot. الآن، لنبدأ في استخراج الجداول من ملفات PDF.

The camelot library

هنا، نقرأ ملف PDF مع جدول باستخدام وظيفة camelot read_pdf (). يتم تخزين جميع الجداول في متغير الجداول كقائمة. في الكود، نقوم بطباعة الجدول الأول على ملف table.pdf. لذلك، بهذه الطريقة، يمكننا استخراج الجداول من ملفات PDF.

استخراج عناوين URL من ملفات PDF

يعد استخراج عناوين URL وظيفة مفيدة أخرى توفرها Python. توفر Python مكتبة تسمى "pdfx" والتي تُستخدم عموما عندما يتعين علينا استخراج عناوين URL من ملف PDF. يمكننا استخدام المكتبات مثل PyPDF2 و PDFMiner وما إلى ذلك لاستخراج النصوص واستخدام التعبيرات العادية لمعرفة عناوين URL. ومع ذلك، فإن هذه العملية طويلة ومحمومة. لذلك، سوف نستخدم مكتبة pdfx لاستخراج عناوين URL من ملف PDF لسهولة التنفيذ وقصر الكود.
تثبيت ملف pdfx
يمكن تثبيت وحدة pdfx عن طريق إجراء تثبيت بسيط للنقطة كما يلي:

pip install pdfx<<<

سيتم الآن تثبيت المكتبة. الآن، لنبدأ في استخراج عناوين URLs من ملفات PDFs.

install pdfx
هنا، ملف PDF الذي نقدمه هو sample.pdf. باستخدام وظيفة PDFx ووظيفة get_references_as_dict ()، يمكننا استخراج جميع عناوين URL الموجودة في ملف PDF المُدخل في شكل قاموس.
لذلك، هذا سهل الفهم والتنفيذ أيضا.

استخراج الصفحات من ملفات PDFs كصورة

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

يمكن تثبيت وحدة pdf2image بتنفيذ ما يلي:

pip install pdf2image<<<

ويكون التنفيذ كالتالي:

تثبيت pdf2image

هنا، نقدم ملف sample.pdf كملف PDF للإدخال الخاص بنا والذي يجب تحويله إلى صور. نحن نستخدم الدالة convert_from_path () حيث يتم إعطاء القيمة 120. تُعرف هذه القيمة بـ DPI أو Dots Per Inch. كلما زادت القيمة، سيتم تكوين صورة أوضح وأكبر حجما. نحن نكرر كل صفحة عن طريق حفظ الصفحات كصور JPEG في تطبيق الترميز أعلاه.
تعليقات
ليست هناك تعليقات
إرسال تعليق



    وضع القراءة :
    حجم الخط
    +
    16
    -
    تباعد السطور
    +
    2
    -