Trong một trong các bài viết, chúng tôi đã thảo luận cách sắp xếp lại các từ trong tài liệu với tư cách là nhà phát triển .NET. Chiến lược này được sử dụng theo nhiều cách để xóa nội dung nhạy cảm, ẩn hoặc xóa thông tin cá nhân như địa chỉ email hoặc số nhận dạng. Bài viết này thảo luận về cách thực hiện tìm kiếm từ trong tài liệu Word DOC/DOCX trong Java. Chúng tôi sẽ thảo luận riêng về cách tìm và thay thế văn bản, từ hoặc cụm từ bằng các kỹ thuật khác nhau bằng cách sử dụng API Java để biên tập.

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

API Java để tìm kiếm từ và thay thế văn bản

GroupDocs cung cấp API soạn thảo Java cho phép tìm và thay thế nội dung của các tệp được hỗ trợ MS Word và các tài liệu khác ở nhiều định dạng tệp khác nhau. Ngoài việc biên tập văn bản và rasterization, API hỗ trợ siêu dữ liệu, chú thích, bảng tính và cả các tính năng biên tập hình ảnh. Định dạng tệp được hỗ trợ của tài liệu Word, bảng tính, bản trình bày, hình ảnh và tài liệu PDF có sẵn tại tài liệu.

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ác cấu hình phụ thuộc và kho lưu trữ mới nhất cho tệp 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>

MS Word hoặc bất kỳ phần mềm bên thứ ba nào khác không bắt buộc đối với quy trình biên tập. Bây giờ chúng ta hãy bắt đầu với các cách tiếp cận khác nhau để xử lý tìm kiếm và thay thế văn bản. Sau đây là ảnh chụp màn hình của tài liệu Word được sử dụng trong các ví dụ bên dưới. Bạn cũng có thể sử dụng các phương pháp tương tự cho các định dạng tài liệu khác với rất ít hoặc không thay đổi mã nguồn.

Tài liệu để biên tập lại văn bản

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

Các bước sau giải thích cách tìm và sau đó thay thế các lần xuất hiện của một từ/cụm từ trong tài liệu Word trong ứng dụng Java.

  • Tải tệp DOC/DOCX bằng lớp Redactor.
  • Tìm cụm từ hoặc từ chính xác, sử dụng các lớp ExactPhraseRedactionReplacementOptions.
  • Sử dụng phương thức apply của Redactor để áp dụng redaction.
  • Để lưu tệp ở vị trí khác sau khi thực hiện thay đổi, hãy sử dụng luồng đầu ra.
  • Lưu các thay đổi chỉnh sửa bằng phương thức lưu.

Đoạn mã sau tìm và thay thế từ “John Doe” trong tài liệu Word ở trên bằng Java. Nó thay thế tất cả các lần xuất hiện của “John Doe” bằng từ “[censored]”.

// Tìm cụm từ chính xác 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.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Nếu bạn muốn lưu tệp đã biên tập lại ở vị trí khác với tên khác.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

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

Làm lại bằng cụm từ chính xác

Tìm kiếm từ phân biệt chữ hoa chữ thường và thay thế văn bản trong Java

Bạn có vẻ thận trọng về cách viết hoa chữ thường chính xác của từ đó và chỉ muốn thay thế từ chỉ phù hợp với tìm kiếm phân biệt chữ hoa chữ thường của bạn. Đoạn mã sau thay thế sự tồn tại của trường hợp khớp chính xác của từ “John Doe” trong Java.

// Tìm cụm từ chính xác (phân biệt chữ hoa chữ thường) 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.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

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

Phân biệt chữ hoa chữ thường

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

Nếu bạn không muốn thay đổi chính xác từ nhưng một số mẫu tồn tại trong tài liệu của mình, bạn có thể sử dụng Biểu thức chính quy. Các bước sau đây cho phép bạn tìm và thay thế bất kỳ mẫu văn bản nào 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 bằng lớp Redactor.
  • Tạo RegEx bằng RegexRedaction.
  • Cung cấp văn bản bằng cách sử dụng ReplacementOptions để thay thế đối sánh RegEx.
  • Sử dụng phương pháp áp dụng thay thế tất cả các kết quả khớp regex.
  • Sử dụng phương thức lưu để lấy tài liệu đã biên tập lại.

Đoạn mã sau cho biết cách thực hiện tìm kiếm từ trong tệp Word bằng RegEx và thay thế nó bằng một số văn bản khác bằng Java.

// Tìm văn bản 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.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

Sau đây là đầu ra của đoạn mã trên:

Chỉnh sửa RegEx

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

Nếu bạn không muốn thay thế nội dung của mình và chỉ muốn ẩn nội dung đó, thì API cho phép bạn che để khớp văn bản bằng cách vẽ một hộp lên trên nội dung đó. Mã Java sau ẩn văn bản bằng hộp hình chữ nhật màu đen.

// Tìm văn bản 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.docx");
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.

Ẩn văn bản bằng hộp

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

Phần kết luận

Tóm lại, bạn đã học cách thực hiện tìm kiếm từ để tìm văn bản trong tài liệu Word bằng cách sử dụng tìm kiếm cụm từ văn bản chính xác, tìm kiếm phân biệt chữ hoa chữ thường, tìm kiếm bằng biểu thức thông thường và cuối cùng nhưng không kém phần quan trọng là ẩn văn bản thay vì thay thế nó. Bạn có thể sử dụng các kỹ thuật khác nhau này để thay thế các phát hiện theo những cách khác nhau trong tài liệu MS Word.

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

Xem thêm