Cum să citiți fișierul PDF în Java

Femeie care lucrează într-un birou

Credit imagine: Pixland/Pixland/Getty Images

Nu este dificil să citiți fișiere PDF în Java folosind biblioteci care sunt ușor disponibile. Citirea fișierelor PDF vă permite să scrieți programe Java care pot procesa textul din acele fișiere. O opțiune pentru citirea fișierelor PDF este biblioteca gratuită, open-source PDFBox, disponibilă de la Apache. Platforma de dezvoltare Eclipse Java ușurează această muncă și gestionează bibliotecile pe care le vei descărca. Trebuie să fii familiarizat cu programarea Java pentru a utiliza aceste biblioteci Java.

Adunați bibliotecile necesare

Pasul 1

Descărcați Java JDK de pe site-ul Sun. Acesta este un fișier executabil pe care îl puteți instala pe sistemul dumneavoastră rulându-l. Versiunile sunt disponibile pentru Windows, Mac și Linux. Faceți clic pe butonul roșu „Descărcare”. Salvați un fișier numit „jdk-6uxx-windows-xxx.exe” când vi se solicită. Salvați acest fișier și apoi faceți dublu clic pe el pentru a lansa programul de instalare Java.

Videoclipul zilei

Pasul 2

Descărcați sistemul de dezvoltare Eclipse și dezarhivați-l într-un director de nivel superior. Selectați „Eclipse IDE for Java Developers”. Aceasta va începe descărcarea „eclipse-java-galileo-SR2-win32.zip”. Faceți dublu clic pe fișier pentru a-l dezarhiva după ce descărcarea este finalizată. Selectați locația directorului rădăcină „C:” pentru a dezarhiva Eclipse.

Pasul 3

Porniți Eclipse făcând dublu clic pe „eclipse.exe” în directorul pe care tocmai l-ați creat dezarhivând fișierul zip eclipse. În sistemul Eclipse, creați un proiect numit „PrintPdf”. Selectați „Fișier”, apoi „Nou”, apoi „Proiect Java”. Introduceți numele proiectului „PrintPdf” în caseta de dialog care apare. Asigurați-vă că este selectat butonul radio care spune „Creați foldere separate pentru fișierele sursă și de clasă”. Faceți clic pe „Terminare”.

Pasul 4

Creați un folder „lib” în proiectul „PrintPdf”. Faceți clic dreapta pe proiectul „PrintPdf” și selectați „Nou” și apoi „Folder”. Introduceți numele „lib” și faceți clic pe „Finish”.

Pasul 5

Descărcați Apache „PDFBox.jar” de pe site-ul Apache și copiați-l în directorul lib pe care tocmai l-ați creat. Pe aceeași pagină web, descărcați fișierul „fontbox-nn.jar” și fișierul „jempbox-nn.jar”. În fiecare caz, când faceți clic pe acel fișier jar, acesta vă va duce la o pagină unde puteți selecta unul dintre mai multe servere care pot furniza acest fișier. Alegeți fiecare dintre ele și fiecare fișier jar se va descărca. Copiați fiecare fișier jar în directorul lib pe care tocmai l-ați creat.

Pasul 6

Descărcați pachetul Apache log4j.jar în același mod și copiați fișierul log4j.jar în director. Biblioteca Apache PDFBox folosește această bibliotecă de înregistrare Apache, așa că acest fișier trebuie să fie prezent.

Pasul 7

Descărcați pachetul Apache Commons Discovery ca fișier zip. Faceți dublu clic pe fișierul zip, selectați „commons-discovery-nn.jar” și extrageți-l în directorul lib.

Pasul 8

În Eclipse, faceți clic pe directorul „lib” și apăsați „F5”. Asigurați-vă că sunt afișate toate fișierele jar pe care le-ați adăugat.

Pasul 9

Faceți clic dreapta pe proiectul PrintPDF și selectați „Proprietăți”. Selectați „Java Build Path” și selectați fila „Biblioteci”. Faceți clic pe „Adăugați borcane” și accesați directorul lib pe care tocmai l-ați creat și adăugați „commons-logging-nn.jar” „fontbox-nn.jar”, ​​„jempbox-nn.jar”, ​​„log4j-nn.jar”. ,” și „pdfbox-nn.jar”. Faceți clic pe „OK”.

Scrieți codul pentru a citi PDF-urile

Pasul 1

Faceți clic dreapta pe folderul „src” al proiectului „PrintPDF” și selectați „Nou” și „Pachet”. Creați un pachet folosind orice nume semnificativ. De exemplu, denumește pachetul „com.pdf.util”. Faceți clic pe „Terminare”.

Pasul 2

Faceți clic dreapta pe numele pachetului pe care tocmai l-ați creat și selectați „Nou” și apoi „Clasă”. Creați o clasă numită „PDFTextParser”. Asigurați-vă că faceți clic pe caseta de selectare marcată „public static void main...”, astfel încât sistemul să creeze un metoda „principală”.

Pasul 3

Editați metoda „principală” din clasa „PDFTextParser” pentru a conține următorul cod:

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

Rețineți că fișierul pe care doriți să-l imprimați este scris în constructor pentru PDFTextParser ("data/JavaPDF.pdf"). Ar putea fi la fel de ușor un argument de linie de comandă:

PDFTextParser pdf = PDFTextParser nou (argv[0])

MERGE

sau selectat dintr-o interfață GUI.

Acesta creează o instanță a clasei PDFTextParser și apoi își apelează metoda „getParsedText”.

Pasul 4

Introduceți următorul cod chiar sub linia de clasa superioară „public class PDFTextParser” care a fost creată pentru dvs.

parser privat PDFParser = null GO

// Extrageți text din documentul PDF. public PDFTextParser (String fileName) { Fișier = fișier nou (nume fișier)

GO if (!file.isFile()) { System.err.println("Fișier " + fileName + " nu există.") GO } //Configurați instanța de analiză PDF încercați { parser = nou PDFParser (nou FileInputStream (fișier)) GO } catch (IOException e) { System.err.println(„Nu se poate deschide PDF Analizator. " + e.getMessage()) GO } } // public String getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
String parsedText = null; MERGE

încercați { PDFTextStripper pdfStripper = nou PDFTextStripper()

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

//obține lista tuturor paginilor List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

MERGE

//rețineți că puteți tipări orice pagini doriți //alegând diferite valori ale paginii de început și de final pdfStripper.setStartPage (1); //lungimea int bazată pe 1 = list.size(); //numărul total de pagini pdfStripper.setEndPage (lungime); //ultima pagină //obține textul pentru paginile selectate parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println(„A apărut o excepție la analizarea documentului PDF.” + e.getMessage()) GO } în cele din urmă { try { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
returnează parsedText GO }

Pasul 5

Rulați programul. Faceți clic dreapta pe clasa PDFTextParser și faceți clic pe „Run As” și apoi pe „Program Java”. Programul ar trebui să ruleze și să imprime conținutul text al fișierului PDF pe care l-ați introdus în codul dvs.

Suprimați mesajul de eroare de pornire Log4j

Pasul 1

Creați un fișier de configurare pentru a suprima mesajul de eroare log4j al sistemului de înregistrare Java creat atunci când nu poate găsi un fișier de configurare la pornire. Faceți clic dreapta pe folderul „src” al proiectului PrintPDF și selectați „Nou” și apoi „Fișier”. Denumiți fișierul „log4j.properties” Eclipse va afișa un ecran gol pentru acest fișier nou.

Pasul 2

Lipiți următoarele rânduri în ecranul gol care reprezintă fișierul „log4j.properties”.

Pasul 3

Salvați fișierul „log4j.properties”. Prezența acestui fișier în directorul „src” de nivel superior va suprima mesajul de pornire log4j și orice mesaje triviale de înregistrare. Sistemul log4j va tipări numai erorile reale.

Bacsis

Există, de asemenea, o serie de pachete comerciale pe care le puteți utiliza pentru a extrage text din fișierele PDF, dar nu sunt ieftine.