Dodaj znak wodny do PDF za pomocą GroupDocs.Watermark dla Javy

W tym przewodniku dowiesz się, jak dodać znak wodny do PDF przy użyciu SDK GroupDocs.Watermark dla Javy. Przeprowadzimy Cię przez ładowanie dokumentów z dysku, strumieni lub źródeł chronionych hasłem, stosowanie znaków wodnych tekstowych lub graficznych oraz ostateczne zapisanie zaktualizowanego PDF. Niezależnie od tego, czy tworzysz przetwarzanie wsadowe, czy usługę obsługującą pojedynczy plik, te kroki zapewnią Ci niezawodne, gotowe do produkcji rozwiązanie.

Szybkie odpowiedzi

  • Czy mogę dodać znak wodny do PDF chronionego hasłem? Tak – podaj hasło podczas ładowania dokumentu, a następnie zastosuj znak wodny w zwykły sposób.
  • Jakie formaty można znakować? Ponad 30 formatów, w tym PDF, DOCX, PPTX i obrazy.
  • Czy potrzebna jest licencja do rozwoju? Tymczasowa licencja działa do testów; pełna licencja jest wymagana w produkcji.
  • Jaka wersja Javy jest wymagana? Obsługiwana jest Java 8 lub nowsza.
  • Czy obsługiwane jest strumieniowanie? Oczywiście – możesz ładować z InputStream i zapisywać do OutputStream bez użycia systemu plików.

Co to jest dodawanie znaku wodnego do PDF?

Dodawanie znaku wodnego do PDF odnosi się do procesu nakładania półprzezroczystego tekstu lub obrazów na każdą stronę dokumentu PDF w celu przekazania własności, poufności lub marki. GroupDocs.Watermark dla Javy udostępnia API jednego wywołania, które automatycznie obsługuje pozycjonowanie, przezroczystość i wybór zakresu stron.

Dlaczego warto używać GroupDocs.Watermark dla Javy?

GroupDocs.Watermark obsługuje ponad 35 formatów plików i może przetworzyć PDF‑y o 500 stronach w mniej niż 2 sekundy na typowym procesorze klasy serwerowej. Biblioteka działa w całości w pamięci, więc nie potrzebujesz zainstalowanego Microsoft Office ani Adobe Acrobat. Jej API jest wątkowo‑bezpieczne, co czyni ją idealną dla usług internetowych o wysokiej przepustowości.

Wymagania wstępne

  • Zainstalowana Java 8 lub nowsza.
  • Projekt Maven lub Gradle skonfigurowany z zależnością groupdocs-watermark.
  • Ważna licencja GroupDocs.Watermark (tymczasowa licencja do oceny).
  • Pliki PDF, które chcesz chronić, opcjonalnie z hasłami.

Jak dodać znak wodny do PDF – krok po kroku

Załaduj dokument źródłowy, zastosuj znak wodny, a następnie zapisz wynik. Poniższe sekcje odpowiadają bezpośrednio na każde podzadanie.

Jak załadować dokument z dysku?

Watermarker jest główną klasą używaną do ładowania i manipulacji dokumentami w celu znakowania. Podaj pełną ścieżkę pliku do konstruktora Watermarker; SDK automatycznie wykrywa format pliku, weryfikuje zawartość i ładuje dokument do pamięci gotowy do każdej operacji znakowania. To podejście działa dla PDF‑ów, plików Word, obrazów i wielu innych obsługiwanych typów.

Watermarker watermarker = new Watermarker("C:/files/input.pdf");

Po tej linii PDF jest w pełni załadowany w pamięci, gotowy do każdej operacji znakowania.

Jak załadować dokument ze strumienia?

Watermarker może również przyjąć InputStream, aby ładować dokumenty bezpośrednio z pamięci. Gdy otrzymujesz plik przez HTTP lub kolejkę wiadomości, opakuj tablicę bajtów w ByteArrayInputStream i przekaż ją do konstruktora Watermarker, który akceptuje InputStream. SDK odczytuje strumień bez zapisywania na dysk, zachowując wydajność i bezpieczeństwo, oraz obsługuje duże pliki, przetwarzając dane w fragmentach. Ta metoda jest idealna dla usług internetowych i architektur mikro‑serwisów.

InputStream pdfStream = new ByteArrayInputStream(pdfBytes);
Watermarker watermarker = new Watermarker(pdfStream);

SDK odczytuje strumień bez zapisywania na dysk, zachowując wydajność i bezpieczeństwo.

Jak załadować dokument chroniony hasłem?

Watermarker obsługuje ładowanie PDF‑ów chronionych hasłem, podając hasło jako drugi argument. Przekaż hasło jako drugi argument do konstruktora. SDK odszyfrowuje PDF w locie, po czym możesz traktować go jak każdy inny dokument. Jeśli hasło jest prawidłowe, wszystkie strony stają się dostępne do znakowania; w przeciwnym razie biblioteka wyrzuca czytelny wyjątek, który możesz przechwycić i zalogować w celu rozwiązywania problemów.

Watermarker watermarker = new Watermarker("C:/files/secure.pdf", "mySecretPwd");

Jeśli hasło jest nieprawidłowe, SDK wyrzuca informacyjny wyjątek, który możesz przechwycić i zalogować.

Jak zastosować znak wodny tekstowy?

TextWatermark reprezentuje znak wodny w formie tekstowej, który można zastosować do stron z konfigurowalnym stylem. Utwórz obiekt TextWatermark z żądanym tekstem, czcionką, rozmiarem i kolorem. Następnie wywołaj add na instancji Watermarker, opcjonalnie podając zakresy stron. Znak wodny jest renderowany z określoną przezroczystością i obrotem, a jego pozycję można ustawić przy użyciu predefiniowanych lokalizacji lub własnych współrzędnych, zapewniając spójny wygląd na wszystkich stronach.

TextWatermark watermark = new TextWatermark("Confidential", new Font("Arial", 36));
watermark.setColor(Color.RED);
watermark.setTransparency(0.5);
watermarker.add(watermark);

To wywołanie umieszcza znak wodny na każdej stronie domyślnie; w razie potrzeby możesz ograniczyć go przy użyciu new PageRange(1, 5).

Jak zastosować znak wodny graficzny?

ImageWatermark reprezentuje znak wodny oparty na obrazie, taki jak logo lub pieczęć. Utwórz ImageWatermark z ścieżką lub strumieniem Twojego logo, a następnie dodaj go podobnie jak znak wodny tekstowy. SDK automatycznie skaluje obraz, aby dopasować go do strony, zachowując proporcje, i możesz dostosować przezroczystość, obrót oraz położenie, aby uzyskać pożądany efekt wizualny bez zniekształcania oryginalnej zawartości.

ImageWatermark imgWatermark = new ImageWatermark("C:/images/logo.png");
imgWatermark.setTransparency(0.3);
watermarker.add(imgWatermark);

SDK skaluje obraz, aby dopasować go do strony, zachowując proporcje.

Jak zapisać dokument z nałożonym znakiem wodnym?

save zapisuje zmodyfikowany dokument w określonym miejscu w wybranym formacie. Wywołaj save z ścieżką wyjściową i żądanym formatem. Ten sam format co źródłowy jest używany, gdy pomijasz parametr formatu. Metoda zapisuje zmodyfikowany PDF na dysku, zachowując całą oryginalną zawartość z wyjątkiem nowo dodanych warstw znaków wodnych, i obsługuje zapisywanie do strumieni w dalszym przetwarzaniu.

watermarker.save("C:/files/output.pdf");

Metoda zapisuje zmodyfikowany PDF na dysku, zachowując całą oryginalną zawartość z wyjątkiem nowo dodanych warstw znaków wodnych.

Dostępne samouczki

Jak załadować dokumenty chronione hasłem w Javie przy użyciu GroupDocs.Watermark

Dowiedz się, jak ładować i zarządzać znakami wodnymi w dokumentach chronionych hasłem przy użyciu GroupDocs.Watermark dla Javy. Ten przewodnik zawiera instrukcje krok po kroku, praktyczne przykłady i wskazówki rozwiązywania problemów.

Jak ładować i znakować dokumenty Word chronione hasłem przy użyciu GroupDocs.Watermark w Javie

Dowiedz się, jak używać GroupDocs.Watermark z Javą do efektywnego ładowania, zarządzania i znakowania dokumentów Word chronionych hasłem.

Dodatkowe zasoby

Typowe problemy i rozwiązania

  • Błąd nieprawidłowego hasła – sprawdź ponownie ciąg hasła; musi być kodowany w UTF‑8.
  • Brak pamięci przy dużych PDF‑ach – włącz tryb strumieniowy, używając konstruktorów Watermarker, które przyjmują InputStream i OutputStream.
  • Znak wodny niewidoczny – upewnij się, że przezroczystość znaku wodnego jest ustawiona powyżej 0.1 i że kolor kontrastuje z tłem strony.

Najczęściej zadawane pytania

Q: Czy mogę dodać wiele znaków wodnych do tego samego PDF?
A: Tak. Wywołuj watermarker.add() wielokrotnie z różnymi obiektami TextWatermark lub ImageWatermark; każdy zostanie nałożony w kolejności dodania.

Q: Czy biblioteka zachowuje istniejące adnotacje?
A: Zdecydowanie tak. Wszystkie oryginalne obiekty PDF, w tym adnotacje, pola formularzy i metadane, pozostają niezmienione, chyba że wyraźnie je zmodyfikujesz.

Q: Czy można znakować tylko wybrane strony?
A: Tak. Przekaż PageRange (np. new PageRange(2, 4)) do metody add, aby ograniczyć znak wodny do konkretnych stron.

Q: Jaki jest maksymalny obsługiwany rozmiar pliku?
A: SDK może obsługiwać pliki do 2 GB bez ładowania całego dokumentu do pamięci, dzięki architekturze strumieniowej.

Q: Jak usunąć znak wodny po jego dodaniu?
A: Użyj watermarker.remove(watermarkId), gdzie watermarkId jest identyfikatorem zwróconym podczas początkowego dodania znaku wodnego.


Ostatnia aktualizacja: 2026-09-16
Testowano z: GroupDocs.Watermark 23.9 dla Javy
Autor: GroupDocs

Powiązane samouczki