Jak czytać plik PDF w Javie

PDF to najczęściej używany format dokumentu cyfrowego. Możemy analizować dokumenty PDF i programowo wyodrębniać z nich tekst i obrazy. Może to być przydatne w kilku przypadkach, takich jak analiza tekstu, wyszukiwanie informacji, konwersja dokumentów itp. W tym artykule dowiemy się, jak wyodrębnić tekst i obrazy z dokumentów PDF przy użyciu języka Java.

W tym artykule zostaną omówione następujące tematy:

API Java do wyodrębniania tekstu i obrazów z dokumentów PDF

Do wyodrębniania tekstu i obrazów z dokumentów PDF będziemy używać API GroupDocs.Parser for Java. Umożliwia wyodrębnianie surowego, sformatowanego i ustrukturyzowanego tekstu, metadanych i obrazów z plików w obsługiwanych formatach. Pobierz plik JAR interfejsu API lub dodaj następującą konfigurację pom.xml w aplikacji Java opartej na Maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>22.3</version> 
</dependency>

Ekstrakcja tekstu w formacie Java w formacie PDF

Możemy przeanalizować dowolny dokument PDF i wyodrębnić tekst, wykonując poniższe czynności:

  • Najpierw załaduj plik PDF przy użyciu klasy Parser.
  • Następnie wywołaj metodę Parser.getText() w celu wyodrębnienia tekstu z załadowanego dokumentu.
  • Następnie uzyskaj wyniki w obiekcie klasy TextReader.
  • Na koniec wywołaj metodę TextReader.readToEnd(), aby odczytać wszystkie znaki od bieżącej pozycji do końca czytnika tekstu i zwrócić je jako jeden ciąg.

Poniższy przykładowy kod pokazuje, jak wyodrębnić tekst z pliku PDF przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak analizować plik PDF i wyodrębniać tekst.
// Utwórz instancję klasy Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Wyodrębnij tekst do czytnika
try (TextReader reader = parser.getText()) {
    // Wydrukuj tekst z dokumentu
    // Jeśli wyodrębnianie tekstu nie jest obsługiwane, czytnik ma wartość null
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Wyodrębnij tekst z dokumentów PDF za pomocą Java

Wyodrębnij tekst z dokumentów PDF za pomocą Java

Wyodrębnij tekst z określonej strony dokumentu PDF za pomocą języka Java

Możesz analizować dokument PDF i wyodrębniać tekst z określonej strony, wykonując proste kroki wymienione poniżej:

Poniższy przykładowy kod pokazuje, jak wyodrębnić tekst z określonej strony przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak analizować plik PDF i wyodrębniać tekst z określonej strony.
// Utwórz instancję klasy Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Uzyskaj informacje o dokumencie
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Sprawdź, czy dokument ma strony
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

// Wyodrębnij tekst do czytnika
try (TextReader reader = parser.getText(1)) {
    // Wydrukuj tekst z dokumentu
    // Jeśli wyodrębnianie tekstu nie jest obsługiwane, czytnik ma wartość null
    System.out.println(reader.readToEnd());
}

API umożliwia także sprawdzenie, czy dokument obsługuje funkcję wyodrębniania tekstu. W tym celu możemy wykorzystać właściwość Parser.getFeatures().isText(). Przeczytaj więcej o obsługiwanych funkcjach.

Wyodrębnij obrazy z pliku PDF (Java)

Możemy przeanalizować dowolny dokument PDF i wyodrębnić obrazy, wykonując poniższe czynności:

  • Najpierw załaduj plik PDF przy użyciu klasy Parser.
  • Następnie wywołaj metodę Parser.getImages() i pobierz kolekcję obiektów PageImageArea z załadowanego dokumentu.
  • Następnie sprawdź, czy kolekcja nie ma wartości null.
  • Następnie przejrzyj wszystkie znalezione obrazy.
  • Na koniec pokaż szczegóły obrazów.

Poniższy przykładowy kod pokazuje, jak uzyskać szczegóły obrazów z pliku PDF przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak analizować plik PDF i pobierać obrazy.
// Utwórz instancję klasy Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Wyodrębnij obrazy
Iterable<PageImageArea> images = parser.getImages();

// Sprawdź, czy obsługiwana jest ekstrakcja obrazów
if (images == null) {
    System.out.println("Images extraction isn't supported");
    return;
}

// Iteruj po obrazach
for (PageImageArea image : images) {
    // Wydrukuj indeks strony, prostokąt i typ obrazu:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}
Pobieraj obrazy z dokumentów PDF przy użyciu języka Java

Pobieraj obrazy z dokumentów PDF przy użyciu języka Java

Wyodrębnij obrazy z określonej strony dokumentu PDF za pomocą języka Java

Możemy wyodrębnić obrazy z określonej strony, wykonując proste kroki wymienione poniżej:

  • Najpierw załaduj plik PDF przy użyciu klasy Parser.
  • Następnie pobierz informacje o dokumencie za pomocą metody Parser.getDocumentInfo().
  • Następnie sprawdź, czy IDocumentInfo.getPageCount() nie wynosi zero.
  • Następnie wywołaj metodę Parser.getImages() z indeksem strony, aby wyodrębnić obrazy z tej konkretnej strony.
  • Na koniec przejrzyj wszystkie znalezione obrazy i pokaż szczegóły.

Poniższy przykładowy kod pokazuje, jak wyodrębnić obrazy z określonej strony przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak analizować plik PDF i pobierać obrazy z określonej strony.
// Utwórz instancję klasy Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Uzyskaj informacje o dokumencie
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Sprawdź, czy dokument ma strony
if (documentInfo.getPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

int pageIndex = 1;

// Iteruj po obrazach
// Ignorujemy sprawdzanie wartości null, ponieważ wcześniej sprawdziliśmy obsługę funkcji ekstrakcji obrazów
for (PageImageArea image : parser.getImages(pageIndex)) {
  // Wydrukuj indeks strony, prostokąt i typ obrazu:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}

Wyodrębniaj i zapisuj obrazy do plików przy użyciu języka Java

Możemy również zapisać wyodrębnione obrazy, wykonując czynności podane poniżej:

  • Najpierw załaduj plik PDF przy użyciu klasy Parser.
  • Następnie wywołaj metodę Parser.getImages() i pobierz kolekcję obiektów PageImageArea z załadowanego dokumentu.
  • Następnie utwórz instancję klasy ImageOptions i ustaw format obrazu.
  • Następnie przejrzyj wszystkie znalezione obrazy.
  • Na koniec zapisz, używając metody save(). Jako argumenty przyjmuje ścieżkę pliku wyjściowego i ImageOptions.

Poniższy przykładowy kod pokazuje, jak wyodrębnić i zapisać obrazy w plikach przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak wyodrębnić i obrazy w katalogu.
// Utwórz instancję klasy Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Wyodrębnij obrazy z dokumentu
Iterable<PageImageArea> images = parser.getImages();

// Sprawdź, czy obsługiwana jest ekstrakcja obrazów
if (images == null) {
    System.out.println("Page images extraction isn't supported");
    return;
}

// Utwórz opcje zapisywania obrazów w formacie PNG
ImageOptions options = new ImageOptions(ImageFormat.Png);

int imageNumber = 0;

// Iteruj po obrazach
for (PageImageArea image : images)
{
    // Zapisz obraz do pliku PNG
    image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
    imageNumber++;
}
Wyodrębniaj i zapisuj obrazy do plików przy użyciu języka Java

Wyodrębniaj i zapisuj obrazy do plików przy użyciu języka Java

Zdobądź bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule dowiedzieliśmy się, jak:

  • wyodrębnić cały tekst z całego dokumentu PDF lub określonych stron dokumentu za pomocą języka Java;
  • programowo wyodrębniaj obrazy z pliku PDF;
  • zapisz wyodrębnione obrazy na dysku lokalnym.

Poza tym możesz dowiedzieć się więcej o GroupDocs.Parser for Java API, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też