CoolFace
Apppublic

Aigenthix/Graph_RAG

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
pdf_processor.py50 linesDownload Raw Back to processors
1"""PDF document processor"""2 3import PyPDF24import logging5from typing import Dict, Any6 7logger = logging.getLogger(__name__)8 9 10class PDFProcessor:11    """Processor for PDF documents"""12 13    @staticmethod14    def extract_text(file_path: str) -> str:15        """Extract text from PDF file"""16        text = []17        try:18            with open(file_path, "rb") as pdf_file:19                pdf_reader = PyPDF2.PdfReader(pdf_file)20                num_pages = len(pdf_reader.pages)21 22                for page_num in range(num_pages):23                    page = pdf_reader.pages[page_num]24                    page_text = page.extract_text()25                    text.append(page_text)26 27            extracted_text = "\n".join(text)28            logger.info(f"Extracted text from PDF: {num_pages} pages")29            return extracted_text30        except Exception as e:31            logger.error(f"Failed to extract text from PDF: {e}")32            raise33 34    @staticmethod35    def get_metadata(file_path: str) -> Dict[str, Any]:36        """Extract metadata from PDF"""37        try:38            with open(file_path, "rb") as pdf_file:39                pdf_reader = PyPDF2.PdfReader(pdf_file)40                metadata = pdf_reader.metadata41 42                return {43                    "num_pages": len(pdf_reader.pages),44                    "title": metadata.title if metadata else None,45                    "author": metadata.author if metadata else None,46                }47        except Exception as e:48            logger.error(f"Failed to extract metadata from PDF: {e}")49            return {"num_pages": 0}50