Nếu bạn cần thêm Watermark vào PDF 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. Conholdate.Total for Java 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.

Ví dụ mã hoàn chỉnh: Thêm dấu watermark văn bản vào PDF trong Java

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.

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();
        }
    }
}

Lưu ý: 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 (input.pdf, output.pdf, 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 tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.

Hiểu về Thêm Đánh Dấu Nước vào PDF trong Mã Java

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.

  1. Khởi tạo Watermark Processor - Watermark watermark = new Watermark(); tạo ra động cơ sẽ áp dụng watermark.
  2. Tạo TextWatermark - Đối tượng TextWatermark chứa văn bản, phông chữ, màu, độ trong suốt và góc quay.
    Font font = new Font("Arial", Font.BOLD, 48);
    TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
    
  3. Cấu hình giao diện - Các phương thức như setColor, setOpacitysetRotationAngle xác định cách watermark hiển thị trên trang.
  4. Tải PDF nguồn - PdfLoadOptions 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ớ.
  5. Áp dụng và Lưu - watermark.add(textWatermark, loadOptions); áp dụng watermark cho mọi trang, và watermark.save(outputFile, saveOptions); ghi kết quả.

Tải PDF nguồn với bộ nhớ đệm

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 loadOptions.setCacheSize(100 * 1024 * 1024); 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.

Để biết thông tin chi tiết về API, xem tài liệu tham khảo API Java.

Chuẩn bị môi trường cho việc chèn watermark vào PDF

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ỏ.

Các yêu cầu và phiên bản Java

  • 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.
  • Maven 3.5+ đơn giản hoá việc quản lý phụ thuộc.
  • Đảm bảo rằng pom.xml của dự án của bạn bao gồm repository Conholdate để Maven có thể giải quyết artifact.
<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>

Bạn cũng có thể tải các tệp JAR trực tiếp từ trang tải xuống. Sau khi thêm phụ thuộc, chạy mvn clean install để xác minh rằng SDK đã có trong classpath của bạn.

Sử dụng REST API (Tùy chọn)

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 curl đơn giản trông như sau:

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

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.

Cấu hình giao diện và vị trí Watermark

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.

Tùy chỉnh phông chữ và màu sắc

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ố java.awt.Color khác hoặc tạo một giá trị RGB tùy chỉnh.

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

Điều chỉnh Độ trong suốt và Xoay

Độ trong suốt kiểm soát mức độ trong suốt của watermark. Giá trị nằm trong khoảng từ 0.0 (hoàn toàn vô hình) đến 1.0 (đầy đủ độ đục). Xoay cho phép bạn nghiêng văn bản để làm cho việc xóa khó hơn.

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

Căn chỉnh Watermark trên Trang

Các thuộc tính căn chỉnh ngang và dọc chấp nhận Left, Center, RightTop, Center, Bottom. 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.

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

Nếu bạn muốn thêm Watermark văn bản vào PDF trong Java 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.

Kết luận

Thêm watermark vào PDF trong Java rất đơn giản với Conholdate.Total for Java. 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ừ temporary license page hoặc xem các tùy chọn giá trên pricing page. 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.

FAQs

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?
Sử dụng lớp Watermark từ Conholdate.Total for Java. 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í.

Các tùy chọn nào có sẵn để định dạng watermark văn bản?
Bạn có thể đặt phông chữ (new Font(...)), kích thước, kiểu (đậm, nghiêng), màu (setColor), độ trong suốt (setOpacity), góc quay (setRotationAngle), và căn chỉnh (setHorizontalAlignment, setVerticalAlignment). Các tùy chọn này được minh họa trong ví dụ mã đầy đủ.

SDK có thể xử lý các tệp PDF lớn một cách hiệu quả không?
Có. Bằng cách cấu hình PdfLoadOptions.setCacheSize, 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ủ.

Tôi có cần mua giấy phép để chạy ví dụ này không?
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ừ trang giấy phép tạm thời hoặc khám phá chi tiết giá đầy đủ tại trang giá.

Đọc thêm