Hvordan lese PDF-fil i Java

Hvordan lese PDF-fil i Java


Det er ikke vanskelig å lese PDF-filer i Java som bruker bibliotekene som er lett tilgjengelig. Lese PDF-filer kan du skrive Java-programmer som kan behandle teksten i disse filene. Ett alternativ for å lese PDF-filer er gratis, open-source PDFBox biblioteket tilgjengelig fra Apache. Eclipse Java utviklingsplattform Det gjør denne jobben enklere og forvalter bibliotekene blir du laster ned. Du må være kjent med Java-programmering til å gjøre bruk av disse Java-bibliotekene.

Bruksanvisning

Samle Needed biblioteker

1 Last ned Java JDK fra Suns nettsted. Dette er en kjørbar fil som du kan installere på systemet ved å kjøre den. Versjoner er tilgjengelig for Windows, Mac og Linux. Klikk på den røde \ "Last ned \" -knappen. Lagre en fil som heter \ "JDK-6uxx-windows-xxx.exe \" når du blir bedt. Lagre denne filen og dobbeltklikk på den for å starte Java installasjonsprogrammet.

2 Last ned Eclipse utvikling systemet og pakk den inn i en toppkatalog. Velg \ "Eclipse IDE for Java-utviklere. \" Dette vil starte nedlastingen av \ "eclipse-java-galileo-SR2-win32.zip. \" Dobbeltklikk på filen for å pakke den ut etter at nedlastingen er fullført. Velg \ "C: \" root katalogen sted å pakke Eclipse.

3 Begynn Eclipse ved å dobbeltklikke på \ "eclipse.exe \" i katalogen du nettopp opprettet av unzipping formørkelsen zip-fil. I Eclipse-systemet, oppretter et prosjekt som heter \ "PrintPdf. \" Velg \ "Fil \" og deretter \ "nye \" da \ "Java-prosjekt. \" Skriv inn navnet på prosjektet \ "PrintPdf \" i dialogboksen som vises. Sørg for at radioen knappen er valgt som sier \ "Lag egne mapper for kilde og class-filer. \" Klikk \ "Fullfør. \"

4 Lag en \ "lib \" -mappen i din \ "PrintPdf \" -prosjektet. Høyreklikk på \ "PrintPdf \" prosjektet og velg \ "nye \" og deretter \ "mappe. \" Skriv inn navnet \ "lib \" og klikk på \ "Finish. \"

5 Last ned Apache \ "PDFBox.jar \" fra Apache området og kopiere den i det lib katalogen du nettopp opprettet. På samme nettside, laste ned \ "fontbox-nn.jar \" filen og \ "jempbox-nn.jar \" fil. I hvert fall når du klikker på den jar fil, vil det ta deg til en side der du kan velge en av flere servere som kan gi denne filen. Plukk hver av dem og hver jar filen vil laste ned. Kopier hver jar filen inn i lib katalogen du nettopp opprettet.

6 Last ned Apache log4j.jar pakken på samme måte og kopiere log4j.jar filen til katalogen. The Apache PDFBox biblioteket bruker denne Apache logging biblioteket, så denne filen må være til stede.

7 Last ned Apache Commons Discovery pakken som en zip-fil. Dobbeltklikk på zip-filen, velger du \ "commons-oppdagelse-nn.jar \" og pakk den inn i lib.

8 I Eclipse, klikk på \ "lib \" katalog og trykk \ "F5. \" Sørg for at alle jar filene du har lagt vises.

9 Høyreklikk på PrintPDF prosjektet og velg \ "Properties. \" Velg \ "Java Build-bane \" og velg \ "Libraries \" -kategorien. Klikk på \ "Legg krukker \" og gå til lib katalogen du nettopp har opprettet, og legge til \ "commons-logging-nn.jar \" \ "fontbox-nn.jar, \" \ "jempbox-nn.jar, \ "\" log4j-nn.jar, \ "og \" pdfbox-nn.jar. \ "Klikk på \" OK. \ "

Skriv koden til Les PDF-filer

10 Høyreklikk på \ "src \" -mappen på \ "PrintPDF \" prosjektet og velg \ "nye \" og \ "Package. \" Lag en pakke med noe meningsfullt navn. For eksempel nevne pakken \ "com.pdf.util. \" Klikk \ "Fullfør. \"

11 Høyreklikk på pakken navnet du nettopp opprettet, og velg \ "nye \" og deretter \ "Class. \" Lag en klasse som heter \ "PDFTextParser. \" Husk å klikke i boksen merket \ "public static void main. .. \ "slik at systemet vil skape en \" main \ "metoden.

12 Rediger \ "main \" metoden i \ "PDFTextParser \" klassen til å inneholde følgende kode: <br /> <br /> public static void main (String args []) {<br /> PDFTextParser pdf = nye PDFTextParser (\ "data / javaPDF.pdf \") <br /> GO <br /> // skrive ut resultater <br /> System.out.println (pdf.getParsedText ()) <br /> GO <br /> } <br /> <br /> Merk at filen du ønsker å skrive ut er stavet ut i konstruktøren til PDFTextParser (\ "data / JavaPDF.pdf \"). Det kan like gjerne være en kommandolinje argument: <br /> <br /> PDFTextParser pdf = new PDFTextParser (argv [0]) <br /> GÅ <br /> <br /> eller valgt fra et GUI-grensesnitt. <br /> <br /> det skaper en forekomst av PDFTextParser klassen, og deretter kaller sin \ "getParsedText \" metoden.

1. 3 Sett inn følgende kode rett under den øverste klassen linjen \ "public class PDFTextParser \" som ble opprettet for deg. <br /> <br /> Privat PDFParser parser = null <br /> GÅ <br /> <br /> / / Utdrag tekst fra PDF-dokument <br /> offentlig PDFTextParser (String filnavn) {<br /> File fil = new File (filnavn) <br /> GÅ <br /> if (! file.isFile ()) {<br /> System.err.println (\ "Fil \" + filename + \ "finnes ikke. \") <br /> GO <br />} <br /> // Sett opp forekomst av PDF parser <br / > prøve {<br /> parser = new PDFParser (new Fileinputstream (fil)) <br /> GO <br />} catch (IOException e) {<br /> System.err.println (\ "Kan ikke åpne PDF parser. \ "+ e.getMessage ()) <br /> GO <br />} <br />} <br /> // ------------------ ------------- <br /> public String getParsedText () {<br /> PDDocument pdDoc = null <br /> GÅ <br /> COSDocument cosDoc = null; <br /> String parsedText = null; <br /> GÅ <br /> <br /> prøve {<br /> PDFTextStripper pdfStripper = new PDFTextStripper () <br /> GO <br /> parser.parse () < br /> GO <br /> cosDoc = parser.getDocument () <br /> GO <br /> pdDoc = new PDDocument (cosDoc) <br /> GO <br /> <br /> // få oversikt over alle sider <br /> List <PDPage> list = pdDoc.getDocumentCatalog (). getAllPages () <br /> GO <br /> <br /> // oppmerksom på at du kan skrive ut noen sider du vil <br /> / / ved å velge forskjellige verdier av starten og slutten side <br /> pdfStripper.setStartPage (1); // 1-basert <br /> int lengde = list.size (); // Totalt antall sider <br /> pdfStripper.setEndPage (lengde); // Siste side <br /> <br /> // få teksten for de valgte <br /> parsedText = pdfStripper.getText (pdDoc) <br /> GO <br />} catch (IOException e) sider {< br /> System.err <br /> .println (\ "Et unntak skjedde i analyse av PDF-dokument. \" <br /> + e.getMessage ()) <br /> GO <br />} finally {< br /> try {<br /> if (cosDoc! = null) <br /> cosDoc.close () <br /> GÅ <br /> if (pdDoc! = null) <br /> pdDoc.close () <br /> GÅ <br />} catch (IOException e) {<br /> e.printStackTrace () <br /> GO <br />} <br />} <br /> retur parsedText <br /> GÅ <br />}

14 Kjør programmet. Høyreklikk på PDFTextParser klasse og klikk på \ "Kjør som \" og deretter på \ "Java-program. \" Programmet skal løpe og skrive ut teksten innholdet i PDF-filen du skrev inn i koden.

Undertrykk Log4j Oppstart Feilmelding

15 Opprett en konfigurasjonsfil å undertrykke Java logging systemet log4j feilmelding opprettet når den ikke finner en konfigurasjonsfil når den starter opp. Høyreklikk på \ "src \" mappen på PrintPDF prosjektet og velg \ "nye \" og deretter \ "Fil. \" Filnavnet \ "log4j.properties \" Eclipse vil vise en tom skjerm for denne nye filen.

16 Lim inn følgende linjer i den tomme skjermen representerer \ "log4j.properties \" filen. <br /> <br /> # Sett root logger nivå for å feilsøke og dens eneste Appender til A1. <br /> Log4j.rootLogger = WARN , A1 <br /> <br /> # A1 er satt til å være en ConsoleAppender. <br /> log4j.appender.A1 = org.apache.log4j.ConsoleAppender <br /> <br /> # A1 bruker PatternLayout. < br />log4j.appender.A1.layout=org.apache.log4j.PatternLayout <br /> log4j.appender.A1.layout.ConversionPattern =% - 4r [% t]% -5p% c% x -% m% n

17 Lagre "\ log4j.properties" filen \. Tilstedeværelsen av denne filen i topp-nivå \ "src \" katalog vil undertrykke log4j oppstartsmeldingen og eventuelle trivielle logging meldinger. Den log4j Systemet vil skrive ut bare faktiske feil.

Hint

  • Det finnes også en rekke kommersielle pakker som du kan bruke til å trekke ut tekst fra PDF-filer, men de er ikke billig.