استخراج اطلاعات از فایل های PDF از طریق کتابخانه رایگان پایتون
API رایگان پایتون که توسعه دهندگان را قادر می سازد اطلاعات را از اسناد PDF استخراج کرده و PDF را به فرمت های دیگر تبدیل کنند و تجزیه و تحلیل طرح بندی خودکار را انجام می دهد.
PDFMiner یک کتابخانه منبع باز بسیار آسان برای استفاده از کتابخانه پایتون برای پردازش فایل های PDF بدون هیچ گونه وابستگی دیگری است. PDFMine.six چنگال نگهداری شده توسط جامعه از کتابخانه اصلی PDFMiner. این کتابخانه امکانات بسیار قدرتمندی را برای استخراج اطلاعات از اسناد PDF ارائه کرده است. این یک ابزار دستوری برای غیر برنامه نویسان و یک رابط API برای برنامه نویسان فراهم می کند. یک مبدل قدرتمند PDF نیز بخشی از کتابخانه است که به کاربران کمک می کند تا فایل های PDF را به فرمت های متنی دیگر مانند HTML تبدیل کنند.
PDFMiner یک کتابخانه پایتون خالص است که می تواند به راحتی تمام متون را از یک فایل PDF که به صورت برنامه نویسی رندر شده اند استخراج کند. توانایی عالی این است که مکانهای مربوطه، نام و اندازه فونتها و جهت نوشتن (افقی یا عمودی) را برای هر بخش متن استخراج میکند. از مشخصات PDF-1.7 پشتیبانی می کند و از استخراج اسناد PDF محافظت شده با رمز عبور پشتیبانی می کند. این کتابخانه دارای چندین ویژگی مهم دیگر مانند تجزیه، تجزیه و تحلیل و تبدیل اسناد PDF، استخراج محتوا به صورت HTML یا hOCR، پشتیبانی از اسکریپت های نوشتن عمودی، پشتیبانی از رمزگذاری RC4 و AES، استخراج فهرست مطالب، استخراج مطالب برچسب گذاری شده، طرح بندی خودکار است. تجزیه و تحلیل و غیره
شروع کار با PDFMiner
PDFMiner به پایتون 3.6 و بالاتر نیاز دارد. می توانید PDFMiner را با استفاده از pip نصب کنید. لطفا از دستور زیر برای نصب آن استفاده کنید.
PDFMiner را از طریق pip نصب کنید
pip install pdfminer
همچنین می توانید کتابخانه مشترک کامپایل شده را از مخزن GitHub دانلود و نصب کنید.
استخراج متن از فایل PDF از طریق پایتون
کتابخانه منبع باز Pdfminer.six به توسعه دهندگان نرم افزار این امکان را می دهد که متن را از یک فایل PDF تنها با چند خط کد پایتون استخراج کنند. این کتابخانه بر دریافت و تجزیه و تحلیل داده های متنی تمرکز می کند و پس از آن متن را از یک صفحه مستقیماً از کد منبع PDF استخراج می کند. این کتابخانه همچنین به توسعه دهندگان اجازه می دهد تا تصاویر (JPG، JBIG2، Bitmaps) را از یک فایل PDF استخراج کنند. همچنین امکان استخراج نام قلم یا اندازه هر کاراکتر وجود دارد. مثال های زیر نحوه استخراج متن از یک فایل PDF و چاپ آن بر روی صفحه نمایش را نشان می دهد.
باز کردن و دستکاری اسناد PDF از طریق پایتون
from pdfminer.high_level import extract_text
# Extract text from a pdf.
text = extract_text('example.pdf')
# Extract iterable of LTPage objects.
pages = extract_pages('example.pdf')
print(text)
تبدیل فایل PDF به hOCR از طریق Python API
hOCR یک استاندارد باز نمایش داده برای متن فرمت شده به دست آمده از تشخیص کاراکتر نوری (OCR) است. کتابخانه های رایگان Pdfminer.six به توسعه دهندگان نرم افزار اجازه می دهد تا فایل های PDF را تنها با چند خط کد پایتون به فرمت hOCR تبدیل کنند. مدیریت این کتابخانه بسیار آسان است و میتواند اطلاعات متنی صریح را از فایلهای PDF که دارای آن هستند استخراج کند و از آن برای تولید یک نمایش اولیه hOCR استفاده کند.
تبدیل فایل PDF به متن از طریق پایتون
این کتابخانه شامل مجموعه ای از ویژگی ها و قابلیت های غنی است که به شما اجازه می دهد تا فراتر از پردازش PDF اولیه گسترش دهید. کتابخانه منبع باز Pdfminer.six به توسعه دهندگان پایتون اجازه می دهد اسناد PDF را تنها با چند دستور ساده به متن تبدیل کنند. ابتدا باید مسیر فایل های PDF و همچنین فایل Text را ارائه دهید. اگر سند دارای رمز عبور است، باید رمز عبور آن را نیز وارد کنید. از مثال کد زیر می توان برای رسیدن به هدف استفاده کرد، به سادگی رشته را در یک PDF برمی گرداند، با توجه به نام فایل آن، می توانید به راحتی آن را در یک فایل ذخیره کنید.
تبدیل فایل PDF به فرمت متن از طریق Python API
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
fp.close()
device.close()
retstr.close()
return text