Ë
    cœií	  ã                   óœ   — d dl Z d dlZd dlZd dlZd dlmZ d dlZde_         ej                  e	«      Z
 G d„ d«      Z e«       Zdedefd„Zy)é    N)ÚImagec                   ó(   — e Zd Zd„ Zd„ Zdedefd„Zy)ÚPDFContentExtractorc                 ó$   — | j                  «        y ©N)Ú_initialize_ocr_engine)Úselfs    úO/var/www/html/Whatsapp_Customer_Support_Chatbot/src/utils/document_processor.pyÚ__init__zPDFContentExtractor.__init__   s   € Ø×#Ñ#Õ%ó    c                 ó  — ddg}	 t        j                  «        y # t         j                  $ rV |D ]9  }t        j                  j                  |«      sŒ#|t         j                   _         Y y  t        j                  d«       Y y w xY w)Nz,C:\Program Files\Tesseract-OCR\tesseract.exezEC:\Users\webbrains\AppData\Local\Programs\Tesseract-OCR\tesseract.exez!OCR engine (Tesseract) not found.)	ÚpytesseractÚget_tesseract_versionÚTesseractNotFoundErrorÚosÚpathÚexistsÚtesseract_cmdÚloggerÚerror)r	   Úcommon_windows_pathsr   s      r
   r   z*PDFContentExtractor._initialize_ocr_engine   su   € à;ØTð 
Ðð
	>Ü×-Ñ-Õ/øÜ×1Ñ1ò 	>Ø,ò �Ü—7‘7—>‘> $Õ'Ø<@”K×+Ñ+Ô9Úðô �L‰LÐ<Ö=ð	>ús   † ›7BÁBÁ+BÂBÚ	file_pathÚreturnc           	      óÌ  — t         j                  j                  |«      syg }	 t        j                  |«      5 }|D ]Ó  }|j                  d«      j                  «       }t        |«      dk  r‘t        j                  dt        |«      › d�«       |j                  d¬«      }t        j                  t        j                  |j                  d«      «      «      }t        j                   |d	¬
«      j                  «       }n|}|j#                  |«       ŒÕ 	 d d d «       dj)                  |«      S # 1 sw Y   ŒxY w# t$        $ r"}	t        j'                  d|	› �«       Y d }	~	ŒCd }	~	ww xY w)NÚ Útexté2   zLow text density (z% chars). Using high-res OCR fallback.i,  )ÚdpiÚpngzeng+hin+guj)ÚlangzExtraction error: Ú
)r   r   r   ÚfitzÚopenÚget_textÚstripÚlenr   ÚdebugÚ
get_pixmapr   ÚioÚBytesIOÚtobytesr   Úimage_to_stringÚappendÚ	Exceptionr   Újoin)
r	   r   Úextracted_pagesÚdocumentÚpageÚnative_textÚpixÚimgÚ	page_textr   s
             r
   Úextract_textz PDFContentExtractor.extract_text    s+  € Ü�w‰w�~‰~˜iÔ(Øàˆð	7Ü—‘˜9Ó%ð 6¨Ø$ò 6�Dà"&§-¡-°Ó"7×"=Ñ"=Ó"?�Kô ˜;Ó'¨"Ò,ÜŸ™Ð'9¼#¸kÓ:JÐ9KÐKpÐ%qÔrà"Ÿo™o°#˜oÓ6˜Ü#Ÿj™j¬¯©°C·K±KÀÓ4FÓ)GÓH˜ä$/×$?Ñ$?ÀÈ-Ô$X×$^Ñ$^Ó$`™	à$/˜	à#×*Ñ*¨9Õ5ñ!6÷6ð* �y‰y˜Ó)Ð)÷+6ð 6ûô$ ò 	7Ü�L‰LÐ-¨e¨WÐ5×6Ñ6ûð	7ús/   ¤D8 ¹CD,ÄD8 Ä,D5Ä1D8 Ä8	E#ÅEÅE#N)Ú__name__Ú
__module__Ú__qualname__r   r   Ústrr7   © r   r
   r   r      s   „ ò&ò>ð* cð *¨cô *r   r   Úpdf_pathr   c                 ó,   — t         j                  | «      S r   )Ú	extractorr7   )r=   s    r
   Úextract_contentr@   ?   s   € Ü×!Ñ! (Ó+Ð+r   )r)   r   Úloggingr   ÚPILr   r"   ÚMAX_IMAGE_PIXELSÚ	getLoggerr8   r   r   r?   r;   r@   r<   r   r
   ú<module>rE      s[   ðÛ 	Û 	Û Û Ý Û ð €Ô à	ˆ×	Ñ	˜8Ó	$€÷.*ñ .*ñ`  Ó!€	ð,˜cð , cô ,r   