Hur man läser en PDF-fil i Java

click fraud protection
Kvinna som arbetar på ett kontor

Bildkredit: Pixland/Pixland/Getty Images

Det är inte svårt att läsa PDF-filer i Java med hjälp av bibliotek som är lättillgängliga. Genom att läsa PDF-filer kan du skriva Java-program som kan bearbeta texten i dessa filer. Ett alternativ för att läsa PDF-filer är det kostnadsfria PDFBox-biblioteket med öppen källkod som är tillgängligt från Apache. Eclipse Java-utvecklingsplattformen gör det här jobbet enklare och hanterar biblioteken du ska ladda ner. Du måste vara bekant med Java-programmering för att kunna använda dessa Java-bibliotek.

Samla nödvändiga bibliotek

Steg 1

Ladda ner Java JDK från Suns webbplats. Detta är en körbar fil som du kan installera på ditt system genom att köra den. Versioner finns tillgängliga för Windows, Mac och Linux. Klicka på den röda knappen "Ladda ner". Spara en fil som heter "jdk-6uxx-windows-xxx.exe" när du uppmanas att göra det. Spara den här filen och dubbelklicka sedan på den för att starta Java-installationsprogrammet.

Dagens video

Steg 2

Ladda ner utvecklingssystemet Eclipse och packa upp det i en katalog på toppnivå. Välj "Eclipse IDE för Java-utvecklare." Detta startar nedladdningen av "eclipse-java-galileo-SR2-win32.zip." Dubbelklicka på filen för att packa upp den när nedladdningen är klar. Välj "C:" rotkatalogen för att packa upp Eclipse.

Steg 3

Starta Eclipse genom att dubbelklicka på "eclipse.exe" i katalogen du just skapade genom att packa upp eclipse zip-filen. Skapa ett projekt med namnet "PrintPdf" i Eclipse-systemet. Välj "Arkiv" sedan "Nytt" och sedan "Java-projekt". Skriv in projektnamnet "PrintPdf" i dialogrutan som visas. Se till att alternativknappen är markerad som säger "Skapa separata mappar för käll- och klassfiler." Klicka på "Slutför".

Steg 4

Skapa en "lib"-mapp i ditt "PrintPdf"-projekt. Högerklicka på "PrintPdf"-projektet och välj "Ny" och sedan "Mapp". Ange namnet "lib" och klicka på "Slutför".

Steg 5

Ladda ner Apache "PDFBox.jar" från Apache-webbplatsen och kopiera den till lib-katalogen du just skapade. På samma webbsida laddar du ner filen "fontbox-nn.jar" och filen "jempbox-nn.jar". I varje fall, när du klickar på den jar-filen, tar den dig till en sida där du kan välja en av flera servrar som kan tillhandahålla den här filen. Välj var och en av dem och varje jar-fil laddas ner. Kopiera varje jar-fil till lib-katalogen du just skapade.

Steg 6

Ladda ner Apache log4j.jar-paketet på samma sätt och kopiera log4j.jar-filen till katalogen. Apache PDFBox-biblioteket använder detta Apache-loggningsbibliotek, så den här filen måste finnas.

Steg 7

Ladda ner Apache Commons Discovery-paketet som en zip-fil. Dubbelklicka på zip-filen, välj "commons-discovery-nn.jar" och extrahera den i lib-katalogen.

Steg 8

I Eclipse klickar du på katalogen "lib" och trycker på "F5". Se till att alla jar-filer du lagt till visas.

Steg 9

Högerklicka på PrintPDF-projektet och välj "Egenskaper". Välj "Java Build Path" och välj fliken "Libraries". Klicka på "Lägg till jars" och gå till lib-katalogen du just har skapat och lägg till "commons-logging-nn.jar", "fontbox-nn.jar", "jempbox-nn.jar", "log4j-nn.jar" ," och "pdfbox-nn.jar." Klicka på "OK".

Skriv koden för att läsa PDF-filer

Steg 1

Högerklicka på mappen "src" i ditt "PrintPDF"-projekt och välj "Nytt" och "Paket". Skapa ett paket med valfritt meningsfullt namn. Döp till exempel paketet "com.pdf.util." Klicka på "Slutför".

Steg 2

Högerklicka på paketnamnet du just skapade och välj "Ny" och sedan "Klass". Skapa en klass med namnet "PDFTextParser." Se till att klicka på kryssrutan märkt "public static void main..." så att systemet skapar en "huvudmetod".

Steg 3

Redigera "main"-metoden i klassen "PDFTextParser" så att den innehåller följande kod:

public static void main (String args[]){ PDFTextParser pdf = new PDFTextParser("data/javaPDF.pdf") GÅ //skriv ut resultat System.out.println (pdf.getParsedText()) GÅ }

Observera att filen du vill skriva ut stavas i konstruktorn till PDFTextParser ("data/JavaPDF.pdf"). Det kan lika gärna vara ett kommandoradsargument:

PDFTextParser pdf = ny PDFTextParser (argv[0])

eller väljs från ett GUI-gränssnitt.

Den skapar en instans av klassen PDFTextParser och anropar sedan dess "getParsedText"-metod.

Steg 4

Infoga följande kod precis under toppklassraden "public class PDFTextParser" som skapades åt dig.

privat PDFParser-parser = null GO

// Extrahera text från PDF-dokument. public PDFTextParser (String fileName) { File file = new File (fileName)

GO if (!file.isFile()) { System.err.println("Fil " + filnamn + " existerar inte.") GO } //Set up instans av PDF-parser försök { parser = new PDFParser (new FileInputStream (fil)) GO } catch (IOException e) { System.err.println("Det går inte att öppna PDF Parser. " + e.getMessage()) GO } } // public String getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
String parsedText = null; GÅ

prova { PDFTextStripper pdfStripper = new PDFTextStripper()

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

//få lista över alla sidor List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

//observera att du kan skriva ut vilka sidor du vill //genom att välja olika värden på start- och slutsidan pdfStripper.setStartPage (1); //1-baserad int längd = list.size(); //totalt antal sidor pdfStripper.setEndPage (längd); //sista sidan //hämta texten för de valda sidorna parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("Ett undantag inträffade vid analys av PDF-dokumentet." + e.getMessage()) GO } slutligen { try { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
returnera parsedText GO }

Steg 5

Kör programmet. Högerklicka på PDFTextParser-klassen och klicka på "Kör som" och sedan på "Java-program". Programmet bör köras och skriva ut textinnehållet i PDF-filen du skrev in i din kod.

Undertryck Log4j-startfelmeddelande

Steg 1

Skapa en konfigurationsfil för att undertrycka Java-loggningssystemet log4j-felmeddelandet som skapas när det inte kan hitta en konfigurationsfil när det startar. Högerklicka på mappen "src" i PrintPDF-projektet och välj "Ny" och sedan "Arkiv". Namnge filen "log4j.properties" Eclipse kommer att visa en tom skärm för denna nya fil.

Steg 2

Klistra in följande rader i den tomma skärmen som representerar filen "log4j.properties".

Steg 3

Spara filen "log4j.properties". Närvaron av den här filen i "src"-katalogen på översta nivån kommer att undertrycka log4j-startmeddelandet och alla triviala loggningsmeddelanden. log4j-systemet kommer endast att skriva ut faktiska fel.

Dricks

Det finns också ett antal kommersiella paket som du kan använda för att extrahera text från PDF-filer, men de är inte billiga.