Tuesday, 20. May 2008 18:45
Um Informationen aus PDF-Dateien zu extrahieren, PDF-Dateien mittels Java zu erstellen oder um unter Java drucken zu können eignet sich die mächtige Bibliothek PDFBox.
Nach dieser Anleitung lässt sie sich recht leicht verwenden:
1. Man läd sich die aktuelle Version bei Sourceforge herunter (in diesem Beispiel wurde die 0.73er verwendet):
Kommandozeilen Programme finden
2a. Im Ordner bin befinden sich Kommandozeilen-Programme mit denen man pdf Dateien verschlüsseln, entschlüsseln, die Bilder oder den Text aus der PDF-Datei extrahieren kann. Wer keine Java Programmierkenntnisse hat kann die fertigen Programme einfach über die Kommandozeile ausführen. Zuvor muss das Archiv natürlich entpackt werden. Mehr Informationen dazu findet man auf der PDFBox Webseite unter Command Line Utilities.
Die Einbindung der Bibliothek in Java Eclipse Projekte (Beispielhaft für Windows)
2b. Wer die Bibliotheken benötigt um eigene Software zu schreiben, extrahiert aus dem heruntergeladene ZIP-Archiv einfach die .jar-Datei aus dem lib Verzeichnis. Diese Datei kann man nun zum Beispiel in das Plugin-Verzeichnis von Eclipse kopieren.
3b. In Eclipse erstellen wir ein neues Projekt und geben in den “Projekt Java Settings” unter dem Reiter “Jars” (am einfachsten gelangt man bei bereits bestehenden Projekten dahin, wenn man das Projekt im Baum anklickt und auf Properties->Java-Build-Path->Libraries klickt) mithilfe des Buttons “Add-External-Jars” suchen wir die Jar-Datei im Eclipse/Plugin Verzeichnis und fügen sie der Liste hinzu (hätten wir die .jar Datei ins Projektverzeichnis kopiert kann man auch mit “Add Jars” arbeiten).
4b. Wir legen eine Klasse zum Testen an. Wer mag kann hier ein fertiges Beispiel aus dem heruntergeladenem ZIP-Archiv verwenden. Die Beispiele befinden sich im Ordner /src/examples/
Meistens findet man bereits ein Beispiel was recht gut zu dem passt was man vor hat. Bei den Beispielen sollte man aber nicht vergessen, den Namen der zu bearbeitenden PDF Datei als Übergabeparameter an die Klasse zu übergeben ;).