Cosa fa questo strumento
Questo estrattore tira fuori il contenuto testuale di un PDF. Trascina un file, attiva opzionalmente « preserva i ritorni a capo », e ottieni il testo grezzo a destra — con ogni pagina introdotta da un piccolo marcatore (--- Pagina N ---). Il testo può essere copiato negli appunti o scaricato come file UTF-8 .txt. Il parsing avviene interamente nel tuo browser tramite pdf.js; il PDF non viene mai caricato.
Quando usarlo
- Cercare una frase attraverso un lungo report, contratto o tesi senza pagare per una suite desktop.
- Dare il body di un PDF a un summarizer, traduttore o prompt LLM che vuole testo piano.
- Estrarre l'abstract o i riferimenti da un paper accademico per incollarli in un gestore di citazioni.
- Esportare transcript di chat o email arrivati come PDF in un formato che i tuoi script possono fare grep.
- Verificare lo strato OCR di un documento scansionato — l'assenza di testo riconoscibile qui significa che il PDF è solo immagini e ha bisogno di OCR prima.
Come funziona
pdf.js espone un metodo getTextContent() su ogni pagina che restituisce i run di testo della pagina nell'ordine in cui appaiono nello stream di contenuto del documento, insieme alla matrice di trasformazione di ogni run (un array di sei elementi il cui indice 5 è la coordinata y). Con il toggle off, gli item sono uniti con spazi singoli — veloce e coerente, ma i newline che il PDF originale esprimeva visivamente sono persi. Con Preserva i ritorni a capo attivato, lo strumento attraversa gli item e inserisce un \n ogni volta che la coordinata y salta di più di ~5 pixel — un'euristica che recupera sorprendentemente bene i confini di paragrafo e riga su PDF basati su testo.
Le pagine sono separate da un marcatore literal --- Pagina N --- in modo che quando incolli il risultato in una casella di ricerca o ci fai grep, possa ancora trovare la pagina che vuoi. La codifica è UTF-8, il che significa che diacritici latini, cirillico, CJK e arabo round-trippano tutti senza mojibake.
Il worker pdf.js è incluso come asset same-origin emesso da Vite al build. Nessuna chiamata CDN di terze parti, nessuna telemetria, e nessuna copia del tuo testo trattenuta dopo che il tab si chiude.
Note
Perché il risultato è vuoto per alcuni PDF? I PDF vengono in due sapori: quelli con un vero strato di testo (il tipo che esportatori come Word, LaTeX e Chrome producono) e quelli che sono immagini di pagine (scansioni, fax, alcuni vecchi report). pdf.js può estrarre solo dal primo tipo. Se il pannello non restituisce niente, il tuo PDF è solo immagini e ti serve OCR — prova uno strumento come Tesseract.js o una pipeline OCR desktop prima di estrarre di nuovo.
Perché le colonne a volte si intrecciano? I PDF non memorizzano paragrafi; memorizzano run di glifi a coordinate specifiche. I layout a due colonne possono sembrare bene a schermo ma ci danno run intrecciati perché gli item appaiono nell'ordine dello stream, non nell'ordine visivo. L'euristica di coordinata y aiuta nei documenti a colonna singola; per PDF multi-colonna difficili, potresti dover ripulire l'output a mano.
Le tabelle sono preservate? Le celle passano come testo ma la struttura di colonne no — non c'è un concetto « questa cella si allinea con quella cella » nello stream sottostante. Per dati tabulari, cerca un'esportazione CSV dalla sorgente se possibile.
Il risultato è lo stesso di « Visualizza → Seleziona tutto → Copia » in un lettore PDF? Vicino, ma non identico. La copia a livello lettore usa lo stack di gestione del testo dell'OS, che a volte aggiunge spazi e a-capo diversamente. Questo strumento resta vicino allo stream di item grezzo di pdf.js, con un'euristica di newline opzionale sopra.
Strumenti correlati
- PDF in immagini — renderizza prima in immagini se ti serve OCR
- Comparatore — confronta il testo estratto da due PDF
- Anteprima Markdown — renderizza l'estratto come Markdown dopo una pulizia leggera