Tabelle vs testo semplice: perché è importante
Prima di scegliere un metodo, controlla che tipo di dati contiene il tuo PDF. L'approccio dipende interamente dalla struttura del PDF:
| Tipo di PDF | Cosa contiene | Metodo migliore |
|---|---|---|
| Tabelle native | PDF basato su testo con bordi della tabella visibili e linee di griglia | Qualsiasi metodo — CleverUtils è il più veloce |
| Tabelle senza bordi | Colonne allineate per spaziatura, nessuna griglia visibile | Python (pdfplumber) per precisione |
| PDF scansionato | Immagine di una pagina stampata (nessun testo selezionabile) | Prima l'OCR (solo testo, senza struttura di tabella) |
| Contenuto misto | Tabelle + paragrafi + intestazioni sulla stessa pagina | Python per estrazione selettiva |
Test veloce: apri il tuo PDF e prova a selezionare il testo con il mouse. Se riesci a evidenziare parole individuali, è un PDF nativo (basato su testo). Se l'intera pagina viene selezionata come un blocco, è un'immagine scansionata — avrai bisogno dell'OCR. Se ti serve il testo semplice invece di una tabella, scopri come estrarre il testo da un PDF.
Metodo 1: Converti online con CleverUtils
L'opzione più veloce per la maggior parte degli utenti. CleverUtils estrae cella per cella le tabelle con linee di griglia. Le pagine senza tabelle di questo tipo vengono esportate riga per riga in un'unica colonna, e i PDF scansionati passano automaticamente per l'OCR. Nessuna installazione, nessun account richiesto.
- Vai su cleverutils.com/it/pdf-to-csv
- Carica il tuo PDF — trascina e rilascia, o fai clic su « Scegli file PDF ». Max. 100 MB.
- I PDF scansionati non richiedono passaggi aggiuntivi: se non viene trovato testo, le prime 10 pagine vengono lette con l'OCR in inglese, una riga di testo per riga del CSV.
- Fai clic su « Converti in CSV » — la conversione richiede alcuni secondi per la maggior parte dei file.
- Scarica il CSV — aprilo in Excel, Google Sheets o importalo nel tuo database.
CleverUtils elabora tutte le pagine del tuo PDF e combina le righe estratte in un unico file CSV UTF-8. I file vengono crittografati durante il trasferimento ed eliminati automaticamente entro 2 ore.
Metodo 2: Python con pdfplumber
pdfplumber è la migliore libreria Python per estrarre tabelle da PDF. Comprende sia le tabelle con che senza bordi, ti fornisce le coordinate per ogni carattere e ti permette di ottimizzare i parametri di estrazione.
Installa pdfplumber
pip install pdfplumber
Estrazione di base della tabella
Questo script estrae tutte le tabelle da ogni pagina di un PDF e le scrive in un file CSV:
import pdfplumber
import csv
with pdfplumber.open("invoice.pdf") as pdf:
all_rows = []
for page in pdf.pages:
table = page.extract_table()
if table:
all_rows.extend(table)
with open("output.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(all_rows)
print(f"Extracted {len(all_rows)} rows to output.csv")
Gestione di tabelle senza bordi
Quando le tabelle non hanno bordi visibili, pdfplumber può comunque rilevare le colonne utilizzando le posizioni dei caratteri. Usa extract_table() con impostazioni personalizzate:
# Per PDF senza bordi di tabella visibili
table_settings = {
"vertical_strategy": "text",
"horizontal_strategy": "text",
"snap_y_tolerance": 5,
"intersection_x_tolerance": 15,
}
with pdfplumber.open("report.pdf") as pdf:
page = pdf.pages[0]
table = page.extract_table(table_settings)
for row in table:
print(row)
Converti più PDF in batch
import pdfplumber
import csv
from pathlib import Path
for pdf_file in Path("./invoices").glob("*.pdf"):
csv_path = pdf_file.with_suffix(".csv")
with pdfplumber.open(pdf_file) as pdf:
rows = []
for page in pdf.pages:
table = page.extract_table()
if table:
rows.extend(table)
with open(csv_path, "w", newline="") as f:
csv.writer(f).writerows(rows)
print(f"{pdf_file.name} -> {csv_path.name} ({len(rows)} rows)")
Metodo 3: Microsoft Excel (Ottieni dati)
Microsoft 365 (Excel per 365) può importare file PDF direttamente utilizzando la funzione Power Query / Ottieni dati. Questa opzione non è disponibile in Excel 2016 o 2019 standalone — richiede un abbonamento Microsoft 365 attivo. Funziona bene per tabelle semplici e ben strutturate.
- Apri Excel e crea una nuova cartella di lavoro vuota.
- Vai a Dati → Ottieni dati → Da file → Da PDF.
- Seleziona il tuo PDF dal browser dei file.
- Scegli la/le tabella/e che desideri importare dal pannello Navigazione. Excel mostrerà un'anteprima di ogni tabella rilevata.
- Fai clic su « Carica » per importare i dati nel tuo foglio di lavoro.
- Salva come CSV: File → Salva con nome → scegli « CSV (delimitato da virgole) (*.csv) » come formato.
Limitazione: l'importazione PDF in Excel funziona meglio con tabelle semplici e delimitate. Fatica con layout a più colonne, celle unite e tabelle senza bordi. Per PDF complessi, usa CleverUtils o Python invece.
Metodo 4: Google Sheets
Google Sheets non importa direttamente i PDF, ma puoi usare l'OCR integrato di Google Drive per estrarre prima il testo e poi copiarlo in Sheets.
- Carica il PDF su Google Drive.
- Fai clic con il pulsante destro del mouse sul PDF → Apri con → Google Docs. Google userà OCR sul file e lo convertirà in un documento modificabile.
- Seleziona i dati della tabella nel Google Doc e copia (Ctrl+C / Cmd+C).
- Apri un nuovo Google Sheet e incolla (Ctrl+V / Cmd+V). I dati riempiranno le celle.
- Pulisci i dati — regola le larghezze delle colonne, rimuovi le righe extra, correggi gli errori di OCR.
- Scarica come CSV: File → Scarica → Valori separati da virgole (.csv).
Suggerimento: l'OCR di Google funziona sorprendentemente bene per PDF scansionati. Ma la struttura della tabella potrebbe non sopravvivere al passaggio di copia-incolla intatta. Per risultati migliori con dati tabulari, usa il convertitore diretto PDF in CSV di CleverUtils.
Confronto dei metodi
| Funzionalità | CleverUtils | Python | Excel | Google Sheets |
|---|---|---|---|---|
| Difficoltà | Facile | Avanzato | Medio | Facile |
| Installazione | Nessuna (browser) | Python + pip | Microsoft 365 | Nessuna (browser) |
| Tabelle con bordi | Eccellente | Eccellente | Buono | Discreto |
| Tabelle senza bordi | Scarso (una colonna per riga) | Eccellente | Scarso | Scarso |
| PDF scansionati (OCR) | Automatico (inglese, 10 pagine, solo testo) | Con pytesseract | Non supportato | Via Google Drive |
| Elaborazione batch | Un file alla volta | Illimitato | Un file alla volta | Un file alla volta |
| Migliore per | Conversioni veloci una tantum | Automazione & PDF complessi | Utenti Excel con tabelle semplici | Estrazione rapida con OCR |
Suggerimenti per un output CSV pulito
- Controlla la riga di intestazione. Alcuni PDF hanno intestazioni su più righe che si dividono in righe CSV separate. Dopo la conversione, verifica che le intestazioni delle colonne siano su una sola riga.
- Attenzione alle celle unite. Le tabelle PDF spesso uniscono le celle per i titoli dei gruppi. Questi di solito diventano celle vuote in CSV. Compilali manualmente o con uno script dopo l'estrazione.
- Gestisci i caratteri speciali. Virgole, virgolette e interruzioni di riga all'interno dei valori delle celle possono interrompere l'analisi CSV. I buoni convertitori (CleverUtils, pdfplumber) gestiscono l'escape automaticamente. Se il tuo no, racchiudi i valori tra virgolette doppie.
- La codifica è importante. Usa la codifica UTF-8 quando salvi il CSV per preservare i caratteri accentati, i simboli di valuta e il testo non latino. In Python:
open("out.csv", "w", encoding="utf-8-sig")(il-sigaggiunge una BOM che aiuta Excel a rilevare UTF-8). - Tabelle su più pagine. Quando una tabella si estende su più pagine PDF, alcuni strumenti estraggono ogni pagina come una tabella separata. In Python, salta la riga di intestazione nelle pagine successive per evitare duplicati.
Problemi comuni e soluzioni
| Problema | Causa | Soluzione |
|---|---|---|
| Output CSV vuoto | PDF scansionato (basato su immagine) | CleverUtils esegue l'OCR automaticamente; in Python usa pytesseract |
| Tutti i dati in una colonna | Excel ha aperto il CSV con il delimitatore errato | Usa Dati → Testo in colonne → Delimitato → Virgola |
| Colonne disallineate | Tabella senza bordi con spaziatura irregolare | Usa pdfplumber con vertical_strategy: "text" |
| Caratteri corrotti | Codifica non corretta (solitamente Latin-1 vs UTF-8) | Apri nell'editor di testo, salva come UTF-8 |
| Intestazioni duplicate | Tabella su più pagine con intestazioni ripetute | In Python, salta la riga 0 nelle pagine dopo la prima |
Adobe Acrobat ed estratti conto bancari
Adobe Acrobat
Acrobat Pro esporta le tabelle PDF in Excel anziché direttamente in CSV: usa Esporta PDF → Foglio di calcolo → Cartella di lavoro di Microsoft Excel, poi apri il file in Excel e salvalo come CSV UTF-8.
Estratti conto bancari e delle carte di credito
- Controlla prima l'home banking: molte banche permettono di scaricare i movimenti direttamente in CSV, evitando errori di conversione.
- Se hai solo il PDF, verifica che il testo sia selezionabile. Gli estratti conto basati su testo si convertono bene; quelli scansionati richiedono l'OCR e un controllo attento.
- Dopo la conversione, confronta i totali del CSV con l'estratto conto e correggi date e segni meno prima di importare i dati nel software di contabilità.