<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>pdf watermark on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/pl/tag/pdf-watermark/</link>
    <description>Recent content in pdf watermark on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pl</language>
    <lastBuildDate>Mon, 07 Sep 2026 03:41:37 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/pl/tag/pdf-watermark/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Dodaj znak wodny do PDF w Javie</title>
      <link>https://blog-qa.conholdate.com/pl/total/add-watermark-to-pdf-in-java/</link>
      <pubDate>Mon, 07 Sep 2026 03:41:37 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/pl/total/add-watermark-to-pdf-in-java/</guid>
      <description>Dowiedz się, jak dodać znak wodny do plików PDF w języku Java przy użyciu Conholdate.Total for Java. Ten przewodnik krok po kroku zawiera pełny kod, wskazówki dotyczące konfiguracji i ustawień.</description>
      <content:encoded><![CDATA[<p>Jeśli potrzebujesz dodać znak wodny do <a href="https://docs.fileformat.com/pdf">PDF</a> 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.</p>
<h2 id="pełny-przykład-kodu-dodawanie-znakowania-tekstowego-do-pdf-w-javie">Pełny przykład kodu: Dodawanie znakowania tekstowego do PDF w Javie</h2>
<p>Poniższy przykład pokazuje, jak dodać znak wodny tekstowy do pliku PDF przy użyciu Conholdate.Total for Java.</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.Watermark<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.options.PdfLoadOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.options.PdfSaveOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.watermarks.TextWatermark<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.watermarks.HorizontalAlignment<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.watermarks.VerticalAlignment<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.awt.Color<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.awt.Font<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">AddPdfWatermark</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">main</span><span style="color:#f92672">(</span>String<span style="color:#f92672">[]</span> args<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        String inputFile <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.pdf&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>        String outputFile <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output.pdf&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Create a text watermark
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Font font <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Font<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">,</span> Font<span style="color:#f92672">.</span><span style="color:#a6e22e">BOLD</span><span style="color:#f92672">,</span> 48<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        TextWatermark textWatermark <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermark<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;CONFIDENTIAL&#34;</span><span style="color:#f92672">,</span> font<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span>Color<span style="color:#f92672">.</span><span style="color:#a6e22e">RED</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">3</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotationAngle</span><span style="color:#f92672">(</span>45<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">Center</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">Center</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Load options for the source PDF (enable caching for large files)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        PdfLoadOptions loadOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> PdfLoadOptions<span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        loadOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setCacheSize</span><span style="color:#f92672">(</span>100 <span style="color:#f92672">*</span> 1024 <span style="color:#f92672">*</span> 1024<span style="color:#f92672">);</span> <span style="color:#75715e">// 100 MB cache
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Initialize the Watermark processor
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Watermark watermark <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Watermark<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Apply the watermark to every page of the PDF
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            watermark<span style="color:#f92672">.</span><span style="color:#a6e22e">add</span><span style="color:#f92672">(</span>textWatermark<span style="color:#f92672">,</span> loadOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Save the watermarked PDF
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            PdfSaveOptions saveOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> PdfSaveOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>            watermark<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span>outputFile<span style="color:#f92672">,</span> saveOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>Exception e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Failed to add watermark: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getMessage</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>            e<span style="color:#f92672">.</span><span style="color:#a6e22e">printStackTrace</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<blockquote>
<p><strong>Uwaga:</strong> Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś ścieżki do plików (<code>input.pdf</code>, <code>output.pdf</code> 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 <a href="https://docs.conholdate.com/java/">oficjalnej dokumentacji</a> lub skontaktuj się z <a href="https://forum.conholdate.com/c/total/5">zespołem wsparcia</a> w celu uzyskania pomocy.</p>
</blockquote>
<h2 id="zrozumienie-dodawania-znaku-wodnego-do-pdf-w-kodzie-java">Zrozumienie dodawania znaku wodnego do PDF w kodzie Java</h2>
<p>Kod dodający znak wodny do PDF w Javie podąża za przejrzystą sekwencją, którą możesz dostosować do dowolnego dokumentu PDF.</p>
<ol>
<li><strong>Zainicjalizuj procesor znaków wodnych</strong> - <code>Watermark watermark = new Watermark();</code> tworzy silnik, który zastosuje znaki wodne.</li>
<li><strong>Utwórz TextWatermark</strong> - Obiekt <code>TextWatermark</code> przechowuje tekst, czcionkę, kolor, przezroczystość i obrót.
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Font font <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Font<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">,</span> Font<span style="color:#f92672">.</span><span style="color:#a6e22e">BOLD</span><span style="color:#f92672">,</span> 48<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>TextWatermark textWatermark <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermark<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;CONFIDENTIAL&#34;</span><span style="color:#f92672">,</span> font<span style="color:#f92672">);</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
</li>
<li><strong>Skonfiguruj wygląd</strong> - Metody takie jak <code>setColor</code>, <code>setOpacity</code> i <code>setRotationAngle</code> definiują, jak znak wodny wygląda na stronie.</li>
<li><strong>Załaduj źródłowy PDF</strong> - <code>PdfLoadOptions</code> ładuje plik wejściowy i włącza buforowanie dla dużych dokumentów, co zmniejsza obciążenie pamięci.</li>
<li><strong>Zastosuj i zapisz</strong> - <code>watermark.add(textWatermark, loadOptions);</code> stosuje znak wodny do każdej strony, a <code>watermark.save(outputFile, saveOptions);</code> zapisuje wynik.</li>
</ol>
<h3 id="ładowanie-pliku-pdf-źródłowego-z-pamięcią-podręcznej">Ładowanie pliku PDF źródłowego z pamięcią podręcznej</h3>
<p>Kiedy pracujesz z wieloma‑megabajtowymi plikami PDF, włączenie pamięci podręcznej zapobiega ładowaniu całego dokumentu do pamięci przez SDK. Linia <code>loadOptions.setCacheSize(100 * 1024 * 1024);</code> 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ą.</p>
<p>Aby uzyskać szczegółowe informacje o API, zobacz <a href="https://reference.conholdate.com/java/">referencję API Java</a>.</p>
<h2 id="przygotowanie-środowiska-do-znakowania-pdf">Przygotowanie środowiska do znakowania PDF</h2>
<p>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.</p>
<h3 id="wymagania-wstępne-i-wersja-javy">Wymagania wstępne i wersja Javy</h3>
<ul>
<li>Wymagany jest Java 8 lub nowsza; SDK wykorzystuje nowoczesne funkcje języka i strumienie.</li>
<li>Maven 3.5+ upraszcza zarządzanie zależnościami.</li>
<li>Upewnij się, że plik <code>pom.xml</code> twojego projektu zawiera repozytorium Conholdate, aby Maven mógł rozwiązać artefakt.</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;repositories&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;repository&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;id&gt;</span>conholdate-repo<span style="color:#f92672">&lt;/id&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;name&gt;</span>Conholdate Maven Repository<span style="color:#f92672">&lt;/name&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;url&gt;</span>https://repository.conholdate.com/repo/<span style="color:#f92672">&lt;/url&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;/repository&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/repositories&gt;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;groupId&gt;</span>com.conholdate<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;artifactId&gt;</span>conholdate-total<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;version&gt;</span>24.9<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;type&gt;</span>pom<span style="color:#f92672">&lt;/type&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p>Możesz również pobrać pliki JAR bezpośrednio ze <a href="https://releases.conholdate.com/total/java/">strony pobierania</a>. Po dodaniu zależności uruchom <code>mvn clean install</code>, aby zweryfikować, że SDK znajduje się w Twojej ścieżce klas.</p>
<h3 id="korzystanie-z-interfejsu-rest-api-opcjonalnie">Korzystanie z interfejsu REST API (Opcjonalnie)</h3>
<p>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 <code>curl</code> wygląda następująco:</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.conholdate.com/v1/pdf/watermark&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;file=@input.pdf&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;text=CONFIDENTIAL&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;font=Arial&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;fontSize=48&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;color=FF0000&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;opacity=0.3&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;angle=45&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;horizontalAlignment=center&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -F <span style="color:#e6db74">&#34;verticalAlignment=center&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>  -o output.pdf
</span></span></code></pre></div><!-- raw HTML omitted -->
<p>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.</p>
<h2 id="konfigurowanie-wyglądu-i-położenia-znaku-wodnego">Konfigurowanie wyglądu i położenia znaku wodnego</h2>
<p>SDK udostępnia kilka właściwości, które pozwalają precyzyjnie dostosować znak wodny. Poniżej znajdują się najczęściej regulowane ustawienia.</p>
<h3 id="dostosowywanie-czcionki-i-koloru">Dostosowywanie czcionki i koloru</h3>
<p>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 <code>java.awt.Color</code> lub utworzenie własnej wartości RGB.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Font customFont <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Font<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Times New Roman&#34;</span><span style="color:#f92672">,</span> Font<span style="color:#f92672">.</span><span style="color:#a6e22e">ITALIC</span><span style="color:#f92672">,</span> 36<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span><span style="color:#66d9ef">new</span> Color<span style="color:#f92672">(</span>0<span style="color:#f92672">,</span> 102<span style="color:#f92672">,</span> 204<span style="color:#f92672">));</span> <span style="color:#75715e">// Deep blue
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setFont</span><span style="color:#f92672">(</span>customFont<span style="color:#f92672">);</span>
</span></span></code></pre></div><h3 id="dostosowywanie-przezroczystości-i-obrotu">Dostosowywanie przezroczystości i obrotu</h3>
<p>Przezroczystość kontroluje, jak przezroczysty jest znak wodny. Wartości mieszczą się w przedziale od <code>0.0</code> (całkowicie niewidoczny) do <code>1.0</code> (w pełni nieprzezroczysty). Obrót pozwala przechylić tekst, aby trudniej było go usunąć.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">45</span><span style="color:#f92672">);</span>      <span style="color:#75715e">// 45% opacity
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotationAngle</span><span style="color:#f92672">(</span>30<span style="color:#f92672">);</span> <span style="color:#75715e">// 30 degrees clockwise
</span></span></span></code></pre></div><h3 id="wyrównywanie-znaku-wodnego-na-stronie">Wyrównywanie znaku wodnego na stronie</h3>
<p>Właściwości wyrównania poziomego i pionowego przyjmują <code>Left</code>, <code>Center</code>, <code>Right</code> oraz <code>Top</code>, <code>Center</code>, <code>Bottom</code>. Wyśrodkowanie jest powszechne w przypadku pieczęci poufnych, ale możesz umieścić znak wodny w rogu w celach brandingowych.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">Right</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textWatermark<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">Bottom</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><p>Jeśli chcesz <strong>dodać znak wodny tekstowy do PDF w Javie</strong> 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.</p>
<h2 id="podsumowanie">Podsumowanie</h2>
<p>Dodanie znaku wodnego do PDF w Javie jest proste dzięki <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a>. 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 <a href="https://purchase.conholdate.com/temporary-license/">stronie tymczasowej licencji</a> lub zapoznać się z opcjami cenowymi na <a href="https://purchase.conholdate.com/pricing/total/family/">stronie cenowej</a>. Po omówieniu kodu i kroków konfiguracyjnych jesteś gotowy, aby zintegrować znakowanie PDF w swoich aplikacjach Java.</p>
<h2 id="faqs">FAQs</h2>
<p><strong>Jak dodać znak wodny do PDF w Javie bez pisania niskopoziomowego kodu PDF?</strong><br>
Użyj klasy <code>Watermark</code> z <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a>. Abstrahuje ona strukturę PDF, pozwalając skupić się na właściwościach znaku wodnego, takich jak tekst, czcionka i położenie.</p>
<p><strong>Jakie opcje są dostępne do stylizacji znaku wodnego tekstowego?</strong><br>
Możesz ustawić czcionkę (<code>new Font(...)</code>), rozmiar, styl (pogrubienie, kursywa), kolor (<code>setColor</code>), przezroczystość (<code>setOpacity</code>), obrót (<code>setRotationAngle</code>) oraz wyrównanie (<code>setHorizontalAlignment</code>, <code>setVerticalAlignment</code>). Te opcje są pokazane w pełnym przykładzie kodu.</p>
<p><strong>Czy SDK jest w stanie efektywnie przetwarzać duże pliki PDF?</strong><br>
Tak. Poprzez skonfigurowanie <code>PdfLoadOptions.setCacheSize</code> 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.</p>
<p><strong>Czy muszę kupić licencję, aby uruchomić ten przykład?</strong><br>
Licencja jest wymagana w środowiskach produkcyjnych. Uzyskaj tymczasową licencję ze <a href="https://purchase.conholdate.com/temporary-license/">strony tymczasowej licencji</a> lub zapoznaj się ze szczegółami pełnego cennika na <a href="https://purchase.conholdate.com/pricing/total/family/">stronie cenowej</a>.</p>
<h2 id="czytaj-więcej">Czytaj więcej</h2>
<ul>
<li><a href="https://blog.conholdate.com/pl/total/add-text-to-pdf-in-java/">Dodaj tekst do PDF w Javie</a></li>
<li><a href="https://blog.conholdate.com/pl/total/add-shapes-to-pdf-in-java/">Dodaj kształty do PDF w Javie</a></li>
<li><a href="https://blog.conholdate.com/pl/total/add-barcode-to-pdf-in-java/">Dodaj kod kreskowy do PDF w Javie</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
