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.
- 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"}'
- 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"
- 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"}]
}'
- 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
ImageSearchCriteriado 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
outputPathz 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 metodyremoveklasyWatermarkApizImageSearchCriteria, 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 obiekcieFileInfo(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ń rozszerzeniafilePathioutputPathodpowiednio.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.
