File size: 1,384 Bytes
a5de847
3c5ed5b
a5de847
 
3c5ed5b
 
 
a5de847
3c5ed5b
 
 
 
 
a5de847
3c5ed5b
a5de847
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3c5ed5b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import pdfplumber
from docx import Document
import logging
import io

def extract_text_from_pdf(file_path):
    """
    Estrae il testo da un file PDF usando pdfplumber.
    
    Args:
        file_path: Percorso del file PDF
        
    Returns:
        str: Testo estratto dal PDF o messaggio di errore
    """
    try:
        with pdfplumber.open(file_path) as pdf:
            text = []
            for page in pdf.pages:
                try:
                    page_text = page.extract_text() or ""
                    text.append(page_text)
                except Exception as e:
                    logging.warning(f"Errore nell'estrazione della pagina: {str(e)}")
                    continue
            
            extracted_text = "\n".join(text)
            if not extracted_text.strip():
                raise ValueError("Nessun testo estratto dal PDF")
                
            return extracted_text
            
    except Exception as e:
        logging.error(f"Errore nella lettura del PDF: {str(e)}")
        raise

def extract_text_from_docx(file_path):
    """
    Estrae il testo da un file DOCX.
    
    Args:
        file_path: Percorso del file DOCX
        
    Returns:
        str: Testo estratto dal documento Word
    """
    doc = Document(file_path)
    text = ""
    for para in doc.paragraphs:
        text += para.text + "\n"
    return text