Jak czytać plik PDF w Javie

Kobieta pracująca w biurze

Źródło obrazu: Pixland/Pixland/Getty Images

Odczytywanie plików PDF w Javie przy użyciu łatwo dostępnych bibliotek nie jest trudne. Czytanie plików PDF umożliwia pisanie programów Java, które mogą przetwarzać tekst w tych plikach. Jedną z opcji czytania plików PDF jest bezpłatna biblioteka PDFBox o otwartym kodzie źródłowym dostępna od Apache. Platforma programistyczna Eclipse Java ułatwia to zadanie i zarządza bibliotekami, które będziesz pobierać. Aby korzystać z tych bibliotek Java, musisz znać programowanie w języku Java.

Zbierz potrzebne biblioteki

Krok 1

Pobierz Java JDK z witryny firmy Sun. Jest to plik wykonywalny, który możesz zainstalować w swoim systemie, uruchamiając go. Dostępne są wersje dla systemów Windows, Mac i Linux. Kliknij czerwony przycisk „Pobierz”. Po wyświetleniu monitu zapisz plik o nazwie „jdk-6uxx-windows-xxx.exe”. Zapisz ten plik, a następnie kliknij go dwukrotnie, aby uruchomić instalator Java.

Wideo dnia

Krok 2

Pobierz system programistyczny Eclipse i rozpakuj go do katalogu najwyższego poziomu. Wybierz „Eclipse IDE dla programistów Java”. Spowoduje to rozpoczęcie pobierania pliku „eclipse-java-galileo-SR2-win32.zip”. Kliknij dwukrotnie plik, aby go rozpakować po zakończeniu pobierania. Wybierz lokalizację katalogu głównego „C:”, aby rozpakować Eclipse.

Krok 3

Uruchom Eclipse, klikając dwukrotnie plik „eclipse.exe” w katalogu, który właśnie utworzyłeś, rozpakowując plik zip eclipse. W systemie Eclipse utwórz projekt o nazwie „PrintPdf”. Wybierz „Plik”, następnie „Nowy”, a następnie „Projekt Java”. W wyświetlonym oknie dialogowym wpisz nazwę projektu „PrintPdf”. Upewnij się, że zaznaczony jest przycisk radiowy z napisem „Utwórz oddzielne foldery dla plików źródłowych i klas”. Kliknij „Zakończ”.

Krok 4

Utwórz folder „lib” w projekcie „PrintPdf”. Kliknij prawym przyciskiem myszy projekt „PrintPdf” i wybierz „Nowy”, a następnie „Folder”. Wpisz nazwę „lib” i kliknij „Zakończ”.

Krok 5

Pobierz Apache "PDFBox.jar" ze strony Apache i skopiuj go do właśnie utworzonego katalogu lib. Z tej samej strony internetowej pobierz plik „fontbox-nn.jar” oraz plik „jempbox-nn.jar”. W każdym przypadku kliknięcie tego pliku jar spowoduje przejście do strony, na której możesz wybrać jeden z kilku serwerów, które mogą dostarczyć ten plik. Wybierz każdy z nich, a każdy plik jar zostanie pobrany. Skopiuj każdy plik jar do właśnie utworzonego katalogu lib.

Krok 6

Pobierz pakiet log4j.jar Apache w ten sam sposób i skopiuj plik log4j.jar do katalogu. Biblioteka Apache PDFBox korzysta z tej biblioteki rejestrowania Apache, więc ten plik musi być obecny.

Krok 7

Pobierz pakiet Apache Commons Discovery jako plik zip. Kliknij dwukrotnie plik zip, wybierz „commons-discovery-nn.jar” i rozpakuj go do katalogu lib.

Krok 8

W środowisku Eclipse kliknij katalog „lib” i naciśnij „F5”. Upewnij się, że wyświetlane są wszystkie dodane pliki jar.

Krok 9

Kliknij prawym przyciskiem myszy projekt PrintPDF i wybierz „Właściwości”. Wybierz „Ścieżka budowania Java” i wybierz zakładkę „Biblioteki”. Kliknij „Dodaj słoiki” i przejdź do właśnie utworzonego katalogu lib, i dodaj „commons-logging-nn.jar”, ​​„fontbox-nn.jar”, ​​„jempbox-nn.jar”, ​​„log4j-nn.jar” ” i „pdfbox-nn.jar”. Kliknij „OK”.

Napisz kod do odczytu plików PDF

Krok 1

Kliknij prawym przyciskiem myszy folder „src” projektu „PrintPDF” i wybierz „Nowy” i „Pakiet”. Utwórz pakiet, używając dowolnej znaczącej nazwy. Na przykład nazwij pakiet „com.pdf.util”. Kliknij „Zakończ”.

Krok 2

Kliknij prawym przyciskiem myszy nazwę właśnie utworzonego pakietu i wybierz „Nowy”, a następnie „Klasa”. Utwórz klasę o nazwie „PDFTextParser”. Pamiętaj, aby kliknąć pole wyboru oznaczone „public static void main...”, aby system utworzył „główna” metoda.

Krok 3

Edytuj metodę „main” w klasie „PDFTextParser”, aby zawierała następujący kod:

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

Zauważ, że plik, który chcesz wydrukować, jest zapisany w konstruktorze do PDFTextParser ("data/JavaPDF.pdf"). Równie dobrze mógłby to być argument wiersza poleceń:

PDFTextParser pdf = nowy PDFTextParser (argv[0])

IŚĆ

lub wybrany z interfejsu GUI.

Tworzy instancję klasy PDFTextParser, a następnie wywołuje jej metodę „getParsedText”.

Krok 4

Wstaw następujący kod tuż pod wierszem najwyższej klasy „public class PDFTextParser”, który został dla Ciebie utworzony.

prywatny parser PDFParsera = null GO

// Wyodrębnij tekst z dokumentu PDF. public PDFTextParser (String fileName) { Plik plik = nowy plik (nazwa_pliku)

GO if (!file.isFile()) { System.err.println("Plik " + nazwa_pliku + " nie istnieje.") GO } //Ustaw instancję parsera PDF spróbuj { parser = new PDFParser (nowy FileInputStream (plik)) GO } catch (IOException e) { System.err.println("Nie można otworzyć PDF Parser. " + e.getMessage()) GO } } // public String getParsedText() { PDocument pdDoc = null GO COSDocument cosDoc = null;
String parsedText = null; IŚĆ

spróbuj { PDFTextStripper pdfStripper = nowy PDFTextStripper()

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

//pobierz listę wszystkich stron List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

IŚĆ

//zauważ, że możesz wydrukować dowolne strony //wybierając różne wartości strony początkowej i końcowej pdfStripper.setStartPage (1); //1 w oparciu o długość int = list.size(); //całkowita liczba stron pdfStripper.setEndPage (długość); //ostatnia strona //pobierz tekst dla wybranych stron parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("Wystąpił wyjątek podczas parsowania dokumentu PDF." + e.getMessage()) GO } w końcu { try { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
return parsedText GO }

Krok 5

Uruchom program. Kliknij prawym przyciskiem myszy klasę PDFTextParser i kliknij „Uruchom jako”, a następnie „Program Java”. Program powinien uruchomić się i wydrukować zawartość tekstową pliku PDF, który wpisałeś w swoim kodzie.

Pomiń komunikat o błędzie uruchamiania Log4j

Krok 1

Utwórz plik konfiguracyjny, aby pominąć komunikat o błędzie log4j systemu rejestrowania Java tworzony, gdy nie można znaleźć pliku konfiguracyjnego podczas uruchamiania. Kliknij prawym przyciskiem myszy folder „src” projektu PrintPDF i wybierz „Nowy”, a następnie „Plik”. Nazwij plik "log4j.properties" Eclipse wyświetli pusty ekran dla tego nowego pliku.

Krok 2

Wklej następujące wiersze do pustego ekranu reprezentującego plik „log4j.properties”.

Krok 3

Zapisz plik „log4j.properties”. Obecność tego pliku w katalogu najwyższego poziomu "src" spowoduje pominięcie komunikatu startowego log4j i wszelkich trywialnych komunikatów rejestrowania. System log4j wypisze tylko aktualne błędy.

Wskazówka

Istnieje również wiele komercyjnych pakietów, których można użyć do wyodrębnienia tekstu z plików PDF, ale nie są one niedrogie.