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.
- Utwórz nowy projekt.
- Pobierz interfejs API, jak wspomniano powyżej, lub zaktualizuj do najnowszej wersji interfejsu API.
- Zaimportuj następujące klasy:
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
- 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.
}
- Wyodrębnij wszystkie obrazy z dokumentu za pomocą metody getImages.
// Wyodrębnij obrazy z załadowanego pliku
Iterable<PageImageArea> images = parser.getImages();
- 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

Wyodrębnione obrazy

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.