Bildnachweis: Pixland/Pixland/Getty Images
Es ist nicht schwer, PDF-Dateien in Java mit leicht verfügbaren Bibliotheken zu lesen. Durch das Lesen von PDF-Dateien können Sie Java-Programme schreiben, die den Text in diesen Dateien verarbeiten können. Eine Möglichkeit zum Lesen von PDF-Dateien ist die kostenlose Open-Source-Bibliothek PDFBox von Apache. Die Eclipse-Java-Entwicklungsplattform erleichtert diese Aufgabe und verwaltet die Bibliotheken, die Sie herunterladen werden. Sie müssen mit der Java-Programmierung vertraut sein, um diese Java-Bibliotheken verwenden zu können.
Sammeln Sie benötigte Bibliotheken
Schritt 1
Laden Sie das Java JDK von der Sun-Website herunter. Dies ist eine ausführbare Datei, die Sie auf Ihrem System installieren können, indem Sie sie ausführen. Versionen sind für Windows, Mac und Linux verfügbar. Klicken Sie auf den roten „Download“-Button. Speichern Sie eine Datei namens "jdk-6uxx-windows-xxx.exe", wenn Sie dazu aufgefordert werden. Speichern Sie diese Datei und doppelklicken Sie dann darauf, um das Java-Installationsprogramm zu starten.
Video des Tages
Schritt 2
Laden Sie das Eclipse-Entwicklungssystem herunter und entpacken Sie es in ein Verzeichnis der obersten Ebene. Wählen Sie "Eclipse-IDE für Java-Entwickler". Dadurch wird der Download von "eclipse-java-galileo-SR2-win32.zip" gestartet. Doppelklicken Sie auf die Datei, um sie nach Abschluss des Downloads zu entpacken. Wählen Sie den Speicherort des Stammverzeichnisses "C:", um Eclipse zu entpacken.
Schritt 3
Starten Sie Eclipse durch Doppelklick auf "eclipse.exe" in dem Verzeichnis, das Sie gerade durch Entpacken der Eclipse-Zip-Datei erstellt haben. Erstellen Sie im Eclipse-System ein Projekt mit dem Namen "PrintPdf". Wählen Sie "Datei", dann "Neu" und dann "Java-Projekt". Geben Sie im angezeigten Dialogfeld den Projektnamen "PrintPdf" ein. Stellen Sie sicher, dass das Optionsfeld "Getrennte Ordner für Quell- und Klassendateien erstellen" ausgewählt ist. Klicken Sie auf "Fertig stellen".
Schritt 4
Erstellen Sie in Ihrem Projekt "PrintPdf" einen Ordner "lib". Klicken Sie mit der rechten Maustaste auf das Projekt "PrintPdf" und wählen Sie "Neu" und dann "Ordner". Geben Sie den Namen "lib" ein und klicken Sie auf "Fertig stellen".
Schritt 5
Laden Sie Apache "PDFBox.jar" von der Apache-Site herunter und kopieren Sie es in das soeben erstellte lib-Verzeichnis. Laden Sie auf derselben Webseite die Datei "fontbox-nn.jar" und die Datei "jempbox-nn.jar" herunter. Wenn Sie auf diese JAR-Datei klicken, gelangen Sie in jedem Fall zu einer Seite, auf der Sie einen von mehreren Servern auswählen können, die diese Datei bereitstellen können. Wählen Sie jeden von ihnen aus und jede JAR-Datei wird heruntergeladen. Kopieren Sie jede JAR-Datei in das soeben erstellte lib-Verzeichnis.
Schritt 6
Laden Sie das Apache-Paket log4j.jar auf die gleiche Weise herunter und kopieren Sie die Datei log4j.jar in das Verzeichnis. Die Apache PDFBox-Bibliothek verwendet diese Apache-Protokollierungsbibliothek, daher muss diese Datei vorhanden sein.
Schritt 7
Laden Sie das Apache Commons Discovery-Paket als ZIP-Datei herunter. Doppelklicken Sie auf die Zip-Datei, wählen Sie die "commons-discovery-nn.jar" aus und entpacken Sie diese in das lib-Verzeichnis.
Schritt 8
Klicken Sie in Eclipse auf das Verzeichnis "lib" und drücken Sie "F5". Stellen Sie sicher, dass alle hinzugefügten JAR-Dateien angezeigt werden.
Schritt 9
Klicken Sie mit der rechten Maustaste auf das PrintPDF-Projekt und wählen Sie "Eigenschaften". Wählen Sie "Java-Build-Pfad" und wählen Sie die Registerkarte "Bibliotheken". Klicken Sie auf „Jars hinzufügen“ und gehen Sie in das soeben erstellte lib-Verzeichnis und fügen Sie „commons-logging-nn.jar“, „fontbox-nn.jar“, „jempbox-nn.jar“, „log4j-nn.jar“ hinzu ," und "pdfbox-nn.jar." Klicken Sie auf "OK".
Schreiben Sie den Code zum Lesen von PDFs
Schritt 1
Klicken Sie mit der rechten Maustaste auf den Ordner "src" Ihres "PrintPDF"-Projekts und wählen Sie "Neu" und das "Paket". Erstellen Sie ein Paket mit einem beliebigen aussagekräftigen Namen. Benennen Sie das Paket beispielsweise "com.pdf.util". Klicken Sie auf "Fertig stellen".
Schritt 2
Klicken Sie mit der rechten Maustaste auf den soeben erstellten Paketnamen und wählen Sie "Neu" und dann "Klasse". Erstellen Sie eine Klasse namens "PDFTextParser." Achten Sie darauf, das Kontrollkästchen mit der Markierung "öffentliche statische Leere Haupt..." anzuklicken, damit das System eine "Haupt"-Methode.
Schritt 3
Bearbeiten Sie die Methode "main" in der Klasse "PDFTextParser" so, dass sie den folgenden Code enthält:
public static void main (String args[]){ PDFTextParser pdf = new PDFTextParser("data/javaPDF.pdf") GO //Ergebnisse ausdrucken System.out.println (pdf.getParsedText()) GO }
Beachten Sie, dass die auszudruckende Datei im Konstruktor von PDFTextParser ("data/JavaPDF.pdf") buchstabiert wird. Es könnte genauso gut ein Befehlszeilenargument sein:
PDFTextParser pdf = neuer PDFTextParser (argv[0])
GEHEN
oder von einer GUI-Schnittstelle ausgewählt.
Es erstellt eine Instanz der PDFTextParser-Klasse und ruft dann deren Methode "getParsedText" auf.
Schritt 4
Fügen Sie den folgenden Code direkt unter der für Sie erstellten Top-Class-Zeile "public class PDFTextParser" ein.
privater PDFParser-Parser = null GO
// Text aus PDF-Dokument extrahieren. public PDFTextParser (String fileName) { File file = new File (fileName)
GO if (!file.isFile()) { System.err.println("Datei" + fileName + "existiert nicht.") GO} //Instanz des PDF-Parsers einrichten try { Parser = new PDFParser (new FileInputStream (file)) GO } catch (IOException e) { System.err.println("PDF kann nicht geöffnet werden Parser. " + e.getMessage()) GO } } // public String getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
String parsedText = null; GEHEN
try { PDFTextStripper pdfStripper = new PDFTextStripper()
GO parser.parse() GO cosDoc = parser.getDocument() GO pdDoc = neues PDDocument (cosDoc) GO
//Liste aller Seiten abrufen Listlist = pdDoc.getDocumentCatalog().getAllPages()
GEHEN
//beachten Sie, dass Sie beliebige Seiten ausdrucken können, //indem Sie verschiedene Werte für die Start- und Endseite wählen pdfStripper.setStartPage (1); //1-basierte int length = list.size(); //Gesamtzahl der Seiten pdfStripper.setEndPage (Länge); //letzte Seite //Text für die ausgewählten Seiten abrufen parsedText = pdfStripper.getText (pdDoc)
GO } catch (IOException e) { System.err .println("Beim Parsen des PDF-Dokuments ist eine Ausnahme aufgetreten." + e.getMessage()) GO } finally { try { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
parsedText zurückgeben GO }
Schritt 5
Führen Sie das Programm aus. Klicken Sie mit der rechten Maustaste auf die PDFTextParser-Klasse und klicken Sie auf "Ausführen als" und dann auf "Java-Programm". Das Programm sollte laufen und den Textinhalt der PDF-Datei ausdrucken, die Sie in Ihren Code eingegeben haben.
Log4j-Startfehlermeldung unterdrücken
Schritt 1
Erstellen Sie eine Konfigurationsdatei, um die Fehlermeldung log4j des Java-Protokollierungssystems zu unterdrücken, die erstellt wird, wenn beim Start keine Konfigurationsdatei gefunden wird. Klicken Sie mit der rechten Maustaste auf den Ordner "src" des PrintPDF-Projekts und wählen Sie "Neu" und dann "Datei". Benennen Sie die Datei "log4j.properties". Eclipse zeigt einen leeren Bildschirm für diese neue Datei an.
Schritt 2
Fügen Sie die folgenden Zeilen in den leeren Bildschirm ein, der die Datei "log4j.properties" darstellt.
Schritt 3
Speichern Sie die Datei "log4j.properties". Das Vorhandensein dieser Datei im obersten Verzeichnis "src" unterdrückt die log4j-Startmeldung und alle trivialen Protokollierungsmeldungen. Das log4j-System druckt nur tatsächliche Fehler aus.
Spitze
Es gibt auch eine Reihe von kommerziellen Paketen, mit denen Sie Text aus PDF-Dateien extrahieren können, aber sie sind nicht billig.