Các mẫu được sử dụng rộng rãi để tạo các tài liệu được cá nhân hóa bằng cách thay thế các khóa mẫu bằng các giá trị tương ứng. Bài viết này hướng dẫn cách tìm và thay thế văn bản và từ trong tài liệu PDF bằng Java. Chúng tôi sẽ thảo luận riêng về cách thực hiện tìm kiếm từ và cụm từ, tìm kiếm từ phân biệt chữ hoa chữ thường, thay thế văn bản tìm thấy bằng các biểu thức thông thường. Cuối cùng, chúng ta sẽ tìm hiểu cách ẩn phần văn bản được tìm kiếm bằng Java.

Các chủ đề sau đây sẽ được đề cập dưới đây:

Java Redaction API để thay thế văn bản

GroupDocs cung cấp API Java để áp dụng nhiều loại giao dịch khác nhau. Nó cho phép sắp xếp lại, ẩn hoặc xóa nội dung và thậm chí cả siêu dữ liệu của tài liệu, bản trình bày, bảng tính, tệp PDF và hình ảnh trong ứng dụng. Để biết thêm chi tiết về API, hãy truy cập tài liệu của nó.

Tải xuống hoặc định cấu hình

Bạn có thể tải xuống tệp JAR từ phần tải xuống hoặc chỉ nhận cấu hình phụ thuộc và kho lưu trữ mới nhất cho pom.xml của các ứng dụng Java dựa trên maven của bạn.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

Một trong những điều tốt là không cần cài đặt bất kỳ trình chỉnh sửa PDF nào hoặc bất kỳ phần mềm bên thứ ba nào khác để chỉnh sửa PDF. Sau đây là nội dung của tài liệu PDF được sử dụng trong các ví dụ bên dưới để chỉnh sửa. Cách tiếp cận tương tự sẽ hoạt động đối với các định dạng tài liệu khác mà hầu như không có bất kỳ sự khác biệt nào trong mã nguồn.

Tìm và Thay thế Từ hoặc Cụm từ trong PDF bằng Java

Bạn có thể sử dụng tính năng này để ẩn mọi dữ liệu riêng tư và cũng để tạo một tài liệu tùy chỉnh mới từ bất kỳ mẫu nào. Bước sau đây giải thích cách tìm bất kỳ từ/cụm từ nào trong tài liệu PDF và thay thế nó bằng một số văn bản khác trong ứng dụng Java.

  • Tải tệp PDF bằng lớp Redactor.
  • Tìm cụm từ hoặc từ chính xác bằng cách sử dụng ExactPhraseRedaction và [ReplacementOptions](https://apireference.groupdocs. com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Áp dụng giao dịch bằng cách sử dụng phương thức apply().
  • Lưu tài liệu mới với các thay đổi bằng phương thức save().

Đoạn mã sau tìm và thay thế các từ trong tệp PDF bằng Java. Chính xác hơn, nó ẩn tất cả các lần xuất hiện của “John Doe” bằng cách thay thế nó bằng từ “[censored]”.

// Tìm cụm từ chính xác trong PDF và thay thế nó bằng một số văn bản khác bằng Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Lưu tệp đã được xử lý lại ở vị trí khác với tên khác.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.pdf");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

Đầu ra của đoạn mã trên như sau.

Tìm và thay thế văn bản hoặc cụm từ phân biệt chữ hoa chữ thường trong PDF bằng Java

Bạn có thể thực hiện tìm kiếm & chỉnh sửa phân biệt chữ hoa chữ thường. Đoạn mã sau thay thế sự xuất hiện phân biệt chữ hoa chữ thường của từ “John Doe” chứ không phải “john doe” trong tài liệu PDF bằng Java.

// Tìm cụm từ chính xác trong PDF (phân biệt chữ hoa chữ thường) và thay thế cụm từ đó bằng một số văn bản khác bằng Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

Đầu ra của mã như sau.

Thay thế văn bản trong PDF bằng biểu thức chính quy (RegEx) trong Java

Tương tự, bạn có thể thay thế bất kỳ mẫu văn bản cụ thể nào bằng các biểu thức chính quy. Các bước sau đây cho phép bạn sắp xếp lại PDF sau khi tìm kiếm bằng biểu thức chính quy (RegEx) trong các ứng dụng Java của bạn.

  • Tải tài liệu PDF bằng lớp Redactor.
  • Tìm đối sánh biểu thức chính quy bằng cách sử dụng lớp RegexRedaction với [ReplacementOptions](https://apireference.groupdocs.com/ redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Áp dụng các thay đổi đối với tài liệu bằng phương thức apply().
  • Lưu tài liệu đã chỉnh sửa bằng phương thức save() thích hợp.

Mã Java sau đây cho biết cách tìm một mẫu văn bản nhất định trong tài liệu PDF bằng RegEx và sau đó thay thế/ẩn nó bằng một số văn bản khác.

// Tìm văn bản trong PDF bằng biểu thức chính quy và thay thế nó bằng một số văn bản khác bằng Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

Đầu ra của đoạn mã trên như sau.

Thay thế văn bản bằng hộp màu trong Java

Nếu bạn chỉ muốn ẩn thông tin bí mật đã tìm kiếm trong tệp PDF của mình, bạn chỉ cần che nó lại. API cho phép bạn ẩn văn bản đã tìm kiếm. Đoạn mã sau đặt hình chữ nhật màu đen trên văn bản riêng được đề cập trong Java.

// Tìm văn bản trong PDF và ẩn nó bằng cách vẽ hình chữ nhật lên trên nó bằng Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

Đầu ra của đoạn mã trên như sau.

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

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

Sự kết luận

Tóm lại, chúng tôi đã học cách tìm văn bản nhất định trong tệp PDF bằng các kỹ thuật tìm kiếm khác nhau. Sau đó, chúng tôi đã xử lý lại các tệp PDF bằng cách thay thế hoặc ẩn văn bản trong các ứng dụng trong Java. Chính xác hơn, chúng tôi đã thực hiện một tìm kiếm đơn giản cho các từ, cụm từ, tìm kiếm có phân biệt chữ hoa chữ thường và bằng cách sử dụng RegEx trong Java. Cuối cùng, chúng tôi đã thay đổi kết quả tìm kiếm bằng một số văn bản khác hoặc đơn giản bằng cách ẩn nó bằng màu sắc.

Để biết thêm chi tiết về API, hãy truy cập tài liệu. Nếu có thắc mắc, hãy liên hệ với chúng tôi qua diễn đàn.

Xem thêm