Thêm ghi chú tùy chỉnh hoặc watermark thường yêu cầu bạn thêm văn bản vào PDF trong các ứng dụng Java. Conholdate.Total for Java là một SDK mạnh mẽ cho phép các nhà phát triển chỉnh sửa tệp PDF một cách lập trình. Hướng dẫn này sẽ đưa bạn qua các yêu cầu trước, một walkthrough chi tiết về mã, và một ví dụ hoàn chỉnh để bạn có thể chồng lớp văn bản tùy chỉnh lên các PDF hiện có một cách dễ dàng.
Các yêu cầu và thiết lập
Trước khi bắt đầu, hãy đảm bảo bạn có những thứ sau:
- Đã cài đặt Java 8 hoặc cao hơn.
- Maven để quản lý phụ thuộc.
- Một IDE như IntelliJ IDEA hoặc Eclipse.
- Giấy phép Conholdate.Total for Java hợp lệ cho việc sử dụng trong môi trường sản xuất (xem phần giấy phép ở dưới).
Thêm kho Maven của Conholdate và phụ thuộc SDK vào pom.xml của bạn:
<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>
Tải xuống các tệp nhị phân SDK mới nhất từ trang tải xuống. Sau khi quá trình xây dựng Maven thành công, bạn đã sẵn sàng bắt đầu lập trình. Phần tiếp theo sẽ cho bạn thấy chính xác cách tải một tệp PDF và chèn văn bản.
Thêm Văn bản vào PDF trong Java: Hướng dẫn từng bước
Dưới đây là một hướng dẫn ngắn gọn cho từng bước logic. Mã nguồn đầy đủ sẽ được tái hiện sau trong phần Ví dụ mã đầy đủ.
Bước 1: Mở PDF và tạo TextBuilder
Đầu tiên, mở tệp PDF nguồn bằng lớp Document, sau đó tạo một TextBuilder chỉ vào trang mà bạn muốn thêm văn bản.
String dataDir = "path/to/your/document/directory/";
// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));
Các lớp Document và TextBuilder được tài liệu hoá trong Tham chiếu API.
Bước 2: Tạo và Cấu hình TextParagraph
Tạo một TextParagraph và cấu hình bố cục của nó: độ thụt lề được áp dụng cho các dòng tiếp theo, hình chữ nhật bao quanh khu vực văn bản trên trang, và chế độ ngắt từ.
// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);
Bước 3: Tạo một TextFragment và Cấu hình Phông chữ
Tạo một TextFragment chứa văn bản bạn muốn phủ lên, sau đó đặt phông chữ và kích thước phông chữ thông qua getTextState().
// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);
Bước 4: Gắn đoạn và đoạn văn
Thêm đoạn văn bản làm một dòng vào trong đoạn văn, sau đó chèn đoạn văn vào trang thông qua TextBuilder.
// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);
Bước 5: Lưu PDF đã chỉnh sửa
Cuối cùng, xây dựng đường dẫn đầu ra và lưu tài liệu đã tạo.
dataDir = dataDir + "AddText_out.pdf";
// Save resulting PDF document.
doc.save(dataDir);
Với các bước này, bạn đã hoàn thành quy trình chèn văn bản vào PDF.
Ví dụ mã đầy đủ: Chèn văn bản vào PDF trong Java
Ví dụ sau đây minh họa toàn bộ quá trình từ việc tải tệp nguồn đến việc lưu PDF đã cập nhật.
Ví dụ này minh họa cách thêm văn bản vào một tệp PDF hiện có bằng Conholdate.Total for Java.
import com.aspose.pdf.Document;
import com.aspose.pdf.TextBuilder;
import com.aspose.pdf.TextParagraph;
import com.aspose.pdf.Rectangle;
import com.aspose.pdf.TextFormattingOptions;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.FontRepository;
public class AddTextToPdf {
public static void main(String[] args) {
String dataDir = "path/to/your/document/directory/";
// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));
// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);
// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);
// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);
dataDir = dataDir + "AddText_out.pdf";
// Save resulting PDF document.
doc.save(dataDir);
}
}
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
dataDirđể trỏ tới thư mục tài liệu thực tế của bạn (chứaConholdate.pdf), xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng, 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.
Kết luận
Trong tutorial này, chúng tôi đã trình bày cách thêm văn bản vào PDF trong Java bằng các tính năng mạnh mẽ của Conholdate.Total for Java. Bằng cách làm theo hướng dẫn chi tiết từng bước, bạn có thể xây dựng các đoạn văn bản một cách đáng tin cậy bằng TextBuilder và TextParagraph, kiểm soát kiểu chữ thông qua TextFragment, và lưu tài liệu đã chỉnh sửa. SDK xử lý tọa độ trang PDF và việc hiển thị văn bản nội bộ, vì vậy bạn có thể tập trung vào logic nghiệp vụ. Hãy nhớ mua giấy phép phù hợp cho môi trường sản xuất; bạn có thể lấy giấy phép tạm thời từ trang giấy phép tạm thời hoặc khám phá các tùy chọn giá trên trang giá. Với những công cụ này, việc nâng cấp PDF bằng văn bản tùy chỉnh trở thành một phần đơn giản trong ứng dụng Java của bạn.
Câu hỏi thường gặp
Làm thế nào để tôi thêm văn bản vào PDF trong Java mà không ghi đè nội dung hiện có?
Sử dụngbuilder.appendParagraph(paragraph)như trong ví dụ;TextBuildersẽ thêm đoạn văn mới vào trang đích, giữ nguyên bất kỳ nội dung nào đã tồn tại.Có thể thêm văn bản watermark tùy chỉnh vào PDF trong Java không?
Có. Cách tiếp cận tương tự cũng áp dụng cho watermark — tạo mộtTextFragmentvới văn bản watermark mong muốn, cấu hình phông chữ và kích thước phù hợp (hoặc độ trong suốt thông qua trạng thái văn bản), và thêm nó vào mộtTextParagraphtrên mỗi trang.Tôi nên làm gì nếu văn bản được chèn không hiển thị đúng cho một số ngôn ngữ?
Chọn một phông chữ hỗ trợ bộ ký tự cần thiết bằngFontRepository.findFont(). SDK tôn trọng các cài đặt phông chữ được áp dụng quagetTextState(), và tài liệu cung cấp hướng dẫn về việc xử lý các bộ ký tự khác nhau.Tôi có thể xử lý hàng loạt nhiều PDF để thêm cùng một đoạn văn bản không?
Chắc chắn. Đặt mã vào trong một vòng lặp lặp qua danh sách các đường dẫn tệp, sử dụng lại cùng một logicDocument/TextBuildercho mỗi tệp.
