Wyodrębnianie obrazów z plików PDF jest częstym wymogiem przy budowaniu potoków przetwarzania dokumentów, szczególnie gdy trzeba ponownie wykorzystać grafikę do miniatur, raportów lub dalszej analizy. GroupDocs.Parser Cloud SDK for Java zapewnia prosty interfejs API, który pozwala pobrać każdy osadzony obraz z PDF przy użyciu kilku linii kodu. Ten przewodnik prowadzi Cię przez konfigurację SDK, uruchomienie pełnego przykładu kodu, użycie cURL do tego samego zadania oraz zastosowanie najlepszych praktyk, aby zapewnić niezawodne wyodrębnianie obrazów z PDF.

Wyodrębnij obrazy z dokumentów PDF w Javie w 5 krokach

  1. Skonfiguruj poświadczenia API: Utwórz obiekt Configuration i ustaw swój identyfikator klienta oraz sekret.
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
  1. Zainicjalizuj API Parsera: Utwórz ApiClient z konfiguracją i zainstancjuj ParserApi.
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
  1. Zbuduj żądanie wyodrębniania obrazów: Określ ścieżkę pliku PDF przy użyciu FileInfo i utwórz ExtractImagesRequest.

    String inputFilePath = "input.pdf";
    ExtractImagesRequest request = new ExtractImagesRequest()
            .setFileInfo(new FileInfo().setFilePath(inputFilePath));
    
  2. Wykonaj ekstrakcję i pobierz obrazy: Wywołaj extractImages i uzyskaj listę obiektów Image.

ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
  1. Zapisz każdy obraz w lokalnym magazynie: Iteruj po kolekcji i zapisz dane binarne do plików.
for (int i = 0; i < images.size(); i++) {
    Image img = images.get(i);
    String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
    try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
        fos.write(img.getData());
    }
    System.out.println("Saved image: " + outputFileName);
}

Aby uzyskać więcej informacji o każdej klasie, odwołaj się do oficjalnej dokumentacji API.

Pełny przykład kodu: wyodrębnianie obrazów z dokumentów PDF w języku Java przy użyciu GroupDocs.Parser

Poniższy przykład demonstruje pełny przepływ pracy od konfiguracji poświadczeń do zapisywania obrazu.

import com.groupdocs.parser.cloud.ApiClient;
import com.groupdocs.parser.cloud.Configuration;
import com.groupdocs.parser.cloud.api.ParserApi;
import com.groupdocs.parser.cloud.model.FileInfo;
import com.groupdocs.parser.cloud.model.Image;
import com.groupdocs.parser.cloud.model.ImagesResult;
import com.groupdocs.parser.cloud.model.requests.ExtractImagesRequest;

import java.io.FileOutputStream;
import java.util.List;

public class ExtractImagesFromPdf {
    public static void main(String[] args) {
        // Configure API credentials
        Configuration config = new Configuration();
        config.setClientId("YOUR_CLIENT_ID");
        config.setClientSecret("YOUR_CLIENT_SECRET");
        // config.setBaseUrl("https://api.groupdocs.cloud"); // optional, if needed

// Initialize API client and Parser API
        ApiClient apiClient = new ApiClient(config);
        ParserApi parserApi = new ParserApi(apiClient);

// Path to the PDF file stored in GroupDocs Cloud storage
        String inputFilePath = "input.pdf";

// Build request for image extraction
        ExtractImagesRequest request = new ExtractImagesRequest()
                .setFileInfo(new FileInfo().setFilePath(inputFilePath));

try {
            // Perform extraction
            ImagesResult imagesResult = parserApi.extractImages(request);
            List<Image> images = imagesResult.getImages();

// Save each extracted image to local disk
            for (int i = 0; i < images.size(); i++) {
                Image img = images.get(i);
                String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
                try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
                    fos.write(img.getData());
                }
                System.out.println("Saved image: " + outputFileName);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem w swoim projekcie upewnij się, że zaktualizowałeś wszystkie ścieżki plików i wartości konfiguracyjne, aby odpowiadały rzeczywistemu środowisku, zweryfikuj, że wszystkie wymagane zależności są prawidłowo zainstalowane, i dokładnie przetestuj w swoim środowisku deweloperskim. Jeśli napotkasz jakiekolwiek problemy, zapoznaj się z oficjalną dokumentacją lub skontaktuj się z zespołem wsparcia, aby uzyskać pomoc.

Wyodrębnianie obrazów z PDF przy użyciu cURL i REST API

Możesz uzyskać ten sam wynik bez pisania kodu w języku Java, wywołując bezpośrednio endpointy REST usługi GroupDocs.Parser Cloud.

  1. Uzyskaj token dostępu
curl -X POST "https://api.groupdocs.cloud/v2.0/connect/token" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Prześlij plik PDF
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input.pdf" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -F "file=@/path/to/input.pdf"
  1. Żądanie wyodrębniania obrazów
curl -X POST "https://api.groupdocs.cloud/v2.0/parser/extractImages" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"fileInfo": {"filePath": "input.pdf"}}'
  1. Pobierz wyodrębnione obrazy (odpowiedź zawiera dane w formacie base64; możesz je zdekodować lokalnie)

Aby uzyskać pełną listę parametrów, zobacz oficjalną dokumentację API.

Instalowanie i konfigurowanie GroupDocs.Parser Cloud SDK for Java

Dodaj zależność Maven do swojego pom.xml (lub równoważny fragment Gradle).

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-parser-cloud</artifactId>
    <version>26.2</version>
</dependency>

SDK jest dostarczany jako biblioteka w chmurze; nie są wymagane lokalne pliki binarne. Pobierz najnowszy pakiet ze strony wydania. Upewnij się, że masz Java 8 lub wyższą oraz ważne konto GroupDocs Cloud z identyfikatorem klienta i sekretem.

GroupDocs.Parser Cloud SDK for Java Funkcje umożliwiające pobieranie obrazów

  • Pełne wyodrębnianie obrazów PDF - Pobiera każdy rastrowy i wektorowy obraz osadzony w dokumencie.
  • Metadane dla każdego obrazu - Zwraca nazwę pliku, rozmiar, format i numer strony.
  • Obsługa wszystkich popularnych formatów obrazów - PNG, JPG, BMP, GIF, TIFF, i więcej.
  • Integracja z przechowywaniem w chmurze - Działa bezpośrednio na plikach przechowywanych w GroupDocs Cloud bez ich pobierania.
  • Skalowalne przetwarzanie oparte na REST‑based - Obsługuje duże pliki PDF i obciążenia o wysokim wolumenie za pośrednictwem API chmury.

Dostrajanie ustawień wyodrębniania obrazów

Choć podstawowe żądanie działa od razu, możesz dostosować opcje, takie jak:

  • Ochrona hasłem - Ustaw właściwość password w FileInfo dla zaszyfrowanych plików PDF.
  • Zakres stron - Ogranicz wyodrębnianie do konkretnych stron, dodając tablicę pages do JSON‑a żądania.
  • Konwersja formatu obrazu - Żądaj konwersji do innego formatu, określając żądany typ wyjściowy w żądaniu (zobacz API reference po dokładne pola).

Przykład ustawiania hasła (wyciąg z głównego kodu):

FileInfo fileInfo = new FileInfo()
        .setFilePath("protected.pdf")
        .setPassword("mySecret");

Praktyczne wskazówki dotyczące wydajnego wyodrębniania obrazów z PDF

  • Sprawdź istnienie pliku przed wysłaniem żądania, aby uniknąć niepotrzebnych wywołań API.
  • Przetwarzaj obrazy w strumieniach przy pracy z dużymi plikami, aby zmniejszyć zużycie pamięci.
  • Używaj paginacji, jeśli potrzebujesz obrazów tylko z określonych stron; przyspiesza to odpowiedź.
  • Obsługuj limity szybkości API poprzez implementację wykładniczego opóźnienia przy odpowiedziach HTTP 429.
  • Loguj nazwę każdego zapisanego pliku, aby uprościć rozwiązywanie problemów i śledzenie audytu.

Podsumowanie

Wyodrębnianie obrazów z dokumentów PDF w Javie staje się prostym i niezawodnym zadaniem, gdy wykorzystujesz moc GroupDocs.Parser Cloud SDK for Java. SDK obsługuje zarządzanie poświadczeniami, interakcję z przechowywaniem w chmurze oraz dekodowanie obrazów, pozwalając Ci skupić się na logice aplikacji. Dla wdrożeń produkcyjnych zakup odpowiednią licencję na stronie cenowej lub uzyskaj tymczasową licencję do oceny. Dzięki przykładowemu kodowi, przewodnikowi cURL i zaleceniom najlepszych praktyk w tym artykule, jesteś gotowy zintegrować wyodrębnianie obrazów PDF z dowolnym rozwiązaniem opartym na Javie.

Najczęściej zadawane pytania

  • Jakie formaty można wyodrębnić z pliku PDF?
    SDK wyodrębnia formaty rastrowe, takie jak PNG, JPG, BMP, GIF i TIFF, a także grafikę wektorową, gdy jest przechowywana jako obrazy.

  • Czy muszę pobrać plik PDF przed wyodrębnieniem obrazów?
    Nie. SDK działa bezpośrednio na plikach przechowywanych w GroupDocs Cloud, eliminując konieczność pobierania ich lokalnie.

  • Jak SDK radzi sobie z dużymi plikami PDF?
    Ekstrakcja jest wykonywana po stronie serwera, więc zużycie pamięci na Twoim komputerze pozostaje niskie. Możesz także ograniczyć ekstrakcję do określonych stron, aby poprawić wydajność.

  • Czy istnieje sposób przetestowania ekstrakcji bez pisania kodu?
    Tak, możesz użyć poleceń cURL podanych powyżej lub wypróbować interaktywną konsolę API na stronie produktu.

Czytaj więcej