summarizer_space / pdf_reader.py
student2222333051's picture
Update pdf_reader.py
a0746e3 verified
# pdf_reader.py
import io
from typing import Optional
# Бірнеше кітапхана арқылы оқуды қолдаймыз — ең алдымен PyPDF2, егер қажет болса pdfminer.six
try:
from PyPDF2 import PdfReader
_has_pypdf2 = True
except Exception:
_has_pypdf2 = False
try:
from pdfminer.high_level import extract_text as pdfminer_extract_text
_has_pdfminer = True
except Exception:
_has_pdfminer = False
def extract_text_from_pdf(pdf_bytes: bytes) -> str:
"""
PDF-тен мәтін алу. Бірнеше әдісті қолданып көреді.
"""
# 1) PyPDF2
if _has_pypdf2:
try:
reader = PdfReader(io.BytesIO(pdf_bytes))
text = ""
for page in reader.pages:
page_text = page.extract_text()
if page_text:
text += page_text + "\n"
if text.strip():
return text
except Exception:
pass
# 2) pdfminer.six (әдетте күрделі PDF-тарға жақсы)
if _has_pdfminer:
try:
text = pdfminer_extract_text(io.BytesIO(pdf_bytes))
if text and text.strip():
return text
except Exception:
pass
# Егер ештеңе шықпаса — бос қайтарың
return ""