Ź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.