Jeśli potrzebujesz dodać znak wodny do PDF w Javie, wizualna nakładka może chronić Twoje dokumenty przed nieautoryzowanym użyciem. Conholdate.Total for Java zapewnia potężny SDK, który upraszcza manipulację PDF po stronie serwera. W tym przewodniku zobaczysz kompletny, gotowy‑do‑uruchomienia przykład, dowiesz się, jak działa każda linia, skonfigurujesz zależność Maven oraz odkryjesz opcje umożliwiające precyzyjne dostosowanie przezroczystości, obrotu i wyrównania dla profesjonalnych rezultatów.

Pełny przykład kodu: Dodawanie znakowania tekstowego do PDF w Javie

Poniższy przykład pokazuje, jak dodać znak wodny tekstowy do pliku PDF przy użyciu Conholdate.Total for Java.

import com.groupdocs.watermark.Watermark;
import com.groupdocs.watermark.options.PdfLoadOptions;
import com.groupdocs.watermark.options.PdfSaveOptions;
import com.groupdocs.watermark.watermarks.TextWatermark;
import com.groupdocs.watermark.watermarks.HorizontalAlignment;
import com.groupdocs.watermark.watermarks.VerticalAlignment;
import java.awt.Color;
import java.awt.Font;

public class AddPdfWatermark {
    public static void main(String[] args) {
        String inputFile = "input.pdf";
        String outputFile = "output.pdf";

// Create a text watermark
        Font font = new Font("Arial", Font.BOLD, 48);
        TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
        textWatermark.setColor(Color.RED);
        textWatermark.setOpacity(0.3);
        textWatermark.setRotationAngle(45);
        textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
        textWatermark.setVerticalAlignment(VerticalAlignment.Center);

// Load options for the source PDF (enable caching for large files)
        PdfLoadOptions loadOptions = new PdfLoadOptions(inputFile);
        loadOptions.setCacheSize(100 * 1024 * 1024); // 100 MB cache

// Initialize the Watermark processor
        Watermark watermark = new Watermark();

try {
            // Apply the watermark to every page of the PDF
            watermark.add(textWatermark, loadOptions);

// Save the watermarked PDF
            PdfSaveOptions saveOptions = new PdfSaveOptions();
            watermark.save(outputFile, saveOptions);
        } catch (Exception e) {
            System.err.println("Failed to add 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, output.pdf itp.), aby odpowiadały rzeczywistym lokalizacjom, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, oraz dokładnie przetestuj w swoim środowisku programistycznym. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.

Zrozumienie dodawania znaku wodnego do PDF w kodzie Java

Kod dodający znak wodny do PDF w Javie podąża za przejrzystą sekwencją, którą możesz dostosować do dowolnego dokumentu PDF.

  1. Zainicjalizuj procesor znaków wodnych - Watermark watermark = new Watermark(); tworzy silnik, który zastosuje znaki wodne.
  2. Utwórz TextWatermark - Obiekt TextWatermark przechowuje tekst, czcionkę, kolor, przezroczystość i obrót.
    Font font = new Font("Arial", Font.BOLD, 48);
    TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
    
  3. Skonfiguruj wygląd - Metody takie jak setColor, setOpacity i setRotationAngle definiują, jak znak wodny wygląda na stronie.
  4. Załaduj źródłowy PDF - PdfLoadOptions ładuje plik wejściowy i włącza buforowanie dla dużych dokumentów, co zmniejsza obciążenie pamięci.
  5. Zastosuj i zapisz - watermark.add(textWatermark, loadOptions); stosuje znak wodny do każdej strony, a watermark.save(outputFile, saveOptions); zapisuje wynik.

Ładowanie pliku PDF źródłowego z pamięcią podręcznej

Kiedy pracujesz z wieloma‑megabajtowymi plikami PDF, włączenie pamięci podręcznej zapobiega ładowaniu całego dokumentu do pamięci przez SDK. Linia loadOptions.setCacheSize(100 * 1024 * 1024); rezerwuje 100 MB na tymczasowe przechowywanie, umożliwiając procesorowi strumieniowanie stron w razie potrzeby. Takie podejście jest szczególnie przydatne w środowiskach serwerowych, gdzie może działać wiele równoczesnych zadań znakowania wodą.

Aby uzyskać szczegółowe informacje o API, zobacz referencję API Java.

Przygotowanie środowiska do znakowania PDF

Proces dodawania znaku wodnego do PDF w Javie zaczyna się od dodania zależności Maven. Następnie potrzebujesz kompatybilnego JDK i niewielkiej ilości konfiguracji.

Wymagania wstępne i wersja Javy

  • Wymagany jest Java 8 lub nowsza; SDK wykorzystuje nowoczesne funkcje języka i strumienie.
  • Maven 3.5+ upraszcza zarządzanie zależnościami.
  • Upewnij się, że plik pom.xml twojego projektu zawiera repozytorium Conholdate, aby Maven mógł rozwiązać artefakt.
<repositories>
  <repository>
    <id>conholdate-repo</id>
    <name>Conholdate Maven Repository</name>
    <url>https://repository.conholdate.com/repo/</url>
  </repository>
</repositories>

<dependency>
  <groupId>com.conholdate</groupId>
  <artifactId>conholdate-total</artifactId>
  <version>24.9</version>
  <type>pom</type>
</dependency>

Możesz również pobrać pliki JAR bezpośrednio ze strony pobierania. Po dodaniu zależności uruchom mvn clean install, aby zweryfikować, że SDK znajduje się w Twojej ścieżce klas.

Korzystanie z interfejsu REST API (Opcjonalnie)

Jeśli wolisz podejście niezależne od języka, Conholdate.Total oferuje również punkt końcowy REST, który może dodawać znaki wodne bez żadnego kodu Java. Proste polecenie curl wygląda następująco:

curl -X POST "https://api.conholdate.com/v1/pdf/watermark" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -F "file=@input.pdf" \
  -F "text=CONFIDENTIAL" \
  -F "font=Arial" \
  -F "fontSize=48" \
  -F "color=FF0000" \
  -F "opacity=0.3" \
  -F "angle=45" \
  -F "horizontalAlignment=center" \
  -F "verticalAlignment=center" \
  -o output.pdf

Wersja REST podąża za tymi samymi logicznymi krokami: ładowanie, konfigurowanie, zastosowanie i zapisywanie, dzięki czemu możesz wybrać podejście, które najlepiej pasuje do Twojej architektury.

Konfigurowanie wyglądu i położenia znaku wodnego

SDK udostępnia kilka właściwości, które pozwalają precyzyjnie dostosować znak wodny. Poniżej znajdują się najczęściej regulowane ustawienia.

Dostosowywanie czcionki i koloru

Możesz zastąpić domyślną czcionkę Arial dowolną czcionką TrueType dostępną na serwerze. Zmiana koloru jest tak prosta, jak przekazanie innej stałej java.awt.Color lub utworzenie własnej wartości RGB.

Font customFont = new Font("Times New Roman", Font.ITALIC, 36);
textWatermark.setColor(new Color(0, 102, 204)); // Deep blue
textWatermark.setFont(customFont);

Dostosowywanie przezroczystości i obrotu

Przezroczystość kontroluje, jak przezroczysty jest znak wodny. Wartości mieszczą się w przedziale od 0.0 (całkowicie niewidoczny) do 1.0 (w pełni nieprzezroczysty). Obrót pozwala przechylić tekst, aby trudniej było go usunąć.

textWatermark.setOpacity(0.45);      // 45% opacity
textWatermark.setRotationAngle(30); // 30 degrees clockwise

Wyrównywanie znaku wodnego na stronie

Właściwości wyrównania poziomego i pionowego przyjmują Left, Center, Right oraz Top, Center, Bottom. Wyśrodkowanie jest powszechne w przypadku pieczęci poufnych, ale możesz umieścić znak wodny w rogu w celach brandingowych.

textWatermark.setHorizontalAlignment(HorizontalAlignment.Right);
textWatermark.setVerticalAlignment(VerticalAlignment.Bottom);

Jeśli chcesz dodać znak wodny tekstowy do PDF w Javie z innym układem na każdej stronie, możesz zmodyfikować te właściwości wewnątrz pętli przetwarzającej strony indywidualnie. SDK obsługuje także znaki wodne w postaci obrazów, wypełnienia gradientowe oraz tekst wieloliniowy, jeśli Twój przypadek użycia wymaga większej złożoności wizualnej.

Podsumowanie

Dodanie znaku wodnego do PDF w Javie jest proste dzięki Conholdate.Total for Java. SDK obsługuje ładowanie, przetwarzanie i zapisywanie plików PDF efektywnie, nawet dużych plików dzięki wbudowanemu buforowaniu. Poprzez dostosowanie przezroczystości, obrotu, czcionki, koloru i wyrównania możesz tworzyć profesjonalnie wyglądające znaki wodne, które zniechęcają do nieautoryzowanego rozpowszechniania. Pamiętaj, aby uzyskać odpowiednią licencję do użytku produkcyjnego; możesz poprosić o tymczasową licencję na stronie tymczasowej licencji lub zapoznać się z opcjami cenowymi na stronie cenowej. Po omówieniu kodu i kroków konfiguracyjnych jesteś gotowy, aby zintegrować znakowanie PDF w swoich aplikacjach Java.

FAQs

Jak dodać znak wodny do PDF w Javie bez pisania niskopoziomowego kodu PDF?
Użyj klasy Watermark z Conholdate.Total for Java. Abstrahuje ona strukturę PDF, pozwalając skupić się na właściwościach znaku wodnego, takich jak tekst, czcionka i położenie.

Jakie opcje są dostępne do stylizacji znaku wodnego tekstowego?
Możesz ustawić czcionkę (new Font(...)), rozmiar, styl (pogrubienie, kursywa), kolor (setColor), przezroczystość (setOpacity), obrót (setRotationAngle) oraz wyrównanie (setHorizontalAlignment, setVerticalAlignment). Te opcje są pokazane w pełnym przykładzie kodu.

Czy SDK jest w stanie efektywnie przetwarzać duże pliki PDF?
Tak. Poprzez skonfigurowanie PdfLoadOptions.setCacheSize włączasz strumieniowanie i buforowanie, co zmniejsza zużycie pamięci przy wielomegabajtowych plikach PDF. Dzięki temu proces dodawania znaku wodnego do PDF w Javie jest odpowiedni do przetwarzania wsadowego na serwerach.

Czy muszę kupić licencję, aby uruchomić ten przykład?
Licencja jest wymagana w środowiskach produkcyjnych. Uzyskaj tymczasową licencję ze strony tymczasowej licencji lub zapoznaj się ze szczegółami pełnego cennika na stronie cenowej.

Czytaj więcej