PDF-fájlok olvasása Java nyelven
Nem nehéz elolvasni a PDF-fájlokat Java nyelven könnyen elérhető könyvtárak segítségével. A PDF-fájlok olvasása lehetővé teszi, hogy olyan Java-programokat írjon, amelyek képesek feldolgozni a fájlok szövegét. A PDF-fájlok olvasásának egyik lehetősége az ingyenes, nyílt forráskódú PDFBox könyvtár, amely az Apache-tól érhető el. Az Eclipse Java fejlesztői platform megkönnyíti ezt a munkát, és kezeli a letöltendő könyvtárakat. Ezen Java könyvtárak használatához ismernie kell a Java programozást.
A szükséges könyvtárak összegyűjtése
1. lépés
Töltse le a Java JDK-t a Sun webhelyéről. Ez egy végrehajtható fájl, amelyet futtatásával telepíthet a rendszerére. Verziók elérhetők Windows, Mac és Linux rendszerre. Kattintson a piros "Letöltés" gombra. Mentse el a „jdk-6uxx-windows-xxx.exe” nevű fájlt, amikor a rendszer kéri. Mentse el ezt a fájlt, majd kattintson rá duplán a Java telepítő elindításához.
2. lépés
Töltse le az Eclipse fejlesztőrendszert, és csomagolja ki egy legfelső szintű könyvtárba. Válassza az „Eclipse IDE for Java Developers” lehetőséget. Ezzel elindul az „eclipse-java-galileo-SR2-win32.zip” letöltése. A letöltés befejezése után kattintson duplán a fájlra a kicsomagolásához. Válassza ki a "C:" gyökérkönyvtár helyét az Eclipse kicsomagolásához.
3. lépés
Az Eclipse elindításához kattintson duplán az „eclipse.exe” fájlra az eclipse zip fájl kicsomagolásával létrehozott könyvtárban. Az Eclipse rendszerben hozzon létre egy "PrintPdf" nevű projektet. Válassza a "Fájl", majd az "Új", majd a "Java projekt" lehetőséget. A megjelenő párbeszédablakban írja be a projekt nevét "PrintPdf". Győződjön meg arról, hogy be van jelölve a „Külön mappák létrehozása a forrás- és osztályfájlokhoz” választógomb. Kattintson a „Befejezés” gombra.
4. lépés
Hozzon létre egy "lib" mappát a "PrintPdf" projektben. Kattintson a jobb gombbal a "PrintPdf" projektre, és válassza az "Új", majd a "Mappa" lehetőséget. Írja be a „lib” nevet, és kattintson a „Befejezés” gombra.
5. lépés
Töltse le az Apache "PDFBox.jar" fájlt az Apache webhelyről, és másolja be az imént létrehozott lib könyvtárba. Ugyanazon a weboldalon töltse le a "fontbox-nn.jar" és a "jempbox-nn.jar" fájlt. Ha rákattint az adott jar fájlra, minden esetben egy olyan oldalra jut, ahol kiválaszthat egyet a több szerver közül, amelyek biztosítják ezt a fájlt. Válassza ki mindegyiket, és minden jar fájl letöltődik. Másoljon minden jar fájlt az imént létrehozott lib könyvtárba.
6. lépés
Ugyanilyen módon töltse le az Apache log4j.jar csomagot, és másolja be a log4j.jar fájlt a könyvtárba. Az Apache PDFBox könyvtár ezt az Apache naplózási könyvtárat használja, ezért ennek a fájlnak jelen kell lennie.
7. lépés
Töltse le az Apache Commons Discovery csomagot zip fájlként. Kattintson duplán a zip fájlra, válassza ki a „commons-discovery-nn.jar” fájlt, és csomagolja ki a lib könyvtárba.
8. lépés
Az Eclipse programban kattintson a "lib" könyvtárra, és nyomja meg az "F5" billentyűt. Győződjön meg arról, hogy az összes hozzáadott jar fájl megjelenik.
9. lépés
Kattintson a jobb gombbal a PrintPDF projektre, és válassza a "Tulajdonságok" lehetőséget. Válassza a "Java Build Path" lehetőséget, majd válassza a "Könyvtárak" lapot. Kattintson a "Jars hozzáadása" gombra, lépjen az imént létrehozott lib könyvtárba, és adja hozzá a "commons-logging-nn.jar" "fontbox-nn.jar", "jempbox-nn.jar", "log4j-nn.jar" fájlokat. " és "pdfbox-nn.jar." Kattintson az „OK” gombra.
Írja be a kódot a PDF-ek olvasásához
1. lépés
Kattintson a jobb gombbal a "PrintPDF" projekt "src" mappájára, és válassza az "Új" és a "Csomag" lehetőséget. Hozzon létre egy csomagot bármilyen értelmes név használatával. Például nevezze el a csomagot „com.pdf.util”. Kattintson a „Befejezés” gombra.
2. lépés
Kattintson a jobb gombbal az imént létrehozott csomag nevére, és válassza az "Új", majd az "Osztály" lehetőséget. Hozzon létre egy „PDFTextParser” nevű osztályt. Feltétlenül kattintson a "public static void main..." jelölőnégyzetre, hogy a rendszer létrehozzon egy "main" metódust.
3. lépés
Szerkessze a "main" metódust a "PDFTextParser" osztályban, hogy az tartalmazza a következő kódot:
public static void main(String args[]){ PDFTextParser pdf =new PDFTextParser("data/javaPDF.pdf") GO //eredmények nyomtatása System.out.println(pdf.getParsedText()) GO }
Vegye figyelembe, hogy a kinyomtatni kívánt fájlt a PDFTextParser ("data/JavaPDF.pdf") konstruktorában írja ki. Ugyanilyen könnyen lehet parancssori argumentum is:
PDFTextParser pdf = new PDFTextParser(argv[0])
MENJ
vagy grafikus felhasználói felületről van kiválasztva.
Létrehozza a PDFTextParser osztály egy példányát, majd meghívja a "getParsedText" metódust.
4. lépés
Illessze be a következő kódot közvetlenül az Ön számára létrehozott "public class PDFTextParser" felső osztályú sor alá.
private PDFParser elemző =null GO
// Extract text from PDF Document public PDFTextParser(String fileName) { File file = new File(fileName)
GO if (!file.isFile()) { System.err.println("Fájl " + fájlnév + " nem létezik.") GO } //PDF-elemző példányának beállítása try { parser =new PDFParser(new FileInputStream( fájl)) GO } catch (IOException e) { System.err.println("Nem lehet megnyitni a PDF-elemzőt. " + e.getMessage()) GO } } //-------------- ----------------- public String getParsedText() { PDDocument pdDoc =null GO COSDocument cosDoc =null;
String parsedText =null; MENJ
try { PDFTextStripper pdfStripper = new PDFTextStripper()
GO parser.parse() GO cosDoc =parser.getDocument() GO pdDoc =new PDDocument(cosDoc) GO
//get list of all pages List<PDPage> list = pdDoc.getDocumentCatalog().getAllPages()
MENJ
//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("Kivétel történt a PDF-dokumentum elemzése során." + e.getMessage()) GO } végül { try { if (cosDoc !=null) cosDoc.close() GO if (pdDoc !=null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
return parsedText GO }
5. lépés
Futtassa a programot. Kattintson a jobb gombbal a PDFTextParser osztályra, majd kattintson a "Futtatás másként", majd a "Java program" elemre. A programnak futnia kell, és ki kell nyomtatnia a kódban megadott PDF-fájl szöveges tartalmát.
Log4j indítási hibaüzenet letiltása
1. lépés
Hozzon létre egy konfigurációs fájlt a Java naplózási rendszer log4j hibaüzenetének letiltásához, amely akkor jön létre, amikor a rendszer nem talál konfigurációs fájlt az indításkor. Kattintson a jobb gombbal a PrintPDF projekt "src" mappájára, és válassza az "Új", majd a "Fájl" lehetőséget. Nevezze el a fájlt „log4j.properties”-nek. Az Eclipse egy üres képernyőt jelenít meg az új fájl számára.
2. lépés
Illessze be a következő sorokat a „log4j.properties” fájlt képviselő üres képernyőre.
Állítsa be a gyökérnaplózó szintjét DEBUG-ra, az egyetlen függelékét pedig A1-re. log4j.rootLogger=WARN, A1
AzA1 ConsoleAppenderként van beállítva. log4j.appender.A1=org.apache.log4j.ConsoleAppender
A1 a PatternLayoutot használja. log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
3. lépés
Mentse el a "log4j.properties" fájlt. Ennek a fájlnak a legfelső szintű "src" könyvtárában való jelenléte elnyomja a log4j indítási üzenetét és a triviális naplózási üzeneteket. A log4j rendszer csak a tényleges hibákat nyomtatja ki.
Tipp
Számos kereskedelmi csomag is létezik, amelyek segítségével szöveget bonthat ki PDF-fájlokból, de ezek nem olcsók.