Bildekreditt: Pixland/Pixland/Getty Images
Det er ikke vanskelig å lese PDF-filer i Java ved hjelp av biblioteker som er lett tilgjengelige. Ved å lese PDF-filer kan du skrive Java-programmer som kan behandle teksten i disse filene. Et alternativ for å lese PDF-filer er det gratis, åpen kildekode PDFBox-biblioteket tilgjengelig fra Apache. Eclipse Java-utviklingsplattformen gjør denne jobben enklere og administrerer bibliotekene du skal laste ned. Du må være kjent med Java-programmering for å kunne bruke disse Java-bibliotekene.
Samle nødvendige biblioteker
Trinn 1
Last ned Java JDK fra Suns nettsted. Dette er en kjørbar fil som du kan installere på systemet ditt ved å kjøre den. Versjoner er tilgjengelige for Windows, Mac og Linux. Klikk på den røde "Last ned"-knappen. Lagre en fil kalt "jdk-6uxx-windows-xxx.exe" når du blir bedt om det. Lagre denne filen og dobbeltklikk på den for å starte Java-installasjonsprogrammet.
Dagens video
Steg 2
Last ned Eclipse-utviklingssystemet og pakk det ut i en katalog på toppnivå. Velg "Eclipse IDE for Java Developers." 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:" rotkatalogplasseringen for å pakke ut Eclipse.
Trinn 3
Start Eclipse ved å dobbeltklikke på "eclipse.exe" i katalogen du nettopp opprettet ved å pakke ut eclipse zip-filen. I Eclipse-systemet oppretter du et prosjekt som heter "PrintPdf." Velg "Fil" og deretter "Ny" og deretter "Java-prosjekt". Skriv inn prosjektnavnet "PrintPdf" i dialogboksen som vises. Pass på at alternativknappen er valgt som sier "Opprett separate mapper for kilde- og klassefiler." Klikk "Fullfør".
Trinn 4
Opprett en "lib"-mappe i "PrintPdf"-prosjektet ditt. Høyreklikk på "PrintPdf"-prosjektet og velg "Ny" og deretter "Mappe". Skriv inn navnet "lib" og klikk på "Fullfør".
Trinn 5
Last ned Apache "PDFBox.jar" fra Apache-siden og kopier den til lib-katalogen du nettopp opprettet. Last ned "fontbox-nn.jar"-filen og "jempbox-nn.jar"-filen på samme nettside. I hvert tilfelle, når du klikker på den jar-filen, vil den ta deg til en side der du kan velge en av flere servere som kan levere denne filen. Velg hver av dem og hver jar-fil vil lastes ned. Kopier hver jar-fil til lib-katalogen du nettopp opprettet.
Trinn 6
Last ned Apache log4j.jar-pakken på samme måte og kopier log4j.jar-filen inn i katalogen. Apache PDFBox-biblioteket bruker dette Apache-loggingsbiblioteket, så denne filen må være til stede.
Trinn 7
Last ned Apache Commons Discovery-pakken som en zip-fil. Dobbeltklikk på zip-filen, velg "commons-discovery-nn.jar" og pakk den ut i lib-katalogen.
Trinn 8
I Eclipse, klikk på "lib"-katalogen og trykk "F5". Sørg for at alle jar-filene du har lagt til vises.
Trinn 9
Høyreklikk på PrintPDF-prosjektet og velg "Egenskaper". Velg "Java Build Path" og velg "Libraries"-fanen. Klikk på "Legg til krukker" og gå til lib-katalogen du nettopp har opprettet, og legg til "commons-logging-nn.jar", "fontbox-nn.jar", "jempbox-nn.jar," "log4j-nn.jar ," og "pdfbox-nn.jar." Klikk på "OK".
Skriv koden for å lese PDF-er
Trinn 1
Høyreklikk på "src"-mappen til "PrintPDF"-prosjektet og velg "Ny" og "Pakke". Lag en pakke med et hvilket som helst meningsfullt navn. Gi for eksempel navnet "com.pdf.util." Klikk "Fullfør".
Steg 2
Høyreklikk på pakkenavnet du nettopp opprettet og velg "Ny" og deretter "Klasse". Lag en klasse som heter "PDFTextParser." Pass på å klikke på avmerkingsboksen merket "public static void main..." slik at systemet vil opprette en "hovedmetoden".
Trinn 3
Rediger "hoved"-metoden i klassen "PDFTextParser" for å inneholde 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 }
Merk at filen du ønsker å skrive ut er stavet i konstruktøren til PDFTextParser ("data/JavaPDF.pdf"). Det kan like gjerne være et kommandolinjeargument:
PDFTextParser pdf = ny PDFTextParser (argv[0])
GÅ
eller valgt fra et GUI-grensesnitt.
Den oppretter en forekomst av PDFTextParser-klassen, og kaller deretter "getParsedText"-metoden.
Trinn 4
Sett inn følgende kode rett under toppklassen "public class PDFTextParser" som ble opprettet for deg.
privat PDFParser-parser = null GO
// Trekk ut 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 } //Sett opp forekomst av PDF-parser prøv { parser = new PDFParser (ny FileInputStream (fil)) GO } catch (IOException e) { System.err.println("Kan ikke åpne 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 = nytt PDDocument (cosDoc) GO
//få liste over alle sider List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()
GÅ
//merk at du kan skrive ut hvilke sider du vil //ved å velge forskjellige verdier på start- og sluttsiden pdfStripper.setStartPage (1); //1-basert int lengde = liste.størrelse(); //totalt antall sider pdfStripper.setEndPage (lengde); //siste side //hent teksten for sidene som er valgt parsedText = pdfStripper.getText (pdDoc)
GO } catch (IOException e) { System.err .println("Et unntak skjedde ved parsing av PDF-dokumentet." + e.getMessage()) GO } til slutt { prøv { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
returner parsedText GO }
Trinn 5
Kjør programmet. Høyreklikk på PDFTextParser-klassen og klikk på "Kjør som" og deretter på "Java-program". Programmet skal kjøre og skrive ut tekstinnholdet i PDF-filen du skrev inn i koden.
Undertrykk Log4j oppstartsfeilmelding
Trinn 1
Opprett en konfigurasjonsfil for å undertrykke Java logging system log4j feilmeldingen opprettet når den ikke finner en konfigurasjonsfil når den starter opp. Høyreklikk på "src"-mappen til PrintPDF-prosjektet og velg "Ny" og deretter "Fil". Gi filen navnet "log4j.properties" Eclipse vil vise en tom skjerm for denne nye filen.
Steg 2
Lim inn følgende linjer i den tomme skjermen som representerer filen "log4j.properties".
Trinn 3
Lagre "log4j.properties"-filen. Tilstedeværelsen av denne filen i "src"-katalogen på øverste nivå vil undertrykke log4j-oppstartsmeldingen og alle trivielle loggmeldinger. log4j-systemet vil kun skrive ut faktiske feil.
Tips
Det finnes også en rekke kommersielle pakker som du kan bruke til å trekke ut tekst fra PDF-filer, men de er ikke billige.