# Eigenschaften von PDF-Dateien auslesen



## DjMik (26. September 2009)

Hallo zusammen.
Ich bin gerade dabei, mir mit Java ein Programm zu schreiben.
Dieses Programm soll in einem Ordner alle PDF-Dateien auslesen und zählen, wieviele Seiten ausgedruckt werden müssen.
Außerdem soll noch gezählt werden, wie viele davon SW oder Farbe sind und welche Formate (DIN-A4 usw) vorkommen.

Naja, ich habe leider nur keine Ahnung, wie ich mit Java an diese Infos im PDF kommen soll.
Weiß vielleicht jemand, wie man das Format und SW / Farbe auslesen kann?
Ich wäre euch dankbar, wenn ihr mir weiterhelfen könntet.

Freundliche Grüße,
DjMik


----------



## Flokati (28. September 2009)

Hi!

Würde mich auch interessieren!


----------



## vfl_freak (28. September 2009)

Moin,

hier findet ihr eine PDF-Referenz:
http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf

Da würde ich erstmal die Werte suchen, die Ihr sucht/benötigt.

Ob resp. wie man sie dann mit Java auslesen kann, weiß ich leider nicht! 
Event. findet ihr hierzu ein Tool über 
mögliche Stichworte wären vielleicht "PDF Document Format Java" 

Gruß
Klaus


----------



## Tomek_FFM (29. September 2009)

Hallo,
schau Dir mal iText an: http://www.lowagie.com/iText/

Gruß
Tomek


----------



## HonniCilest (30. September 2009)

Hi,

Kollegen von mir haben mal ein Programm geschrieben, dass die Anzahl der Seiten aller PDF-Dokumente in einem Ordner in eine Datei geschrieben hat. 

Was ich noch genau weiß ist, dass sie PDF-Box genutzt haben. Dazu mussten alle Dateien im gegebenen Ordner geparsed werden. Waren diese Dateien keine PDF-Dateien, so wurde dort eine Exception geworfen. Natürlich könnte man auch den Weg gehen, den Dateinamen auf die Endung .pdf zu überprüfen, was dann aber Beispielsweise endungslose Dateien außer Acht lassen würde, aber auch crashen würde, wenn ein Dummi z.B. eine Bilddatei einfach in eine .pdf umbenennen würde ^^.

Gruß
HonniCilest

Edit:

Ich glaube die wichtigen Zeilen für die Seitenanzahl waren etwa so:


```
PDFParser parser = new PDFParser(new FileInputStream(new File(path)));
parser.parse();
PDDocument doc = parser.getPDDocument();
System.out.println("Seitenanzahl: "+doc.getNumberOfPages());
```

Und dies dementsprechend auch für andere Eigenschaften wir Höhe, Breite etc.

Edit2:

Ich hab mal ein wneig in den PDF-Box docs auf deren Homepage rumgestöbert und Befehle gefunden, die positiv aussehen um die Abmessungen herauszubekommen.

Class PDDocument:
PageFormat getPageFormat(int pageIndex) 

Class PageFormat:
double getWidth() 
double getHeight()

-> TODO Beantworten der Frage: entsprechen die Abmessungen einem genormten Format?


----------



## DjMik (30. September 2009)

Hi Leute.

Vielen Dank für eure (besonders HonniCilest) Antworten, damit kann ich schonmal viel anfangen.

Also ich habe hier auf tutorials.de nach PDF gesucht und garnichts gefunden (noch nichtmal jetzt )
Muss man etwa auf irgendwelche details bei der Suche achten?

@vfl_freak: Ja die PDF-Referenz habe ich nach langem Suchen schon gefunden.
Ich muss aber zugeben, dass ich zu faul bin, um 1300 Seiten durchzuwühlen ^^
Aber vllt werde ich da mal einen Blick rein werfen, kann bestimmt nicht schaden.

Ok das mit der PDF-Box hört sich schonmal super an.
Das werde ich am Wochenende auf jeden Fall alles mal Testen.

Bei iText gucke ich auch mal rein.

MfG
DjMik


----------

