2009-11-05 22 views
6

Qual è il modo più semplice per ottenere il testo (parole) di un file PDF come una stringa lunga o una serie di stringhe.Da PDf a stringa

Ho provato pdfbox ma non funziona per me.

+1

Che dire PDFBox non ha funzionato? Stai cercando alternative o una soluzione per il tuo problema esistente? – Catchwa

+0

Beh, non mi piaceva neanche l'API, ho avuto una rapida occhiata a iText e penso che sia un'opzione migliore. L'API sembra più logica per le mie esigenze. – Ankur

risposta

1

JPedal e Multivalent offrono anche l'estrazione di testo in Java o si può accedere utilizzando xpdfRuntime.exec

2

barfs PDFBox su molti file PDF più recenti, in particolare quelli con le immagini PNG embedded.

Sono rimasto molto impressionato con PDFTextStream

4

uso iText. Il seguente frammento ad esempio estrarrà il testo.

 
PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf")); 
parser.getTextFromPage(3); 

0

Beh, ho usato Tika al fine di estrarre il testo prima da pdf (che si basa su PDFBox), ma penso che Tika è utile solo quando si deve estrarre il testo da diversi formati di file (rilevazione automatica aiuta Un sacco).

Se si desidera analizzare solo i PDF in testo vorrei suggerire PDFTextStream perché è un parser molto meglio di altre API (come iText e PDFBox).

Con PDFTextStream è possibile ottenere facilmente testo strutturato (pagine-> blocchi-> linee-> testoUnità), e ti dà la possibilità di estrarre informazioni correlate come codifica dei caratteri, altezza, posizione di un personaggio nella pagina ecc. ..

Esempio:

public class ExtractTextAllPages { 
    public static void main (String[] args) throws IOException { 
     String pdfFilePath = args[0]; 
     PDFTextStream pdfts = new PDFTextStream(pdfFilePath); 
     StringBuilder text = new StringBuilder(1024); 
     pdfts.pipe(new OutputTarget(text)); 
     pdfts.close(); 
     System.out.printf("The text extracted from %s is:", pdfFilePath); 
     System.out.println(text); 
    } 
}