Niewłaściwe znaki wodne w postaci obrazów mogą sprawić, że dokumenty PDF wyglądają nieprofesjonalnie i utrudniają dalsze przetwarzanie. GroupDocs.Watermark Cloud SDK for Java oferuje solidne API, które pozwala programistom Java programowo usuwać te znaki wodne z plików PDF. Ten przewodnik pokazuje, jak usunąć znak wodny obrazu z PDF w Javie przy użyciu punktu końcowego usuwania SDK. Po zakończeniu będziesz w stanie zintegrować automatyczne usuwanie znaków wodnych w dowolnej aplikacji Java.

Środowisko programistyczne Java - wymagania wstępne i konfiguracja

Zanim rozpoczniesz, upewnij się, że masz następujące:

  • Zainstalowany Java 17 lub nowszy.
  • Maven lub Gradle do zarządzania zależnościami.
  • Konto GroupDocs Cloud z client ID i client secret.

Dodaj SDK do swojego projektu, używając poniższej zależności Maven (możesz także użyć odpowiednika Gradle). Najnowsze pliki binarne są dostępne na stronie pobierania.

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-watermark-cloud</artifactId>
    <version>23.8</version>
</dependency>

Zainicjalizuj klienta API, używając swoich danych uwierzytelniających. Ten fragment kodu został pobrany bezpośrednio z przykładowego kodu.

ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);

Gdy klient jest gotowy, możesz przejść do rzeczywistego przepływu usuwania.

Przewodnik krok po kroku usuwania znaku wodnego obrazu z PDF w Javie

Krok 1: Załaduj dokument źródłowy

Najpierw określ PDF, który chcesz wyczyścić. Obiekt FileInfo informuje API, gdzie znajduje się plik i opcjonalnie podaje hasło.

FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.pdf");
// inputFile.setPassword("pdfPassword"); // Uncomment if needed

Krok 2: Zdefiniuj kryteria znaku wodnego obrazu

Utwórz ImageSearchCriteria, które wskazuje obraz znaku wodnego, który chcesz usunąć. To jest sedno operacji usuwanie obrazu znaku wodnego z PDF w Javie.

ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
imageCriteria.setImagePath("watermark.png");

Krok 3: Ustaw opcje usuwania

Połącz informacje o pliku i kryteria wyszukiwania w obiekt RemoveOptions. Określasz również, gdzie zostanie zapisany wyczyszczony plik PDF.

RemoveOptions removeOptions = new RemoveOptions();
removeOptions.setFileInfo(inputFile);
removeOptions.setOutputPath("output.pdf");
removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

Krok 4: Wykonaj wywołanie usunięcia

Wywołaj metodę remove na WatermarkApi. Wywołanie zwraca RemoveResult, który zawiera ścieżkę do przetworzonego pliku.

RemoveResult result = watermarkApi.remove(removeOptions);
System.out.println("Watermark removal completed. Output file: " + result.getPath());

Krok 5: Przetwórz wynik

Obsłuż wszelkie wyjątki, które mogą wystąpić. SDK rzuca ApiException w przypadku błędów po stronie usługi oraz ogólny Exception w sytuacjach nieoczekiwanych.

try {
    // removal code above
} catch (ApiException e) {
    System.err.println("API exception occurred: " + e.getMessage());
} catch (Exception e) {
    System.err.println("Unexpected error: " + e.getMessage());
}

Pełny przykład kodu: usuwanie znaku wodnego z obrazu przy użyciu GroupDocs

Poniższy przykład demonstruje pełny przepływ pracy od inicjalizacji klienta po obsługę wyniku.

import com.groupdocs.watermark.cloud.api.WatermarkApi;
import com.groupdocs.watermark.cloud.client.ApiClient;
import com.groupdocs.watermark.cloud.client.ApiException;
import com.groupdocs.watermark.cloud.model.FileInfo;
import com.groupdocs.watermark.cloud.model.ImageSearchCriteria;
import com.groupdocs.watermark.cloud.model.RemoveOptions;
import com.groupdocs.watermark.cloud.model.RemoveResult;
import java.util.Collections;

public class RemoveImageWatermarkFromPdf {
    public static void main(String[] args) {
        // Initialize API client with your credentials
        ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
        WatermarkApi watermarkApi = new WatermarkApi(apiClient);

// Prepare input file information
        FileInfo inputFile = new FileInfo();
        inputFile.setFilePath("input.pdf");
        // If the PDF is password protected, uncomment the following line and set the password
        // inputFile.setPassword("pdfPassword");

// Define the image watermark to be removed
        ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
        imageCriteria.setImagePath("watermark.png");

// Set up removal options
        RemoveOptions removeOptions = new RemoveOptions();
        removeOptions.setFileInfo(inputFile);
        removeOptions.setOutputPath("output.pdf");
        removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

try {
            // Execute removal
            RemoveResult result = watermarkApi.remove(removeOptions);
            System.out.println("Watermark removal completed. Output file: " + result.getPath());
        } catch (ApiException e) {
            System.err.println("API exception occurred: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Unexpected error: " + e.getMessage());
        }
    }
}

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś wszystkie ścieżki plików i wartości konfiguracyjne, aby odpowiadały rzeczywistemu środowisku, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, oraz dokładnie przetestuj w środowisku deweloperskim. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.

Operacja usuwania znaku wodnego przy użyciu REST API i cURL

Jeśli wolisz czyste podejście REST, tę samą operację można wykonać za pomocą poleceń cURL.

  1. Uwierzytelnij i uzyskaj token dostępu
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
  1. Prześlij źródłowy PDF
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@/local/path/input.pdf"
  1. Wykonaj usunięcie znaku wodnego
curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/remove" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": {"filePath":"input.pdf"},
           "outputPath":"output.pdf",
           "searchCriteria":[{"type":"Image","imagePath":"watermark.png"}]
         }'
  1. Pobierz oczyszczony PDF
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download?path=output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

Aby uzyskać pełną dokumentację, zobacz dokumentację API.

Opcje usuwania dostrajania

SDK udostępnia kilka właściwości, które możesz dostosować do różnych scenariuszy.

  • Ochrona hasłem - Jeśli źródłowy PDF jest zaszyfrowany, ustaw hasło w FileInfo.
  inputFile.setPassword("mySecret");
  • Wiele kryteriów wyszukiwania - Usuń kilka znaków wodnych w jednym wywołaniu, dodając więcej obiektów ImageSearchCriteria do listy.
  ImageSearchCriteria logoCriteria = new ImageSearchCriteria();
  logoCriteria.setImagePath("logo.png");
  removeOptions.setSearchCriteria(Arrays.asList(imageCriteria, logoCriteria));
  • Format wyjściowy - Mimo że domyślnie jest PDF, możesz zmienić format wyjściowy, ustawiając outputPath z innym rozszerzeniem (np. output.docx).
  removeOptions.setOutputPath("output.docx");

Te opcje pozwalają dostosować proces usuwania znaku wodnego obrazu z PDF w Javie do Twoich dokładnych potrzeb.

Podsumowanie

Programowe usuwanie znaków wodnych obrazu z plików PDF jest proste przy użyciu GroupDocs.Watermark Cloud SDK for Java. Postępując zgodnie z powyższymi krokami, możesz zintegrować usuwanie znaków wodnych z dowolnym backendem Java, obsługiwać zaszyfrowane pliki PDF i precyzyjnie dostosować operację dzięki elastycznym opcjom. Pamiętaj, aby uzyskać odpowiednią licencję do użytku produkcyjnego; szczegóły cenowe są dostępne na stronie produktu, a tymczasową licencję można zamówić poprzez stronę tymczasowej licencji. Rozpocznij czyszczenie swoich PDF‑ów już dziś i dostarczaj użytkownikom dopracowane dokumenty.

FAQs

  • Jak usunąć znak wodny obrazu z PDF w Javie?
    Użyj metody remove klasy WatermarkApi z ImageSearchCriteria, które wskazuje na obraz znaku wodnego. Pełny przykład kodu w tym artykule pokazuje dokładne kroki.

  • Co jeśli mój PDF jest zabezpieczony hasłem?
    Ustaw hasło na obiekcie FileInfo (inputFile.setPassword("yourPassword")) przed wywołaniem API usuwania. SDK automatycznie odszyfruje, przetworzy i ponownie zaszyfruje plik.

  • Czy mogę usunąć znaki wodne z innych formatów, takich jak DOCX?
    Tak. To samo API działa z każdym formatem obsługiwanym przez GroupDocs.Watermark. Po prostu zmień rozszerzenia filePath i outputPath odpowiednio.

  • Czy istnieją limity rozmiaru pliku PDF, który mogę przetworzyć?
    Usługa w chmurze obsługuje pliki do 500 MB na żądanie. W przypadku większych dokumentów rozważ podzielenie pliku PDF na mniejsze części przed przetwarzaniem.

Czytaj więcej