यह मई 2020 में Python3 में PDFminer छह का उपयोग करके काम करता है।
पैकेज स्थापित करना
$ pip install pdfminer.six
पैकेज आयात करना
from pdfminer.high_level import extract_text
डिस्क पर सहेजे गए पीडीएफ का उपयोग करना
text = extract_text('report.pdf')
या वैकल्पिक रूप से:
with open('report.pdf','rb') as f:
text = extract_text(f)
स्मृति में पहले से ही पीडीएफ का उपयोग करना
यदि पीडीएफ पहले से ही स्मृति में है, उदाहरण के लिए यदि अनुरोध लाइब्रेरी के साथ वेब से पुनर्प्राप्त किया गया है, तो इसे io
लाइब्रेरी का उपयोग करके एक स्ट्रीम में परिवर्तित किया जा सकता है :
import io
response = requests.get(url)
text = extract_text(io.BytesIO(response.content))
प्रदर्शन और विश्वसनीयता PyPDF2 के साथ तुलना में
PDFminer.six PyPDF2 (जो कुछ प्रकार के PDF के साथ विफल रहता है) की तुलना में अधिक मज़बूती से काम करता है, विशेष रूप से PDF संस्करण 1.7 में
हालाँकि, PDFminer.six के साथ पाठ निष्कर्षण 6 के कारक द्वारा PyPDF2 की तुलना में काफी धीमा है।
मैंने timeit
एक 15 "MBP (2018) के साथ पाठ निष्कर्षण समयबद्ध किया , केवल 10 पृष्ठ पीडीएफ के साथ निष्कर्षण समारोह (कोई फ़ाइल खोलने आदि) का समय नहीं दिया और निम्नलिखित परिणाम प्राप्त किए:
PDFminer.six: 2.88 sec
PyPDF2: 0.45 sec
pdfminer.six में एक विशाल पदचिह्न भी है, जिसमें pycryptodome की आवश्यकता होती है, जिसे 80 MB से 350 MB तक अल्पाइन लिनक्स पर एक न्यूनतम स्थापित डॉक छवि को स्थापित करने वाले GCC और अन्य चीजों की आवश्यकता होती है। PyPDF2 का कोई ध्यान देने योग्य भंडारण प्रभाव नहीं है।