لدي مجموعة فواتير على شكل pdf و أريد إستخراج المبالغ المضمنة و إستغلال البيانات منها.
ماهي المكتبات التي تساعدني في عملي؟
مرحبا،
لقراءة واستخراج البيانات من ملفات PDF يُمكنك استخدام الوحدة PyPDF2. لتثبيت الوحدة أكتب:
pip install PyPDF2
لقراءة ملف ال PDF استخدم الشفرة التالية:
import PyPDF2 #استدعاء الوحدة from pathlib import Path pdfFileObj = open(Path.home() / Path('Desktop','pdf_test.pdf'), 'rb') pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
حيث pdf_test.pdf هو ملف ال pdf الخاص بنا, وال Path.home() / Path('Desktop','pdf_test.pdf')
هو المسار الكامل إليه.
الآن لقراءة مثلاً الصفحة الأولى من ملف ال PDF نكتب:
pageObj = pdfReader.getPage(0)# قراءة الصفحة الأولى pageOne = pageObj.extractText() # تخزين مُحتوى الصفحة الأولى داخل متغير
الآن ما عليك سوى قراءة المتغير واستخراج المبالغ المضمنة باستخدام التعابير النمطية regular expressions أو باستخدام دوال السلاسل النصية مثل split وغيرها.
بالتوفيق.
السلام عليكم جربت هذه المكتبة لكن تعطيني نوع من الأخطاء حول قراءة الpdf
ثم جربت PyPDF4 تعطيني فراغا ولا يمكنني إستغلال النص.
أستعمل Vsvode.
حسب ما قرأت في المنتديات فإن الخطأ متكرر.
هل تعرفون مكتبة أخرى تفي بالغرض؟
شكرا
عليكم السلام
جربت هذه المكتبة لكن تعطيني نوع من الأخطاء حول قراءة الpdf
ثم جربت PyPDF4 تعطيني فراغا ولا يمكنني إستغلال النص.
يبدو أن بعض أنواع الخطوط تجعل النص غير قابل للقراءة بواسطة المكتبات PyPDF2 أو PyPDF3 أو PyPDF4.
هل تعرفون مكتبة أخرى تفي بالغرض؟
يُمكنك تجريب مكتبة بايثون pdfminer.six والتي بدورها تقوم باستخراج النصوص من ملفات ال PDF.
يُمكنك تثبيتها عن طريق:
pip install pdfminer.six
لاستخراج النصوص نستعمل الشيفرة التالية:
from pdfminer import high_level local_pdf_filename = "رابط ملف ال PDF" pages = [0] # تحديد الصفحة الأولى فقط extracted_text = high_level.extract_text( local_pdf_filename, "", pages ) print(extracted_text) # طباعة النص المستخرج
والتوثيق الخاص بها تَجده هنا: https://pdfminersix.readthe...
التعليقات