2009-11-05 7 views
6

Quelle est la manière la plus simple d'obtenir le texte (mots) d'un fichier PDF sous la forme d'une longue chaîne ou d'un tableau de chaînes.De PDf à Chaîne

J'ai essayé pdfbox mais cela ne fonctionne pas pour moi.

+1

Qu'en est-PDFBox ne fonctionne pas? Cherchez-vous des alternatives ou une solution à votre problème actuel? – Catchwa

+0

Eh bien, je n'ai pas aimé l'API a été conçu non plus, j'ai regardé rapidement iText et je pense que c'est une meilleure option. L'API semble plus logique pour mes besoins. – Ankur

Répondre

1

JPedal et Multivalent offrent également l'extraction de texte dans Java ou vous pouvez accéder à l'aide xpdfRuntime.exec

2

Barfs de PDFBox sur de nombreux fichiers PDF plus récents, en particulier ceux avec des images PNG intégrées.

J'ai été très impressionné par PDFTextStream

4

utilisation iText. L'extrait suivant extrait par exemple le texte.

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

0

Eh bien, je l'ai utilisé Tika pour extraire le texte brut de pdf (il est basé sur PDFBox), mais je pense que Tika est utile que lorsque vous devez extraire le texte à partir de différents formats de fichiers (détection automatique aide beaucoup).

Si vous voulez analyser ce que les PDF en texte que je suggère PDFTextStream parce qu'il est un analyseur beaucoup mieux que d'autres APIs (comme iText et PDFBox). Avec PDFTextStream, vous pouvez facilement obtenir du texte structuré (pages-> blocks-> lignes-> textUnits), et il vous donne la possibilité d'extraire des informations corrélées telles que le codage des caractères, la hauteur, la position d'un caractère dans la page, etc. ..

Exemple:

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); 
    } 
}