Salve sto usando IText per estrarre il testo da un pdf. Il codice che ho attualmente sviluppato è il seguente:
codice:
public static void main(String[] args) throws IOException {
FileInputStream f=new FileInputStream("TestPiùPagine.pdf");
PdfReader lettore = new PdfReader(f);
System.out.println(testoPagina(lettore,1));
}
public static String testoPagina(PdfReader lettore,int paginaAttuale) throws IOException{
if(paginaAttuale==lettore.getNumberOfPages()){
return PdfTextExtractor.getTextFromPage(lettore, paginaAttuale);
}
String s = PdfTextExtractor.getTextFromPage(lettore, paginaAttuale);
return s+testoPagina(lettore,paginaAttuale+1);
}// metodo che gestisce ricorsivamente la copiatura del testo
Il metodo legge e stampa tutto il contenuto della pagine solo che non rispetta nessun ordine. Per mantenere l'ordine dovrei usare il metodo:
PdfTextExtractor.getTextFromPage(lettore,paginaAttuale,strategia);
dove strategia è un implementazione dell interfaccia:
public class Strategia implements TextExtractionStrategy {
public void beginTextBlock() {
// TODO Auto-generated method stub}
public void endTextBlock() {
// TODO Auto-generated method stub}
public void renderImage(ImageRenderInfo arg0) {
// TODO Auto-generated method stub}
public void renderText(TextRenderInfo arg0) {
// TODO Auto-generated method stub}
public String getResultantText() {
// TODO Auto-generated method stub
return null;}
il mio problema sta proprio in questa interfaccia, non riesco a trovare una documentazione utile che mi faccia capire come implementarla oppure un alternativa (con IText o altro) che mi faccia estrarre il testo rispettando spaziature invii ed ordine parole.Spero di essere stato molto chiaro nel descrivere il mio problema.
Teo