PDF, będący jednym z najpopularniejszych formatów plików, jest używany przez prawie każdą firmę i branżę. Dokumenty PDF mogą zawierać różnorodną zawartość, w tym sformatowany tekst, obrazy, adnotacje itp. Często wymagane jest wyodrębnienie zawartości z plików PDF. W tym artykule omówimy, jak programowo wyodrębnić obrazy z dokumentów PDF w Javie.

Java API do wyodrębniania obrazów z plików PDF

GroupDocs udostępnia GroupDocs.Parser dla programistów Java do wyodrębniania obrazów z plików PDF. Wraz z plikiem PDF ten sam interfejs API obsługuje analizowanie i wyodrębnianie obrazów z różnych innych formatów dokumentów, takich jak dokumenty edytorów tekstu, arkusze kalkulacyjne, książki elektroniczne, prezentacje, e-maile, archiwa ZIP i wiele innych formatów dokumentów .

Pobierz lub skonfiguruj

Możesz pobrać plik JAR z sekcji pobierania lub po prostu pobrać repozytorium i konfiguracje zależności dla pliku pom.xml aplikacji Java opartych na Maven.

<repository>
    <id>groupdocs-artifacts-repository</id>
    <name>GroupDocs Artifacts Repository</name>
    <url>https://releases.groupdocs.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-parser</artifactId>
    <version>22.11</version>
</dependency>

Kroki, aby wyodrębnić obrazy z dokumentu PDF w Javie

Poniżej przedstawiono punkty, które krok po kroku pokazują, jak uzyskać obrazy z pliku PDF za pomocą kilku wierszy kodu Java.

  1. Utwórz nowy projekt.
  2. Pobierz interfejs API, jak wspomniano powyżej, lub zaktualizuj do najnowszej wersji interfejsu API.
  3. Zaimportuj następujące klasy:
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
  1. Załaduj dokument PDF za pomocą klasy Parser.
// Załaduj plik PDF
try (Parser parser = new Parser("path/document.pdf")) {
    // Kod wyodrębniania obrazu znajduje się tutaj.
}
  1. Wyodrębnij wszystkie obrazy z dokumentu za pomocą metody getImages.
// Wyodrębnij obrazy z załadowanego pliku
Iterable<PageImageArea> images = parser.getImages();
  1. Uzyskaj dostęp do każdego obrazu z kolekcji i zapisz go przy użyciu metody zapisu.
// Zapisz plik z ich rozszerzeniem
for (PageImageArea image : images)  {
    image.save(String.format("path/image_%d" + image.getFileType().getExtension(), imageCounter++));
}

Obrazy można zapisywać w różnych formatach, takich jak PNG, JPG, BMP, WebP lub GIF.

Kompletny kod Java — ekstrakcja obrazu z pliku PDF

Oto pełny kod źródłowy, który pozwala uzyskać wszystkie obrazy z dostarczonego pliku PDF.

// Wyodrębnij obrazy z pliku PDF w Javie
try (Parser parser = new Parser("path/document.pdf")) 
{
    // Uzyskaj obrazy
    Iterable<PageImageArea> images = parser.getImages();
    
    // Sprawdź, czy obsługiwane jest wyodrębnianie obrazów
    if (images == null) 
    {
        System.out.println("Images extraction isn't supported");
        return;
    }
    
    int imageCounter = 0;
    // Iteruj wyodrębnione obrazy
    for (PageImageArea image : images) 
    {
        image.save(String.format("path/image_%d" + image.getFileType().getExtension(), imageCounter++));
    }
}

Wyniki

Przykładowy dokument PDF

Dokument PDF zawierający obrazy do wyodrębnienia.

Wyodrębnione obrazy

wyodrębnione obrazy z pliku PDF.

Jeśli potrzebujesz, w osobnym artykule wyjaśniono również, w jaki sposób można Wyodrębnić obrazy z dowolnej określonej strony dokumentu PDF w Javie.

Czytaj więcej

Możesz dowiedzieć się więcej o interfejsie API Java do ekstrakcji danych, korzystając z jego dokumentacji. Możesz podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.

Zobacz też