आप PDF को टेक्स्ट में बदलने के लिए `PDFMiner` पैकेज का उपयोग कर सकते हैं।
उदाहरण: PDFMiner
आप इसे निम्न तरीके से उपयोग कर सकते हैं:
import sys
from io import StringIO
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.layout import LAParams
from pdfminer.converter import TextConverter
def pdfparser(data):
fp = open(data, 'rb')
resource_manager = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(resource_manager, retstr, codec=codec, laparams=laparams)
interpreter = PDFPageInterpreter(resource_manager, device)
# दस्तावेज़ में निहित प्रत्येक पृष्ठ को प्रोसेस करें
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
data = retstr.getvalue()
print(data)
pdfparser('filename.pdf')
यह एक PDF फ़ाइल लेता है और `PDFPageInterpreter` क्लास से `process_page` फ़ंक्शन का उपयोग करके पृष्ठ दर पृष्ठ टेक्स्ट निकालता है।
वैकल्पिक: PyPDF2 / pypdf (सरल API)
`PyPDF2` (अब `pypdf` के रूप में अनुरक्षित) ठीक काम करता है (यह मानते हुए कि आप अच्छी तरह से बने PDF के साथ काम कर रहे हैं)। यदि आप केवल टेक्स्ट चाहते हैं (स्पेस के साथ), तो आप निम्न कर सकते हैं:
import pypdf
pdf = pypdf.PdfReader(open('filename.pdf', 'rb'))
for page in pdf.pages:
print(page.extract_text())
अन्य विकल्प
pdfplumber (टेबल/लेआउट के लिए सर्वश्रेष्ठ)
pip install pdfplumber
import pdfplumber
with pdfplumber.open("filename.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()
tables = page.extract_tables()
print(text)
PyMuPDF (fitz) - तेज़, शक्तिशाली
pip install pymupdf
import fitz
doc = fitz.open("filename.pdf")
for page in doc:
print(page.get_text())
pdfminer.six (PDFMiner का आधुनिक फोर्क)
pip install pdfminer.six
# उपरोक्त PDFMiner कोड के समान API
तुलना
| लाइब्रेरी | गति | टेक्स्ट गुणवत्ता | टेबल | मेंटेनेंस |
|---|---|---|---|---|
| pypdf (PyPDF2) | तेज़ | अच्छा | नहीं | सक्रिय |
| pdfplumber | मध्यम | उत्कृष्ट | हां | सक्रिय |
| PyMuPDF (fitz) | बहुत तेज़ | उत्कृष्ट | हां | बहुत सक्रिय |
| pdfminer.six | धीमा | अच्छा | सीमित | सक्रिय |
सिफारिश
- सरल टेक्स्ट निष्कर्षण: `pypdf` या `PyMuPDF`
- टेबल/लेआउट विश्लेषण: `pdfplumber` या `PyMuPDF`
- उच्च प्रदर्शन: `PyMuPDF` (fitz)
- प्योर पायथन (कोई C एक्सटेंशन नहीं): `pdfminer.six`