Kako brati datoteko PDF v Javi

Ženska, ki dela v pisarni

Zasluga slike: Pixland/Pixland/Getty Images

V Javi ni težko brati datotek PDF z uporabo knjižnic, ki so na voljo. Branje datotek PDF vam omogoča pisanje programov Java, ki lahko obdelajo besedilo v teh datotekah. Ena od možnosti za branje datotek PDF je brezplačna odprtokodna knjižnica PDFBox, ki je na voljo pri Apacheju. Razvojna platforma Eclipse Java olajša to delo in upravlja knjižnice, ki jih boste prenašali. Če želite uporabljati te knjižnice Java, morate poznati programiranje Java.

Zberite potrebne knjižnice

Korak 1

Prenesite Java JDK s spletnega mesta Sun. To je izvedljiva datoteka, ki jo lahko namestite v svoj sistem tako, da jo zaženete. Različice so na voljo za Windows, Mac in Linux. Kliknite rdeči gumb "Prenesi". Ko ste pozvani, shranite datoteko z imenom "jdk-6uxx-windows-xxx.exe". Shranite to datoteko in jo nato dvokliknite, da zaženete namestitveni program Java.

Video dneva

2. korak

Prenesite razvojni sistem Eclipse in ga razpakirajte v imenik najvišje ravni. Izberite "Eclipse IDE za razvijalce Java." S tem se bo začel prenos "eclipse-java-galileo-SR2-win32.zip." Dvokliknite datoteko, da jo razpakirate po končanem prenosu. Izberite lokacijo korenskega imenika "C:", da razpakirate Eclipse.

3. korak

Zaženite Eclipse tako, da dvokliknete "eclipse.exe" v imeniku, ki ste ga pravkar ustvarili z razpakiranjem zip datoteke eclipse. V sistemu Eclipse ustvarite projekt z imenom "PrintPdf". Izberite »Datoteka«, nato »Novo« in nato »Java projekt«. V pogovorno okno, ki se prikaže, vnesite ime projekta "PrintPdf". Prepričajte se, da je izbran izbirni gumb z napisom »Ustvari ločene mape za izvorne in razredne datoteke«. Kliknite "Dokončaj".

4. korak

Ustvarite mapo "lib" v svojem projektu "PrintPdf". Z desno tipko miške kliknite projekt "PrintPdf" in izberite "Novo" in nato "Mapa". Vnesite ime "lib" in kliknite "Dokončaj".

5. korak

Prenesite Apache "PDFBox.jar" s spletnega mesta Apache in ga kopirajte v imenik lib, ki ste ga pravkar ustvarili. Na isti spletni strani prenesite datoteko "fontbox-nn.jar" in datoteko "jempbox-nn.jar". V vsakem primeru, ko kliknete to datoteko jar, vas odpre stran, kjer lahko izberete enega od več strežnikov, ki lahko zagotovijo to datoteko. Izberite vsakega od njih in vsaka datoteka jar se bo prenesla. Kopirajte vsako datoteko jar v imenik lib, ki ste ga pravkar ustvarili.

6. korak

Prenesite paket Apache log4j.jar na enak način in kopirajte datoteko log4j.jar v imenik. Knjižnica Apache PDFBox uporablja to knjižnico beleženja Apache, zato mora biti ta datoteka prisotna.

7. korak

Prenesite paket Apache Commons Discovery kot zip datoteko. Dvokliknite datoteko zip, izberite "commons-discovery-nn.jar" in jo ekstrahirajte v imenik lib.

8. korak

V Eclipseu kliknite imenik "lib" in pritisnite "F5". Prepričajte se, da so prikazane vse datoteke jar, ki ste jih dodali.

9. korak

Z desno tipko miške kliknite projekt PrintPDF in izberite »Lastnosti«. Izberite "Pot gradnje Java" in izberite zavihek "Knjižnice". Kliknite na "Dodaj kozarce" in pojdite v imenik lib, ki ste ga pravkar ustvarili, in dodajte "commons-logging-nn.jar" "fontbox-nn.jar", "jempbox-nn.jar", "log4j-nn.jar ," in "pdfbox-nn.jar." Kliknite »V redu«.

Napišite kodo za branje PDF-jev

Korak 1

Z desno tipko miške kliknite mapo »src« vašega projekta »PrintPDF« in izberite »Novo« in »Paket«. Ustvarite paket s katerim koli smiselnim imenom. Na primer, poimenujte paket "com.pdf.util." Kliknite "Dokončaj".

2. korak

Z desno tipko miške kliknite ime paketa, ki ste ga pravkar ustvarili, in izberite »Novo« in nato »Razred«. Ustvarite razred z imenom "PDFTextParser." Ne pozabite klikniti potrditvenega polja z oznako »javna statična void glavna ...«, da bo sistem ustvaril a "glavna" metoda.

3. korak

Uredite metodo "main" v razredu "PDFTextParser", da bo vsebovala naslednjo kodo:

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

Upoštevajte, da je datoteka, ki jo želite natisniti, zapisana v konstruktorju v PDFTextParser ("data/JavaPDF.pdf"). Prav tako preprosto je lahko argument ukazne vrstice:

PDFTextParser pdf = nov PDFTextParser (argv[0])

POJDI

ali izbrano iz vmesnika GUI.

Ustvari primerek razreda PDFTextParser in nato pokliče njegovo metodo "getParsedText".

4. korak

Vstavite naslednjo kodo tik pod vrstico najvišjega razreda "javni razred PDFTextParser", ki je bila ustvarjena za vas.

zasebni razčlenjevalnik PDFParser = null GO

// Izvleči besedilo iz dokumenta PDF. javni PDFTextParser (String fileName) { File file = new File (fileName)

POJDI if (!file.isFile()) { System.err.println("Datoteka " + ime datoteke + " ne obstaja.") POJDI } //Nastavi primerek razčlenjevalnika PDF poskusi { parser = nov PDFParser (nov FileInputStream (datoteka)) GO } catch (IOException e) { System.err.println("Ni mogoče odpreti PDF-ja Razčlenjevalnik. " + e.getMessage()) GO } } // javni niz getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
String razčlenjenText = nič; POJDI

poskusi { PDFTextStripper pdfStripper = new PDFTextStripper()

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

//dobi seznam vseh strani Seznam< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

POJDI

//upoštevajte, da lahko natisnete poljubne strani //z izbiro različnih vrednosti začetne in končne strani pdfStripper.setStartPage (1); // dolžina int na osnovi 1 = list.size(); //skupno število strani pdfStripper.setEndPage (dolžina); //zadnja stran //dobi besedilo za izbrane strani parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("Pri razčlenjevanju dokumenta PDF je prišlo do izjeme." + e.getMessage()) GO } končno { poskusite { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
vrni parsedText GO }

5. korak

Zaženite program. Z desno tipko miške kliknite razred PDFTextParser in kliknite »Zaženi kot« in nato »Program Java«. Program se mora zagnati in natisniti besedilno vsebino datoteke PDF, ki ste jo vnesli v kodo.

Zaščiti sporočilo o napaki pri zagonu Log4j

Korak 1

Ustvarite konfiguracijsko datoteko za zatiranje sporočila o napaki log4j sistema za beleženje Java, ustvarjenega, ko ob zagonu ne najde konfiguracijske datoteke. Z desno tipko miške kliknite mapo "src" projekta PrintPDF in izberite "Novo" in nato "Datoteka". Poimenujte datoteko "log4j.properties" Eclipse bo prikazal prazen zaslon za to novo datoteko.

2. korak

Prilepite naslednje vrstice na prazen zaslon, ki predstavlja datoteko "log4j.properties".

3. korak

Shranite datoteko "log4j.properties". Prisotnost te datoteke v imeniku "src" najvišje ravni bo preprečila zagonsko sporočilo log4j in vsa trivialna sporočila o beleženju. Sistem log4j bo natisnil samo dejanske napake.

Nasvet

Obstajajo tudi številni komercialni paketi, ki jih lahko uporabite za ekstrakcijo besedila iz datotek PDF, vendar niso poceni.