View Full Version : Estrarre testo da un file PDF in java
Devo sviluppare un applicazione java che estragga il testo di più file pdf, lo copi in un database per poi eseguire delle ricerche.
Il mio problema principale e riuscire ad estrarre interamente il testo ,i file pdf sono molto grandi (100 pg o più).
Ho letto e cercato in rete ma ci sono poche informazioni e vaghe su delle librerie come:
- IText
- PDFTextStram
- PJX
- PdfBox
sapreste indicarmi cosa fanno? e qual'è la migliore da usare nel mio caso? eventualmente se dovete segnalarmene altre fatelo.
Spero ne esca una bella discussione che sia utile, visto la scarsità della rete.
clockover
10-10-2011, 11:50
Dai uno sguardo qui... io non l'ho mai provato però mi sembra che sia ben documentato iText http://itextpdf.com/book/examples.php
naviga il sito che c'è tutto
grazie ma mi serve anche qualche esempio pratico di codice:(
clockover
12-10-2011, 00:25
grazie ma mi serve anche qualche esempio pratico di codice:(
Allora non hai visitato il sito
no no il sito l'ho visitato tutto, e mi sarà molto utile, volevo anche qualche piccolo stralcio di codice del mio caso specifico. In oltre mi servirebbe qualche informazione sulle altre librerie perchè per quello che dovrò fare IText forse non mi basta.
Apache pdfBox
http://java-rude-inside.blogspot.com/2011/08/reading-pdf-file-in-java.html
http://www.hwupgrade.it/forum/showpost.php?p=34447293&postcount=6
Ciao
iText è veramente facile da usare. Devi prima di tutto creare un PdfReader del file da cui vuoi estrarre il testo. Poi chiami PdfTextExtractor.getTextFromPage() a cui passi il reader, il numero della pagina e la strategia di estrazione. Ce ne sono un paio che funzionano più o meno bene in base ai tipi di documento. Guarda la documentazione e sperimenta un po' per capire quella che fa al caso tuo.
iText è veramente facile da usare. Devi prima di tutto creare un PdfReader...
ecco una parte del codice che ho sviluppato:
FileInputStream f2=new FileInputStream("TestRighe.pdf");
PdfReader lettore2 = new PdfReader(f2);
String testoSenzaS2=PdfTextExtractor.getTextFromPage(lettore2,1);
System.out.println(testoSenzaS2);
che stampa:
1agina p
iivnideerutaizapsacifirev876543agiradnoces2agiramirp1doc
TestRighe.pdf contiene:
doc
1 prima riga
2 seconda riga
3
4
5
6
7
8
verifica spaziature ed invii
ora devo riuscire a sviluppare una strategia che mantenga l'ordine esatto del testo senza incasinare le lettere, appena ho qualcosa la posto qui
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.