Kuinka lukea PDF-tiedostoja Javassa

Nainen työskentelee toimistossa

Kuvan luotto: Pixland/Pixland/Getty Images

PDF-tiedostojen lukeminen Javassa ei ole vaikeaa helposti saatavilla olevien kirjastojen avulla. PDF-tiedostojen lukemisen avulla voit kirjoittaa Java-ohjelmia, jotka voivat käsitellä kyseisten tiedostojen tekstiä. Yksi vaihtoehto PDF-tiedostojen lukemiseen on ilmainen avoimen lähdekoodin PDFBox-kirjasto, joka on saatavana Apachelta. Eclipse Java -kehitysalusta helpottaa tätä työtä ja hallitsee ladattavia kirjastoja. Sinun on tunnettava Java-ohjelmointi, jotta voit käyttää näitä Java-kirjastoja.

Kerää tarvittavat kirjastot

Vaihe 1

Lataa Java JDK Sunin verkkosivustolta. Tämä on suoritettava tiedosto, jonka voit asentaa järjestelmääsi suorittamalla sen. Versiot ovat saatavilla Windowsille, Macille ja Linuxille. Napsauta punaista "Lataa" -painiketta. Tallenna pyydettäessä tiedosto nimeltä "jdk-6uxx-windows-xxx.exe". Tallenna tämä tiedosto ja kaksoisnapsauta sitä käynnistääksesi Java-asennusohjelman.

Päivän video

Vaihe 2

Lataa Eclipse-kehitysjärjestelmä ja pura se huipputason hakemistoon. Valitse "Eclipse IDE Java-kehittäjille". Tämä aloittaa tiedoston "eclipse-java-galileo-SR2-win32.zip" latauksen. Kaksoisnapsauta tiedostoa purkaaksesi sen, kun lataus on valmis. Valitse "C:" juurihakemiston sijainti Eclipsen purkamiseksi.

Vaihe 3

Käynnistä Eclipse kaksoisnapsauttamalla "eclipse.exe" -tiedostoa hakemistossa, jonka juuri loit purkamalla eclipse-zip-tiedoston. Luo Eclipse-järjestelmässä projekti nimeltä "PrintPdf". Valitse "Tiedosto" ja "Uusi" ja sitten "Java-projekti". Kirjoita projektin nimi "PrintPdf" näkyviin tulevaan valintaikkunaan. Varmista, että "Luo erilliset kansiot lähde- ja luokkatiedostoille" -valintanappi on valittuna. Napsauta "Valmis".

Vaihe 4

Luo "lib"-kansio "PrintPdf"-projektiisi. Napsauta hiiren kakkospainikkeella "PrintPdf" -projektia ja valitse "New" ja sitten "Folder". Kirjoita nimi "lib" ja napsauta "Valmis".

Vaihe 5

Lataa Apache "PDFBox.jar" Apache-sivustosta ja kopioi se juuri luomaasi lib-hakemistoon. Lataa samalta verkkosivulta "fontbox-nn.jar"- ja "jempbox-nn.jar"-tiedostot. Jokaisessa tapauksessa, kun napsautat kyseistä jar-tiedostoa, se vie sinut sivulle, jolla voit valita yhden useista palvelimista, jotka voivat tarjota tämän tiedoston. Valitse jokainen niistä ja jokainen jar-tiedosto ladataan. Kopioi jokainen jar-tiedosto juuri luomaasi lib-hakemistoon.

Vaihe 6

Lataa Apache log4j.jar-paketti samalla tavalla ja kopioi log4j.jar-tiedosto hakemistoon. Apache PDFBox -kirjasto käyttää tätä Apachen lokikirjastoa, joten tämän tiedoston on oltava läsnä.

Vaihe 7

Lataa Apache Commons Discovery -paketti zip-tiedostona. Kaksoisnapsauta zip-tiedostoa, valitse "commons-discovery-nn.jar" ja pura se lib-hakemistoon.

Vaihe 8

Napsauta Eclipsessä "lib"-hakemistoa ja paina "F5". Varmista, että kaikki lisäämäsi jar-tiedostot näkyvät.

Vaihe 9

Napsauta hiiren kakkospainikkeella PrintPDF-projektia ja valitse "Ominaisuudet". Valitse "Java Build Path" ja valitse "Kirjastot"-välilehti. Napsauta "Lisää purkit" ja siirry juuri luomaasi lib-hakemistoon ja lisää "commons-logging-nn.jar" "fontbox-nn.jar", "jempbox-nn.jar", "log4j-nn.jar". ," ja "pdfbox-nn.jar." Napsauta "OK".

Kirjoita koodi PDF-tiedostojen lukemista varten

Vaihe 1

Napsauta hiiren kakkospainikkeella "PrintPDF"-projektisi "src"-kansiota ja valitse "Uusi" ja "Paketti". Luo paketti millä tahansa merkityksellisellä nimellä. Nimeä paketti esimerkiksi "com.pdf.util". Napsauta "Valmis".

Vaihe 2

Napsauta hiiren kakkospainikkeella juuri luomaasi paketin nimeä ja valitse "Uusi" ja sitten "Luokka". Luo luokka nimeltä "PDFTextParser." Muista klikata valintaruutua "public static void main...", jotta järjestelmä luo a "päämenetelmä".

Vaihe 3

Muokkaa "PDFTextParser"-luokan "main"-metodia sisältämään seuraavan koodin:

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

Huomaa, että tulostettava tiedosto on kirjoitettu PDFTextParserin rakentajassa ("data/JavaPDF.pdf"). Se voi yhtä helposti olla komentoriviargumentti:

PDFTextParser pdf = uusi PDFTextParser (argv[0])

MENNÄ

tai valitaan graafisesta käyttöliittymästä.

Se luo PDFTextParser-luokan esiintymän ja kutsuu sitten sen "getParsedText"-menetelmää.

Vaihe 4

Lisää seuraava koodi sinulle luodun huippuluokan "public class PDFTextParser" -rivin alle.

yksityinen PDFParser-jäsennin = null GO

// Poimi teksti PDF-dokumentista. public PDFTextParser (String fileName) { Tiedostotiedosto = uusi tiedosto (tiedostonimi)

GO if (!file.isFile()) { System.err.println("Tiedostoa " + tiedostonnimi + " ei ole olemassa.") GO } //Asenna PDF-jäsentimen esiintymä, yritä { jäsentäjä = uusi PDFParser (uusi FileInputStream (tiedosto)) GO } catch (IOException e) { System.err.println("PDF-tiedostoa ei voi avata Jäsentäjä. " + e.getMessage()) GO } } // julkinen merkkijono getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
Merkkijono parsedText = null; MENNÄ

kokeile { PDFTextStripper pdfStripper = uusi PDFTextStripper()

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

//hae luettelo kaikista sivuista List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

MENNÄ

//huomaa, että voit tulostaa kaikki haluamasi sivut //valitsemalla eri arvot aloitus- ja loppusivulle pdfStripper.setStartPage (1); //1-pohjainen int pituus = list.size(); //sivujen kokonaismäärä pdfStripper.setEndPage (pituus); //viimeinen sivu //hae valittujen sivujen teksti parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("PDF-dokumentin jäsentämisessä tapahtui poikkeus." + e.getMessage()) GO } vihdoin { kokeile { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
palauta jäsennetty teksti GO }

Vaihe 5

Suorita ohjelma. Napsauta hiiren kakkospainikkeella PDFTextParser-luokkaa ja napsauta "Suorita nimellä" ja sitten "Java-ohjelma". Ohjelman pitäisi toimia ja tulostaa koodiin kirjoittamasi PDF-tiedoston tekstisisältö.

Estä Log4j käynnistysvirheilmoitus

Vaihe 1

Luo määritystiedosto estääksesi Java-lokijärjestelmän log4j-virhesanoman, joka luodaan, kun se ei löydä määritystiedostoa käynnistyessään. Napsauta hiiren kakkospainikkeella PrintPDF-projektin "src"-kansiota ja valitse "Uusi" ja sitten "Tiedosto". Nimeä tiedosto "log4j.properties". Eclipse näyttää tyhjän näytön tälle uudelle tiedostolle.

Vaihe 2

Liitä seuraavat rivit "log4j.properties"-tiedostoa edustavaan tyhjään näyttöön.

Vaihe 3

Tallenna "log4j.properties"-tiedosto. Tämän tiedoston läsnäolo ylimmän tason "src"-hakemistossa estää log4j-käynnistysviestin ja kaikki triviaalit lokiviestit. Log4j-järjestelmä tulostaa vain todelliset virheet.

Kärki

On myös useita kaupallisia paketteja, joiden avulla voit poimia tekstiä PDF-tiedostoista, mutta ne eivät ole halpoja.