Kako brati datoteko PDF v Javi
Datotek PDF v Javi ni težko brati z uporabo knjižnic, ki so takoj 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 Apache. Razvojna platforma Eclipse Java olajša to delo in upravlja knjižnice, ki jih boste prenesli. Če želite uporabljati te knjižnice Java, morate poznati programiranje v Javi.
Zberite potrebne knjižnice
1. korak
Prenesite Java JDK s Sunovega spletnega mesta. To je izvršljiva datoteka, ki jo lahko namestite v sistem tako, da jo zaženete. Različice so na voljo za Windows, Mac in Linux. Kliknite na rdeči gumb "Prenos". Ob pozivu shranite datoteko z imenom "jdk-6uxx-windows-xxx.exe". Shranite to datoteko in nato dvokliknite nanjo, da zaženete namestitveni program Java.
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." Ko je prenos končan, dvokliknite datoteko, da jo razpakirate. Izberite lokacijo korenskega imenika "C:", da razpakirate Eclipse.
3. korak
Zaženite Eclipse z dvojnim klikom na "eclipse.exe" v imeniku, ki ste ga pravkar ustvarili z razpakiranjem datoteke eclipse zip. 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 miškino tipko kliknite projekt »PrintPdf« in izberite »Novo« ter 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 datoteki "fontbox-nn.jar" in "jempbox-nn.jar". V vsakem primeru, ko kliknete to datoteko jar, vas bo preusmerila na 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
Na enak način prenesite paket Apache log4j.jar 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 datoteko zip. Dvokliknite datoteko zip, izberite »commons-discovery-nn.jar« in jo ekstrahirajte v imenik lib.
8. korak
V Eclipsu 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 "Java Build Path" in izberite zavihek "Libraries". Kliknite »Dodaj kozarce« in pojdite v imenik lib, ki ste ga pravkar ustvarili, ter 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
1. korak
Z desno miškino tipko kliknite mapo "src" vašega projekta "PrintPDF" in izberite "Novo" in "Paket". Ustvarite paket s katerim koli pomenljivim imenom. Na primer, poimenujte paket "com.pdf.util." Kliknite "Dokončaj."
2. korak
Z desno miškino tipko kliknite ime paketa, ki ste ga pravkar ustvarili, in izberite »Novo« in nato »Razred«. Ustvarite razred z imenom "PDFTextParser." Prepričajte se, da ste kliknili potrditveno polje z oznako "javno statično void glavno ...", da bo sistem ustvaril "glavno" metodo.
3. korak
Uredite metodo »main« v razredu »PDFTextParser«, da bo vsebovala to kodo:
public static void main(String args[]){ PDFTextParser pdf =new PDFTextParser("data/javaPDF.pdf") GO //izpis rezultatov System.out.println(pdf.getParsedText()) GO }
Upoštevajte, da je datoteka, ki jo želite natisniti, zapisana v konstruktorju za PDFTextParser (»data/JavaPDF.pdf«). Prav tako lahko bi bil argument ukazne vrstice:
PDFTextParser pdf = new PDFTextParser(argv[0])
POJDI
ali izbrani iz vmesnika GUI.
Ustvari primerek razreda PDFTextParser in nato pokliče njegovo metodo "getParsedText".
4. korak
Vstavite naslednjo kodo tik pod zgornjo vrstico razreda "javni razred PDFTextParser", ki je bila ustvarjena za vas.
private PDFParser parser =null GO
// Extract text from PDF Document public PDFTextParser(String fileName) { File file = new File(fileName)
GO if (!file.isFile()) { System.err.println("Datoteka " + fileName + " ne obstaja.") GO } //Nastavitev primerka razčlenjevalnika PDF poskusi { razčlenjevalnik =nov PDFParser(nov FileInputStream( file)) GO } catch (IOException e) { System.err.println("Razčlenjevalnika PDF ni mogoče odpreti. " + e.getMessage()) GO } } //------------- ------------------ public String getParsedText() { PDDocument pdDoc =null GO COSDocument cosDoc =null;
String parsedText =null; POJDI
try { PDFTextStripper pdfStripper = new PDFTextStripper()
GO parser.parse() GO cosDoc =parser.getDocument() GO pdDoc =nov PDDocument(cosDoc) GO
//get list of all pages List<PDPage> list = pdDoc.getDocumentCatalog().getAllPages()
POJDI
//note that you can print out any pages you want //by choosing different values of the start and end page pdfStripper.setStartPage(1); //1-based int length = list.size(); //total number of pages pdfStripper.setEndPage(length); //last page //get the text for the pages selected 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 { poskusi { if (cosDoc !=null) cosDoc.close() GO if (pdDoc !=null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
vrni razčlenjeno besedilo GO }
5. korak
Zaženite program. Z desno miškino tipko kliknite razred PDFTextParser in kliknite »Zaženi kot« in nato »Java program«. Program bi se moral zagnati in natisniti besedilno vsebino datoteke PDF, ki ste jo vnesli v kodo.
Zavrni sporočilo o napaki pri zagonu Log4j
1. korak
Ustvarite konfiguracijsko datoteko, da preprečite sporočilo o napaki log4j sistema beleženja Java, ki se ustvari, ko ob zagonu ne najde konfiguracijske datoteke. Desni klik na 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 v prazen zaslon, ki predstavlja datoteko "log4j.properties".
Nastavite raven korenskega zapisovalnika na DEBUG in njegov edini dodatek na A1. log4j.rootLogger=OPOZORILO, A1
A1 je nastavljen kot ConsoleAppender. log4j.appender.A1=org.apache.log4j.ConsoleAppender
A1 uporablja PatternLayout. log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
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 beleženja. Sistem log4j bo izpisal samo dejanske napake.
Nasvet
Obstajajo tudi številni komercialni paketi, ki jih lahko uporabite za pridobivanje besedila iz datotek PDF, vendar niso poceni.