<?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>java pdf on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/vi/tag/java-pdf/</link>
    <description>Recent content in java pdf on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>vi</language>
    <lastBuildDate>Mon, 07 Sep 2026 03:41:37 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/vi/tag/java-pdf/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Thêm Watermark vào PDF trong Java</title>
      <link>https://blog-qa.conholdate.com/vi/total/add-watermark-to-pdf-in-java/</link>
      <pubDate>Mon, 07 Sep 2026 03:41:37 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/vi/total/add-watermark-to-pdf-in-java/</guid>
      <description>Tìm hiểu cách thêm watermark vào các tệp PDF trong Java bằng Conholdate.Total for Java. Hướng dẫn từng bước này bao gồm mã đầy đủ, thiết lập và các mẹo cấu hình.</description>
      <content:encoded><![CDATA[<p>Nếu bạn cần thêm Watermark vào <a href="https://docs.fileformat.com/pdf">PDF</a> trong Java, một lớp phủ hình ảnh có thể bảo vệ tài liệu của bạn khỏi việc sử dụng trái phép. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> cung cấp một SDK mạnh mẽ giúp đơn giản hóa việc thao tác PDF phía máy chủ. Trong hướng dẫn này, bạn sẽ thấy một ví dụ hoàn chỉnh, sẵn sàng chạy, tìm hiểu cách mỗi dòng hoạt động, thiết lập phụ thuộc Maven, và khám phá các tùy chọn để tinh chỉnh độ trong suốt, góc quay và căn chỉnh nhằm đạt kết quả chuyên nghiệp.</p>
<h2 id="ví-dụ-mã-hoàn-chỉnh-thêm-dấu-watermark-văn-bản-vào-pdf-trong-java">Ví dụ mã hoàn chỉnh: Thêm dấu watermark văn bản vào PDF trong Java</h2>
<p>Ví dụ sau đây minh họa cách thêm dấu watermark dạng văn bản vào tệp PDF bằng Conholdate.Total for Java.</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><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><blockquote>
<p><strong>Lưu ý:</strong> Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật các đường dẫn tệp (<code>input.pdf</code>, <code>output.pdf</code>, v.v.) cho phù hợp với vị trí tệp thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo <a href="https://docs.conholdate.com/java/">tài liệu chính thức</a> hoặc liên hệ với <a href="https://forum.conholdate.com/c/total/5">đội hỗ trợ</a> để được trợ giúp.</p>
</blockquote>
<h2 id="hiểu-về-thêm-đánh-dấu-nước-vào-pdf-trong-mã-java">Hiểu về Thêm Đánh Dấu Nước vào PDF trong Mã Java</h2>
<p>Mã thêm Watermark vào PDF trong Java tuân theo một chuỗi rõ ràng mà bạn có thể áp dụng cho bất kỳ tài liệu PDF nào.</p>
<ol>
<li><strong>Khởi tạo Watermark Processor</strong> - <code>Watermark watermark = new Watermark();</code> tạo ra động cơ sẽ áp dụng watermark.</li>
<li><strong>Tạo TextWatermark</strong> - Đối tượng <code>TextWatermark</code> chứa văn bản, phông chữ, màu, độ trong suốt và góc quay.
<!-- 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>Cấu hình giao diện</strong> - Các phương thức như <code>setColor</code>, <code>setOpacity</code> và <code>setRotationAngle</code> xác định cách watermark hiển thị trên trang.</li>
<li><strong>Tải PDF nguồn</strong> - <code>PdfLoadOptions</code> tải tệp đầu vào và bật bộ nhớ đệm cho tài liệu lớn, giúp giảm áp lực bộ nhớ.</li>
<li><strong>Áp dụng và Lưu</strong> - <code>watermark.add(textWatermark, loadOptions);</code> áp dụng watermark cho mọi trang, và <code>watermark.save(outputFile, saveOptions);</code> ghi kết quả.</li>
</ol>
<h3 id="tải-pdf-nguồn-với-bộ-nhớ-đệm">Tải PDF nguồn với bộ nhớ đệm</h3>
<p>Khi bạn làm việc với các tệp PDF có kích thước đa megabyte, việc bật bộ nhớ đệm ngăn SDK tải toàn bộ tài liệu vào bộ nhớ. Dòng <code>loadOptions.setCacheSize(100 * 1024 * 1024);</code> dành ra 100 MB cho bộ nhớ tạm, cho phép bộ xử lý truyền luồng các trang khi cần. Cách tiếp cận này đặc biệt hữu ích trong môi trường máy chủ nơi có nhiều công việc đánh dấu bản quyền đồng thời chạy.</p>
<p>Để biết thông tin chi tiết về API, xem <a href="https://reference.conholdate.com/java/">tài liệu tham khảo API Java</a>.</p>
<h2 id="chuẩn-bị-môi-trường-cho-việc-chèn-watermark-vào-pdf">Chuẩn bị môi trường cho việc chèn watermark vào PDF</h2>
<p>Quy trình thêm Watermark vào PDF trong Java bắt đầu bằng việc thêm phụ thuộc Maven. Sau đó, bạn cần một JDK tương thích và một lượng cấu hình nhỏ.</p>
<h3 id="các-yêu-cầu-và-phiên-bản-java">Các yêu cầu và phiên bản Java</h3>
<ul>
<li>Java 8 trở lên là bắt buộc; SDK sử dụng các tính năng ngôn ngữ hiện đại và streams.</li>
<li>Maven 3.5+ đơn giản hoá việc quản lý phụ thuộc.</li>
<li>Đảm bảo rằng <code>pom.xml</code> của dự án của bạn bao gồm repository Conholdate để Maven có thể giải quyết artifact.</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>Bạn cũng có thể tải các tệp JAR trực tiếp từ <a href="https://releases.conholdate.com/total/java/">trang tải xuống</a>. Sau khi thêm phụ thuộc, chạy <code>mvn clean install</code> để xác minh rằng SDK đã có trong classpath của bạn.</p>
<h3 id="sử-dụng-rest-api-tùy-chọn">Sử dụng REST API (Tùy chọn)</h3>
<p>Nếu bạn muốn một cách tiếp cận không phụ thuộc vào ngôn ngữ, Conholdate.Total cũng cung cấp một endpoint REST có thể thêm watermark mà không cần bất kỳ mã Java nào. Một lệnh <code>curl</code> đơn giản trông như sau:</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-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><p>Phiên bản REST tuân theo các bước logic giống nhau: tải, cấu hình, áp dụng và lưu, vì vậy bạn có thể chọn cách tiếp cận phù hợp nhất với kiến trúc của mình.</p>
<h2 id="cấu-hình-giao-diện-và-vị-trí-watermark">Cấu hình giao diện và vị trí Watermark</h2>
<p>SDK cung cấp một số thuộc tính cho phép bạn tinh chỉnh watermark. Dưới đây là các cài đặt thường được điều chỉnh nhất.</p>
<h3 id="tùy-chỉnh-phông-chữ-và-màu-sắc">Tùy chỉnh phông chữ và màu sắc</h3>
<p>Bạn có thể thay thế phông chữ Arial mặc định bằng bất kỳ phông chữ TrueType nào có sẵn trên máy chủ. Thay đổi màu sắc đơn giản chỉ cần truyền một hằng số <code>java.awt.Color</code> khác hoặc tạo một giá trị RGB tùy chỉnh.</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="điều-chỉnh-độ-trong-suốt-và-xoay">Điều chỉnh Độ trong suốt và Xoay</h3>
<p>Độ trong suốt kiểm soát mức độ trong suốt của watermark. Giá trị nằm trong khoảng từ <code>0.0</code> (hoàn toàn vô hình) đến <code>1.0</code> (đầy đủ độ đục). Xoay cho phép bạn nghiêng văn bản để làm cho việc xóa khó hơn.</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="căn-chỉnh-watermark-trên-trang">Căn chỉnh Watermark trên Trang</h3>
<p>Các thuộc tính căn chỉnh ngang và dọc chấp nhận <code>Left</code>, <code>Center</code>, <code>Right</code> và <code>Top</code>, <code>Center</code>, <code>Bottom</code>. Việc căn giữa thường được sử dụng cho dấu mật, nhưng bạn có thể đặt watermark ở góc để mục đích thương hiệu.</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>Nếu bạn muốn <strong>thêm Watermark văn bản vào PDF trong Java</strong> với bố cục khác nhau trên mỗi trang, bạn có thể sửa đổi các thuộc tính này trong một vòng lặp xử lý từng trang riêng biệt. SDK cũng hỗ trợ watermark hình ảnh, độ phủ gradient và văn bản đa dòng nếu trường hợp sử dụng của bạn yêu cầu độ phức tạp hình ảnh cao hơn.</p>
<h2 id="kết-luận">Kết luận</h2>
<p>Thêm watermark vào PDF trong Java rất đơn giản với <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a>. SDK xử lý việc tải, xử lý và lưu PDF một cách hiệu quả, ngay cả với các tệp lớn nhờ bộ nhớ đệm tích hợp. Bằng cách tùy chỉnh độ trong suốt, góc quay, phông chữ, màu sắc và căn chỉnh, bạn có thể tạo các watermark chuyên nghiệp ngăn chặn việc phân phối trái phép. Hãy nhớ mua giấy phép phù hợp cho việc sử dụng trong môi trường sản xuất; bạn có thể yêu cầu giấy phép tạm thời từ <a href="https://purchase.conholdate.com/temporary-license/">temporary license page</a> hoặc xem các tùy chọn giá trên <a href="https://purchase.conholdate.com/pricing/total/family/">pricing page</a>. Với mã và các bước cấu hình đã được trình bày, bạn đã sẵn sàng tích hợp chức năng watermark PDF vào các ứng dụng Java của mình.</p>
<h2 id="faqs">FAQs</h2>
<p><strong>Làm thế nào tôi có thể thêm Watermark vào PDF trong Java mà không cần viết mã PDF cấp thấp?</strong><br>
Sử dụng lớp <code>Watermark</code> từ <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a>. Nó trừu tượng hoá cấu trúc PDF, cho phép bạn tập trung vào các thuộc tính watermark như văn bản, phông chữ và vị trí.</p>
<p><strong>Các tùy chọn nào có sẵn để định dạng watermark văn bản?</strong><br>
Bạn có thể đặt phông chữ (<code>new Font(...)</code>), kích thước, kiểu (đậm, nghiêng), màu (<code>setColor</code>), độ trong suốt (<code>setOpacity</code>), góc quay (<code>setRotationAngle</code>), và căn chỉnh (<code>setHorizontalAlignment</code>, <code>setVerticalAlignment</code>). Các tùy chọn này được minh họa trong ví dụ mã đầy đủ.</p>
<p><strong>SDK có thể xử lý các tệp PDF lớn một cách hiệu quả không?</strong><br>
Có. Bằng cách cấu hình <code>PdfLoadOptions.setCacheSize</code>, bạn kích hoạt việc truyền dữ liệu và lưu vào bộ nhớ đệm, giúp giảm tiêu thụ bộ nhớ cho các tệp PDF có kích thước đa megabyte. Điều này làm cho quy trình thêm Watermark vào PDF trong Java phù hợp cho việc xử lý hàng loạt trên máy chủ.</p>
<p><strong>Tôi có cần mua giấy phép để chạy ví dụ này không?</strong><br>
Giấy phép là bắt buộc cho các triển khai sản xuất. Nhận giấy phép tạm thời từ <a href="https://purchase.conholdate.com/temporary-license/">trang giấy phép tạm thời</a> hoặc khám phá chi tiết giá đầy đủ tại <a href="https://purchase.conholdate.com/pricing/total/family/">trang giá</a>.</p>
<h2 id="đọc-thêm">Đọc thêm</h2>
<ul>
<li><a href="https://blog.conholdate.com/vi/total/add-text-to-pdf-in-java/">Thêm văn bản vào PDF trong Java</a></li>
<li><a href="https://blog.conholdate.com/vi/total/add-shapes-to-pdf-in-java/">Thêm hình dạng vào PDF trong Java</a></li>
<li><a href="https://blog.conholdate.com/vi/total/add-barcode-to-pdf-in-java/">Thêm mã vạch vào PDF trong Java</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
