# Java PDF-Einlesen



## Gast2 (26. Jan 2011)

Hallo zusammen,

welche Apis bzw. Frameworks gibt es in Java um PDF-Dateien (wahrscheinlich komprimiert) einzulesen und auszuwerten? 
Ist das überhaupt möglich?

Wenn ich das File normal einlese bekomme ich keine gescheiten Informationen raus sondern nur irgendwelche Hieroglyphen raus?!



```
BufferedReader br = new BufferedReader(new FileReader(file));
		 String line = null;
         while((line = br.readLine()) != null) {
             System.out.println(line);                
         }
```


----------



## HoaX (26. Jan 2011)

Nen PDF is nunmal keine normale Textdatei. Wie kommst du darauf dass es mit FileReader geht?!

Schau dir mal PDFBox, iText, und wie sie alle heißen an.


----------



## Gast2 (26. Jan 2011)

HoaX hat gesagt.:


> Nen PDF is nunmal keine normale Textdatei. Wie kommst du darauf dass es mit FileReader geht?!
> 
> Schau dir mal PDFBox, iText, und wie sie alle heißen an.



Ist mir klar, dass wenn sie komprimiert ist das nicht geht. Ansonsten wärs ja kein Ding...
Das ist die Frage ob das mit denen besser geht?!? Ob man überhaupt Zeilenweise was auslesen kann? Oder davor erst dekomprimieren muss...

EDIT: Mit iText kein Unterschied


```
tInputStream = new FileInputStream("BWB-BVV.pdf");
      tPdfReader = new PdfReader( tInputStream );
      String tContent = new String( tPdfReader.getPageContent( 1 ) );
      System.out.println( tContent );
```


----------



## HoaX (26. Jan 2011)

Klar dass es nicht geht wenn du einfach auf gut Glück Methoden aufrufst. 

Probiers doch mal damit: iText in Action: example part4.chapter15.ExtractPageContent


----------



## Guybrush Threepwood (26. Jan 2011)

iText ist v. a. dort stark, wo es darum geht, PDF-Dokumente zu generieren. Zur Darstellung kann man beispielsweise den PDFRenderer verwenden oder ICEPDF, um Text auszulesen und das Dokument zu manipulieren geht Apache FOP. Mit Standardmitteln kann Java zunächst nur wenig mit PDF anfangen.

(Nachträglicher Edit: Ich meinte nicht Apache FOP, sondern PDFBox)


----------



## Gast2 (27. Jan 2011)

Ja will nur Daten auslesen ich brauch das PDF nicht darstellen. Versuch jetzt mal iText!


----------



## scue (1. Feb 2011)

bist du zur einer lösung gekommen? die würde mich auch interessieren.


----------



## Gast2 (2. Feb 2011)

Ja mit iText bekommst halt nur PlainText raus wenn du den gescheit auswerten kannst, kannst den Link von oben benutzen. Ansonsten musst eine andere libary suchen die dir gescheite Objekte zurück liefert.


----------



## HoaX (2. Feb 2011)

Du kannst auch mittels iText den Objektbaum im PDF durchgehen. Ist halt bissl aufwendig, aber das wird es mit jeder anderen Lib sicherlich auch.


----------



## Gast2 (2. Feb 2011)

HoaX hat gesagt.:


> Du kannst auch mittels iText den Objektbaum im PDF durchgehen. Ist halt bissl aufwendig, aber das wird es mit jeder anderen Lib sicherlich auch.



Ah okay wusste ich nicht. Hab jetzt so wie im oben genannten Link gemacht.
String parsen ist halt häßlich wenn sich der Aufbau der Daten mal ändert. Da wäre es wahrscheinlich mit Objekten schon schöner und sicherer.


----------

