So sánh các tài liệu Word và làm nổi bật sự khác biệt bằng Java

Bạn có thể dễ dàng so sánh hai hoặc nhiều tài liệu Word và nêu bật những điểm khác biệt theo chương trình. Bạn có thể cần so sánh nhiều phiên bản của cùng một tệp Word hoặc các tệp khác nhau để tìm ra sự khác biệt và tương đồng trong ứng dụng Java của mình. Trong bài viết này, bạn sẽ tìm hiểu cách so sánh hai hoặc nhiều tài liệu Word và làm nổi bật những điểm khác biệt bằng Java.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API Java để so sánh tài liệu Word

Tôi sẽ sử dụng GroupDocs.Comparison for Java API để so sánh các tài liệu DOCX. Nó so sánh để phát hiện các thay đổi nội dung của các từ, đoạn văn và ký tự trong khi cung cấp tài liệu so sánh liệt kê tóm tắt những khác biệt. Nó cũng cho phép bạn phát hiện những thay đổi và khác biệt về kiểu văn bản giữa các định dạng tài liệu tương tự. API hỗ trợ so sánh tất cả các định dạng tài liệu tiêu chuẩn ngành như PDF, HTML, Word, Excel, PowerPoint, email Outlook, sơ đồ Visio, OpenDocument, AutoCAD và hình ảnh.

Bạn có thể tải xuống JAR của API hoặc chỉ cần thêm cấu hình pom.xml sau vào ứng dụng Java dựa trên Maven của bạn để thử các ví dụ mã được đề cập bên dưới.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>21.6</version> 
</dependency>

So sánh tài liệu Word bằng Java

Bạn có thể so sánh hai hoặc nhiều tài liệu Word bằng cách thực hiện theo các bước đơn giản dưới đây:

  1. Tạo một thể hiện của lớp Comparer
  2. Cung cấp đường dẫn tệp DOCX nguồn cho hàm tạo
  3. Thêm tệp DOCX đích vào so sánh
  4. Gọi phương thức Compare() cùng với đường dẫn tệp đầu ra

Mẫu mã sau đây cho biết cách so sánh các tài liệu Word và nêu bật những khác biệt khi sử dụng Java.

// khởi tạo bộ so sánh
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// thêm tập tin mục tiêu
comparer.add("C:\\Files\\target.docx");

// so sánh và lưu kết quả so sánh
comparer.compare("C:\\Files\\result.docx");
Tài liệu Word nguồn và đích

Tài liệu nguồn và đích

So sánh hai tài liệu Word bằng Java

So sánh hai tài liệu Word bằng Java

Tài liệu kết quả cũng bao gồm một trang tóm tắt ở cuối tài liệu. Nó hiển thị tóm tắt của tất cả các thay đổi.

Lớp Comparer là lớp chính kiểm soát quá trình so sánh tài liệu. Phương thức Compare() của lớp này so sánh tài liệu nguồn và tài liệu đích. Phương pháp này lưu kết quả vào đường dẫn tệp được cung cấp dưới dạng tham số đầu vào. Phương thức Add() của lớp này sẽ thêm một tệp vào quá trình so sánh. Bạn có thể dễ dàng thêm nhiều tệp vào so sánh bằng cách sử dụng phương thức Add() như dưới đây:

comparer.Add("target2.docx");
comparer.Add("target3.docx");

Nhận văn bản về các thay đổi bằng Java

Bạn có thể lấy văn bản của các thay đổi theo chương trình bằng cách thực hiện theo các bước đơn giản dưới đây:

  1. Tạo một thể hiện của lớp Comparer
  2. Cung cấp đường dẫn tệp DOCX nguồn cho hàm tạo
  3. Thêm tệp DOCX đích vào so sánh
  4. Gọi phương thức Compare()
  5. Gọi phương thức getChanges() và nhận thông tin chi tiết về các thay đổi
  6. Hiển thị các thay đổi

Mẫu mã sau đây cho biết cách lấy văn bản của các thay đổi bằng Java.

// khởi tạo bộ so sánh
Comparer so sánhr = new Comparer("C:\\Files\\source.docx");

// thêm tập tin mục tiêu
so sánhr.add("C:\\Files\\target.docx");

// so sánh
final Path resultPath = so sánhr.so sánh();

// nhận được những thay đổi
ChangeInfo[] changes = so sánhr.getChanges();
System.out.println("Count of changes: " + changes.length);

for (ChangeInfo change : changes) {
    System.out.printf("Change Type: %d, Text: %s%n", change.getType(), change.getText());
}
Count of changes: 10
Change Type: 2, Text: 
Change Type: 2, Text:  Company  HYPERLINK "http://www.aspose.com/" Aspose Pty Ltd Division GroupDocs 
Change Type: 2, Text: 
Change Type: 2, Text: Cool 
Change Type: 3, Text: test 
Change Type: 2, Text:  
Change Type: 2, Text: signatures
Change Type: 2, Text: Our 
Change Type: 2, Text: char&#091;
Change Type: 2, Text: 255] 

Bạn có thể nhận danh sách các thay đổi giữa tệp nguồn và tệp đích bằng cách gọi phương thức getChanges() của lớp Comparer. Nó trả về một danh sách các đối tượng ChangeInfo. Lớp ChangeInfo cung cấp các phương thức để lấy thông tin chi tiết về các thay đổi, chẳng hạn như getText() để lấy nội dung của một thay đổi cụ thể.

So sánh dấu trang trong tài liệu Word

Bạn có thể so sánh các dấu trang có trong tài liệu Word theo chương trình bằng cách thực hiện theo các bước đơn giản dưới đây:

  1. Tạo một thể hiện của lớp Comparer
  2. Cung cấp đường dẫn tệp DOCX nguồn cho hàm tạo
  3. Thêm tệp DOCX đích vào so sánh
  4. Tạo một phiên bản của CompareOptions
  5. Đặt So sánh dấu trang thành đúng
  6. Gọi phương thức Compare() cùng với đường dẫn tệp đầu ra và đối tượng CompareOptions

Mẫu mã sau đây cho biết cách so sánh dấu trang trong tài liệu Word bằng Java.

// khởi tạo bộ so sánh
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// thêm tập tin mục tiêu
comparer.add("C:\\Files\\target.docx");

// xác định các tùy chọn so sánh
CompareOptions compareOptions = new CompareOptions();
compareOptions.setCompareBookmarks(true);

// so sánh và lưu kết quả so sánh
comparer.compare("C:\\Files\\result.docx", compareOptions);
So sánh Dấu trang trong Tài liệu Word bằng Java

So sánh Dấu trang trong Tài liệu Word bằng Java

Bạn có thể nâng cao quá trình so sánh của mình bằng cách áp dụng các tùy chọn so sánh khác nhau. Với mục đích này, lớp CompareOptions cho phép bạn đặt các tùy chọn so sánh khác nhau bằng cách cung cấp các phương thức khác nhau. Phương thức setCompareBookmarks() cho phép bạn so sánh các dấu trang có sẵn trong tài liệu nguồn và tài liệu đích.

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

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách so sánh hai hoặc nhiều tài liệu Word và làm nổi bật những điểm khác biệt bằng Java. Bạn cũng đã học cách lấy văn bản của những thay đổi được đánh dấu. Hơn nữa, bạn đã học cách so sánh dấu trang trong tài liệu Word theo chương trình. Bạn có thể tìm hiểu thêm về GroupDocs.Comparison dành cho API Java bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm