Dodanie wizualnego identyfikatora do plików PDF jest niezbędne do ochrony własności intelektualnej i brandingu dokumentów. GroupDocs.Watermark Cloud SDK for Java oferuje prosty interfejs API umożliwiający osadzanie znaków wodnych w postaci obrazu bezpośrednio w plikach PDF z poziomu aplikacji Java. W tym samouczku dowiesz się, jak dodać znak wodny obrazu do dokumentów PDF w Javie, zobaczysz kompletny działający przykład oraz poznasz równoważne wywołania cURL REST dla integracji w chmurze.

Dodaj znak wodny obrazu do dokumentów PDF w Javie w 5 krokach

  1. Zainicjuj klienta API: Utwórz instancję ApiClient z identyfikatorem klienta i sekretem.
ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);

Ten krok łączy Twój kod Java z usługą GroupDocs.Watermark Cloud. Zobacz odniesienie API po więcej szczegółów.

  1. Określ plik PDF źródłowy: Utwórz obiekt FileInfo, który wskazuje na PDF, który chcesz oznaczyć znakiem wodnym.
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("input.pdf");

Plik musi zostać przesłany do Twojego magazynu GroupDocs przed żądaniem.

  1. Skonfiguruj znak wodny obrazu: Zdefiniuj ścieżkę obrazu, krycie, współczynnik skali, obrót i wyrównanie.
ImageWatermark imageWatermark = new ImageWatermark();
imageWatermark.setImagePath("watermark.png");
imageWatermark.setOpacity(0.5);
imageWatermark.setScaleFactor(0.3);
imageWatermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
imageWatermark.setVerticalAlignment(VerticalAlignment.CENTER);
imageWatermark.setMargin(new Margin(10, 10, 10, 10));

Dostosuj te wartości, aby uzyskać pożądany wygląd; krycie kontroluje przejrzystość, natomiast współczynnik skali określa rozmiar względem strony.

  1. Ustaw opcje znaku wodnego i ścieżkę wyjściową: Połącz informacje o pliku i znak wodny w obiekt WatermarkOptions.
WatermarkOptions options = new WatermarkOptions();
options.setFileInfo(fileInfo);
options.setImageWatermark(imageWatermark);
options.setOutputPath("output.pdf");

outputPath informuje usługę, gdzie ma przechowywać wynikowy plik PDF.

  1. Wykonaj żądanie: Utwórz AddWatermarkRequest i wywołaj API. Obsłuż odpowiedzi sukcesu lub błędu.
AddWatermarkRequest request = new AddWatermarkRequest(options);
try {
    AddWatermarkResponse response = watermarkApi.addWatermark(request);
    System.out.println("Watermark added successfully. Output file: " + response.getPath());
} catch (Exception e) {
    System.err.println("Error adding watermark: " + e.getMessage());
}

Po wykonaniu żądania plik PDF z dodanym znakiem wodnym jest dostępny w określonej lokalizacji.

Kompletny przykład kodu: Dodaj znak wodny obrazu do dokumentów PDF w Javie

Poniższy przykład demonstruje pełną implementację, od inicjalizacji klienta po zapisanie PDF z znakiem wodnym.

import com.groupdocs.cloud.watermark.api.WatermarkApi;
import com.groupdocs.cloud.watermark.client.ApiClient;
import com.groupdocs.cloud.watermark.model.AddWatermarkRequest;
import com.groupdocs.cloud.watermark.model.AddWatermarkResponse;
import com.groupdocs.cloud.watermark.model.FileInfo;
import com.groupdocs.cloud.watermark.model.ImageWatermark;
import com.groupdocs.cloud.watermark.model.Margin;
import com.groupdocs.cloud.watermark.model.WatermarkOptions;
import com.groupdocs.cloud.watermark.model.enums.HorizontalAlignment;
import com.groupdocs.cloud.watermark.model.enums.VerticalAlignment;

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

// Input PDF file information
        FileInfo fileInfo = new FileInfo();
        fileInfo.setFilePath("input.pdf");

// Image watermark configuration
        ImageWatermark imageWatermark = new ImageWatermark();
        imageWatermark.setImagePath("watermark.png");          // Path to watermark image
        imageWatermark.setOpacity(0.5);                        // 50% opacity
        imageWatermark.setScaleFactor(0.3);                    // 30% of page size
        imageWatermark.setRotationAngle(0);                    // No rotation
        imageWatermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
        imageWatermark.setVerticalAlignment(VerticalAlignment.CENTER);
        imageWatermark.setMargin(new Margin(10, 10, 10, 10));  // 10 points margin on all sides

// Watermark options
        WatermarkOptions options = new WatermarkOptions();
        options.setFileInfo(fileInfo);
        options.setImageWatermark(imageWatermark);
        options.setOutputPath("output.pdf"); // Resulting PDF with watermark

// Create request and call API
        AddWatermarkRequest request = new AddWatermarkRequest(options);
        try {
            AddWatermarkResponse response = watermarkApi.addWatermark(request);
            System.out.println("Watermark added successfully. Output file: " + response.getPath());
        } catch (Exception e) {
            System.err.println("Error adding watermark: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś ścieżki do plików (input.pdf, watermark.png, output.pdf), aby odpowiadały rzeczywistym lokalizacjom, sprawdź, czy wszystkie wymagane zależności są poprawnie zainstalowane, oraz dokładnie przetestuj w środowisku programistycznym. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.

Zastosuj znak wodny obrazu w dokumentach PDF za pomocą cURL i REST API

Poniżej znajdują się wywołania REST, których możesz użyć z cURL, aby uzyskać ten sam wynik bez pisania kodu w języku Java.

  1. 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"}'

Odpowiedź zawiera access_token używany w kolejnych wywołaniach.

  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=@/path/to/input.pdf"
    
  2. Prześlij obraz znaku wodnego

    curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=watermark.png" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -F "file=@/path/to/watermark.png"
    
  3. Dodaj znak wodny obrazu

curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/add" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "input.pdf" },
           "imageWatermark": {
               "imagePath": "watermark.png",
               "opacity": 0.5,
               "scaleFactor": 0.3,
               "horizontalAlignment": "Center",
               "verticalAlignment": "Center",
               "margin": { "top": 10, "right": 10, "bottom": 10, "left": 10 }
           },
           "outputPath": "output.pdf"
         }'

To żądanie odzwierciedla logikę kodu Java, stosując te same ustawienia przezroczystości, skalowania i wyrównania.

  1. Pobierz PDF z znakiem wodnym
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ć więcej informacji o ciałach żądań i obsługiwanych parametrach, zobacz oficjalną dokumentację API.

Instalowanie i konfigurowanie GroupDocs.Watermark Cloud SDK for Java

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

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

Potrzebujesz także ważnego konta GroupDocs Cloud. Pobierz swój Client ID i Client Secret z portalu GroupDocs. Nie jest wymagana dodatkowa instalacja środowiska uruchomieniowego, ponieważ SDK komunikuje się z usługą w chmurze.

Dostosowywanie opcji znaku wodnego obrazu dla dokumentów PDF

SDK udostępnia kilka właściwości, które pozwalają kontrolować wygląd wizualny znaku wodnego.

Dostosuj przezroczystość

imageWatermark.setOpacity(0.75); // 75% opacity for a more visible watermark

Wartości nieprzezroczystości mieszczą się w przedziale od 0.0 (całkowicie przezroczyste) do 1.0 (całkowicie nieprzezroczyste).

Zmień współczynnik skali

imageWatermark.setScaleFactor(0.5); // Watermark occupies 50% of the page width

Współczynnik skalowania określa rozmiar znaku wodnego względem wymiarów strony.

Ustaw wyrównanie i marginesy

imageWatermark.setHorizontalAlignment(HorizontalAlignment.RIGHT);
imageWatermark.setVerticalAlignment(VerticalAlignment.BOTTOM);
imageWatermark.setMargin(new Margin(20, 20, 20, 20));

Te ustawienia umieszczają znak wodny w prawym dolnym rogu z marginesem 20 punktów.

Aby uzyskać pełną listę konfigurowalnych właściwości, odwołaj się do referencji API.

Podsumowanie

Dodanie znaku wodnego w postaci obrazu do dokumentów PDF w Javie jest prostym zadaniem, gdy używasz GroupDocs.Watermark Cloud SDK for Java. SDK obsługuje wszystkie niskopoziomowe operacje na PDF, pozwalając skupić się na aspektach wizualnych, takich jak przezroczystość, skalowanie i pozycjonowanie. Niezależnie od tego, czy wolisz natywną implementację w Javie, czy chmurę opartą na cURL, te same wysokiej jakości wyniki są osiągalne bez utraty wydajności. Pamiętaj, aby uzyskać odpowiednią licencję do użytku produkcyjnego; szczegóły cenowe są dostępne na stronie produktu, a strona tymczasowej licencji może być użyta do oceny.

Najczęściej zadawane pytania

  • Jak dodać znak wodny obrazu do PDF w Javie bez utraty jakości?
    Użyj właściwości scaleFactor, aby dopasować rozmiar znaku wodnego względem strony i zachować oryginalną rozdzielczość DPI źródłowego PDF. SDK zachowuje rozdzielczość PDF, więc znak wodny pozostaje wyraźny przy każdym poziomie powiększenia.

  • Czy mogę dodać wiele znaków wodnych do tego samego PDF?
    Tak. Utwórz osobne obiekty ImageWatermark z różnymi konfiguracjami i dodawaj je kolejno, wywołując addWatermark wielokrotnie lub dodając je do listy w żądaniu.

  • Jakie formaty obrazów są obsługiwane dla znaku wodnego?
    API akceptuje powszechne typy obrazów, takie jak PNG, JPG, BMP, GIF oraz TIFF. PNG jest zalecany ze względu na bezstratną jakość i obsługę przezroczystości.

  • Czy istnieje sposób, aby podglądnąć znak wodny przed jego zastosowaniem?
    Możesz użyć GroupDocs.Watermark Cloud SDK for Java, aby wygenerować tymczasowy plik PDF ze znakiem wodnym i pobrać go do przeglądu. To używa tego samego wywołania addWatermark z ścieżką wyjściową wskazującą tymczasową lokalizację.

Czytaj więcej