Tìm và thay thế văn bản trong PDF Java

Trong nhiều trường hợp khác nhau, bạn có thể cần tìm và thay thế một đoạn văn bản cụ thể trong tài liệu PDF. Tuy nhiên, việc tìm kiếm và cập nhật từng lần xuất hiện theo cách thủ công có thể khiến bạn tốn thêm thời gian và công sức. Đối với những trường hợp như vậy, tùy chọn tìm và thay thế giúp cuộc sống của bạn dễ dàng hơn. Trong bài viết này, bạn sẽ học cách tìm và thay thế văn bản trong tài liệu PDF bằng Java.

Java API để tìm và thay thế văn bản trong PDF - Tải xuống miễn phí

Aspose.PDF dành cho Java được thiết kế để tạo và xử lý các tệp PDF từ bên trong các ứng dụng Java. API cung cấp một loạt các tính năng thao tác PDF cơ bản cũng như nâng cao bao gồm tìm và thay thế văn bản. Bạn có thể tải xuống API hoặc cài đặt nó bằng cách sử dụng các cấu hình Maven sau.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.1</version>    
</dependency>

Tìm và thay thế văn bản trong PDF bằng Java

Để thay thế một văn bản cụ thể trong PDF, trước tiên bạn sẽ nhận được tất cả các đoạn văn bản khớp với chuỗi tìm kiếm. Khi bạn đã có chúng, chỉ cần thay thế từng đoạn bằng văn bản cập nhật từng cái một.

Sau đây là các bước để tìm và thay thế văn bản trong tệp PDF bằng Java.

Mẫu mã sau đây cho thấy cách tìm và thay thế văn bản trong PDF.

// Để có các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Mở tài liệu
Document pdfDocument = new Document("source.pdf");

// Tạo đối tượng TextAbsorber để tìm tất cả các phiên bản của cụm từ tìm kiếm đầu vào
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Chấp nhận chất hấp thụ cho tất cả các trang tài liệu
pdfDocument.getPages().accept(textFragmentAbsorber);

// Lấy các đoạn văn bản đã trích xuất vào bộ sưu tập
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Lặp lại các mảnh vỡ
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Cập nhật văn bản và các thuộc tính khác
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Lưu tệp PDF đã cập nhật
pdfDocument.save("Updated_Text.pdf");

Tìm kiếm và thay thế văn bản trên một trang cụ thể trong PDF

Thay vì tìm và thay thế văn bản trong toàn bộ PDF, bạn có thể chỉ định một trang duy nhất mà bạn muốn thay thế các lần xuất hiện văn bản. Trong trường hợp này, bạn sẽ chỉ chấp nhận TextFragmentAbsorber cho một trang cụ thể bằng cách chỉ định chỉ mục trang.

Sau đây là các bước để tìm kiếm và thay thế văn bản trên một trang cụ thể trong PDF trong Java.

Mẫu mã sau đây cho thấy cách tìm và thay thế văn bản trên một trang cụ thể trong PDF bằng Java.

// Để có các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Mở tài liệu
Document pdfDocument = new Document("source.pdf");

// Tạo đối tượng TextAbsorber để tìm tất cả các phiên bản của cụm từ tìm kiếm đầu vào
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Chấp nhận chất hấp thụ cho trang đầu tiên của tài liệu
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// Lấy các đoạn văn bản đã trích xuất vào bộ sưu tập
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Lặp lại các mảnh vỡ
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Cập nhật văn bản và các thuộc tính khác
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Lưu tệp PDF đã cập nhật
pdfDocument.save("Updated_Text.pdf");

Tìm và Thay thế Văn bản bằng Biểu thức Thông thường trong PDF

Bạn cũng có thể chỉ định một biểu thức chính quy để tìm kiếm văn bản khớp với một mẫu cụ thể, chẳng hạn như email, SSN, v.v. Sau đây là các bước để xác định và sử dụng một biểu thức chính quy để tìm kiếm và thay thế văn bản trong PDF bằng Java.

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản trong PDF bằng cách sử dụng biểu thức chính quy.

// Để có các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Mở tài liệu
Document pdfDocument = new Document("input.pdf");

// Tạo đối tượng TextAbsorber để tìm tất cả các phiên bản của cụm từ tìm kiếm đầu vào
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// Đặt tùy chọn tìm kiếm văn bản để cho phép sử dụng cụm từ thông dụng
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Chấp nhận chất hấp thụ cho tất cả các trang tài liệu
pdfDocument.getPages().accept(textFragmentAbsorber);

// Lấy các đoạn văn bản đã trích xuất vào bộ sưu tập
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Lặp lại các mảnh vỡ
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Cập nhật văn bản và các thuộc tính khác
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// Lưu tệp PDF đã cập nhật
pdfDocument.save("Updated_Text.pdf");

Nhận giấy phép API miễn phí

Bạn có thể dùng thử miễn phí API mà không có giới hạn đánh giá. Nhận giấy phép tạm thời miễn phí ngay bây giờ.

Sự kết luận

Trong bài này, bạn đã học cách tìm và thay thế văn bản trong PDF bằng Java. Hơn nữa, bạn đã thấy cách sử dụng biểu thức chính quy để tìm kiếm và thay thế văn bản theo một mẫu cụ thể. Bạn có thể khám phá thêm về Java PDF API bằng cách sử dụng tài liệu.

Xem thêm