Sådan læser du PDF-fil i Java

Kvinde, der arbejder på et kontor

Billedkredit: Pixland/Pixland/Getty Images

Det er ikke svært at læse PDF-filer i Java ved hjælp af biblioteker, der er let tilgængelige. Læsning af PDF-filer giver dig mulighed for at skrive Java-programmer, der kan behandle teksten i disse filer. En mulighed for at læse PDF-filer er det gratis, open source PDFBox-bibliotek, der er tilgængeligt fra Apache. Eclipse Java-udviklingsplatformen gør dette job lettere og administrerer de biblioteker, du vil downloade. Du skal være fortrolig med Java-programmering for at kunne bruge disse Java-biblioteker.

Saml nødvendige biblioteker

Trin 1

Download Java JDK fra Suns hjemmeside. Dette er en eksekverbar fil, som du kan installere på dit system ved at køre den. Versioner er tilgængelige til Windows, Mac og Linux. Klik på den røde "Download" knap. Gem en fil kaldet "jdk-6uxx-windows-xxx.exe", når du bliver bedt om det. Gem denne fil, og dobbeltklik derefter på den for at starte Java-installationsprogrammet.

Dagens video

Trin 2

Download Eclipse-udviklingssystemet og pak det ud i en mappe på øverste niveau. Vælg "Eclipse IDE for Java Developers." Dette vil starte download af "eclipse-java-galileo-SR2-win32.zip." Dobbeltklik på filen for at pakke den ud, når overførslen er fuldført. Vælg "C:"-rodmappen for at udpakke Eclipse.

Trin 3

Start Eclipse ved at dobbeltklikke på "eclipse.exe" i den mappe, du lige har oprettet ved at pakke eclipse zip-filen ud. I Eclipse-systemet skal du oprette et projekt med navnet "PrintPdf." Vælg "Filer" derefter "Ny" og derefter "Java-projekt". Indtast projektnavnet "PrintPdf" i dialogboksen, der vises. Sørg for, at alternativknappen er valgt, der siger "Opret separate mapper til kilde- og klassefiler." Klik på "Udfør".

Trin 4

Opret en "lib"-mappe i dit "PrintPdf"-projekt. Højreklik på "PrintPdf"-projektet og vælg "Ny" og derefter "Mappe". Indtast navnet "lib" og klik på "Udfør".

Trin 5

Download Apache "PDFBox.jar" fra Apache-webstedet og kopier det til lib-mappen, du lige har oprettet. På den samme webside skal du downloade filen "fontbox-nn.jar" og filen "jempbox-nn.jar". I hvert tilfælde, når du klikker på den jar-fil, fører den dig til en side, hvor du kan vælge en af ​​flere servere, der kan levere denne fil. Vælg hver af dem, og hver jar-fil downloades. Kopier hver jar-fil til den lib-mappe, du lige har oprettet.

Trin 6

Download Apache log4j.jar-pakken på samme måde og kopier log4j.jar-filen ind i mappen. Apache PDFBox-biblioteket bruger dette Apache-logbibliotek, så denne fil skal være til stede.

Trin 7

Download Apache Commons Discovery-pakken som en zip-fil. Dobbeltklik på zip-filen, vælg "commons-discovery-nn.jar" og pak den ud i biblioteket lib.

Trin 8

I Eclipse skal du klikke på mappen "lib" og trykke på "F5". Sørg for, at alle de jar-filer, du tilføjede, vises.

Trin 9

Højreklik på PrintPDF-projektet og vælg "Egenskaber". Vælg "Java Build Path" og vælg fanen "Libraries". Klik på "Tilføj krukker" og gå til den lib-mappe, du lige har oprettet, og tilføj "commons-logging-nn.jar", "fontbox-nn.jar", "jempbox-nn.jar," "log4j-nn.jar ," og "pdfbox-nn.jar." Klik på "OK".

Skriv koden for at læse PDF'er

Trin 1

Højreklik på mappen "src" i dit "PrintPDF"-projekt, og vælg "Ny" og "Pakke". Opret en pakke med et hvilket som helst meningsfuldt navn. Navngiv f.eks. pakken "com.pdf.util." Klik på "Udfør".

Trin 2

Højreklik på det pakkenavn, du lige har oprettet, og vælg "Ny" og derefter "Klasse". Opret en klasse med navnet "PDFTextParser." Sørg for at klikke på afkrydsningsfeltet "public static void main...", så systemet vil oprette en "hovedmetoden".

Trin 3

Rediger "main"-metoden i klassen "PDFTextParser" for at indeholde følgende kode:

public static void main (String args[]){ PDFTextParser pdf = new PDFTextParser("data/javaPDF.pdf") GO //print out results System.out.println (pdf.getParsedText()) GO }

Bemærk, at den fil, du ønsker at udskrive, er stavet i constructoren til PDFTextParser ("data/JavaPDF.pdf"). Det kunne lige så nemt være et kommandolinjeargument:

PDFTextParser pdf = ny PDFTextParser (argv[0])

eller valgt fra en GUI-grænseflade.

Den opretter en forekomst af PDFTextParser-klassen og kalder derefter dens "getParsedText"-metode.

Trin 4

Indsæt følgende kode lige under topklasselinjen "offentlig klasse PDFTextParser", der blev oprettet til dig.

privat PDFParser-parser = null GO

// Uddrag tekst fra PDF-dokument. public PDFTextParser (String fileName) { File file = new File (fileName)

GO if (!file.isFile()) { System.err.println("Fil " + filnavn + " eksisterer ikke.") GO } //Konfigurer forekomst af PDF-parser prøv { parser = new PDFParser (ny FileInputStream (fil)) GO } catch (IOException e) { System.err.println("Kan ikke åbne PDF Parser. " + e.getMessage()) GO } } // public String getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
String parsedText = null; GÅ

prøv { PDFTextStripper pdfStripper = new PDFTextStripper()

GO parser.parse() GO cosDoc = parser.getDocument() GO pdDoc = nyt PDDocument (cosDoc) GO

//hent liste over alle sider List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

//bemærk at du kan udskrive hvilke sider du ønsker //ved at vælge forskellige værdier på start- og slutsiden pdfStripper.setStartPage (1); //1-baseret int længde = liste.størrelse(); //samlet antal sider pdfStripper.setEndPage (længde); //sidste side //hent teksten til de valgte sider parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("En undtagelse opstod ved parsing af PDF-dokumentet." + e.getMessage()) GO } endelig { prøv { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
returner parsedText GO }

Trin 5

Kør programmet. Højreklik på PDFTextParser-klassen og klik på "Kør som" og derefter på "Java-program". Programmet skal køre og udskrive tekstindholdet i den PDF-fil, du indtastede i din kode.

Undertryk Log4j Startup Fejlmeddelelse

Trin 1

Opret en konfigurationsfil for at undertrykke Java log4j-fejlmeddelelsen, der oprettes, når den ikke kan finde en konfigurationsfil, når den starter. Højreklik på mappen "src" i PrintPDF-projektet og vælg "Ny" og derefter "Filer". Navngiv filen "log4j.properties" Eclipse vil vise en tom skærm for denne nye fil.

Trin 2

Indsæt følgende linjer i den tomme skærm, der repræsenterer filen "log4j.properties".

Trin 3

Gem filen "log4j.properties". Tilstedeværelsen af ​​denne fil i "src"-mappen på øverste niveau vil undertrykke log4j-startmeddelelsen og alle trivielle logningsmeddelelser. log4j-systemet udskriver kun faktiske fejl.

Tip

Der er også en række kommercielle pakker, som du kan bruge til at udtrække tekst fra PDF-filer, men de er ikke billige.