So sánh hai hoặc nhiều tài liệu Word bằng C#

So sánh hai hoặc nhiều tài liệu Word bằng C#

Bạn có thể dễ dàng so sánh hai hoặc nhiều tài liệu Word hoặc so sánh nhiều phiên bản của cùng một tệp Word để tìm ra sự khác biệt và điểm tương đồng theo chương trình trong các ứng dụng .NET của bạn. 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 sự khác biệt bằng C#.

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

API C# để so sánh các tệp DOCX

Để so sánh hai hoặc nhiều tệp DOCX, tôi sẽ sử dụng GroupDocs.Comparison for .NET API. Nó so sánh hai hoặc nhiều tài liệu và tìm ra những thay đổi trong nội dung của tài liệu đối với các từ, đoạn văn và ký tự. Kết quả là nó tạo ra một tài liệu so sánh làm nổi bật những khác biệt và liệt kê một bản tóm tắt về 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 DLL của API hoặc cài đặt nó bằng NuGet.

Install-Package GroupDocs.Comparison

So sánh hai hoặc nhiều tài liệu Word bằng C#

Bạn có thể so sánh hai hoặc nhiều 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 phiên bản của lớp Comparer với đường dẫn tệp DOCX nguồn
  2. Gọi phương thức Add() với tệp DOCX đích để thêm vào so sánh
  3. Lặp lại bước trên để thêm nhiều tập tin so sánh
  4. Gọi phương thức Compare() với đường dẫn tệp đầu ra

Mẫu mã sau đây cho biết cách 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 bằng C#.

// 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 để so sánh
comparer.Add("C:\\Files\\target.docx");

// so sánh và lưu lại sự khác biệt
comparer.Compare("C:\\Files\\result.docx");
Tệp DOCX nguồn và mục tiêu

Tệp DOCX nguồn và mục tiêu

So sánh hai hoặc nhiều tài liệu Word bằng C#

So sánh hai hoặc nhiều tài liệu Word bằng C#

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 hiển thị tóm tắt tất cả những thay đổi được tìm thấy trong bản so sánh.

Lớp Comparer là lớp chính cho phép bạn kiểm soát và thực hiện quá trình so sánh. Nó cung cấp một số phương pháp để so sánh hai hoặc nhiều tài liệu. 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("target1.docx");
comparer.Add("target2.docx");
comparer.Add("target3.docx");

Phương thức Compare() của lớp Comparer so sánh tài liệu nguồn và tài liệu đích. Phương pháp này làm nổi bật sự khác biệt và 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.

So sánh tài liệu Word bằng Luồng trong C#

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

  1. Đọc tệp nguồn trong đối tượng Luồng
  2. Đọc tệp mục tiêu trong một đối tượng Luồng khác
  3. Tạo một thể hiện của lớp Comparer với đối tượng Stream nguồn
  4. Gọi phương thức Add() với đối tượng Stream đích để thêm vào so sánh
  5. Gọi phương thức Compare() 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 bằng FileStream trong C#.

// đọc tập tin nguồn và đích
using (Stream sourceStream = File.OpenRead("C:\\Files\\source.docx"))
using (Stream targetStream = File.OpenRead("C:\\Files\\target.docx"))
{
    // khởi tạo bộ so sánh
    using (Comparer comparer = new Comparer(sourceStream))
    {
        // thêm filestream mục tiêu để so sánh
        comparer.Add(targetStream);

        // so sánh và lưu lại sự khác biệt
        comparer.Compare(File.Create("C:\\Files\\result.docx"));
    }
}

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

Bạn có thể lấy văn bản của những thay đổi được tìm thấy khi so sánh các 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 phiên bản của lớp Comparer với đường dẫn tệp DOCX nguồn
  2. Gọi phương thức Add() với tệp DOCX đích để thêm vào so sánh
  3. Lặp lại bước trên để thêm nhiều tập tin so sánh
  4. Gọi phương thức Compare()
  5. Gọi phương thức GetChanges() để biết 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 C#.

// 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ánh
so sánhr.Add("C:\\Files\\target.docx");

// so sánh
so sánhr.Compare();

// nhận được những thay đổi
ChangeInfo[] changes = so sánhr.GetChanges();

Console.WriteLine("Count of changes: " + changes.Length);

// hiển thị các thay đổi
foreach (ChangeInfo change in changes)
{
    Console.WriteLine("Change Type: " + change.Type + ", Text: " + change.Text);
}
Count of changes: 10
Change Type: Inserted, Text:
Change Type: Inserted, Text:  Company ‼ HYPERLINK "http://www.aspose.com/" ¶Aspose Pty Ltd§ Division GroupDocs
Change Type: Inserted, Text:
Change Type: Inserted, Text: Cool
Change Type: Deleted, Text: test
Change Type: Inserted, Text:
Change Type: Inserted, Text: signatures
Change Type: Inserted, Text:
Change Type: Deleted, Text: Customers
Change Type: Deleted, Text: GroupDocs is used by companies of all sizes across the globe, from large multinational firms to small freelance businesses. They come to us because they have a need for a simple, one-stop-shop, document management solution.

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 thể hiện thông tin về các thay đổi và cung cấp các thuộc tính khác nhau để biết thông tin chi tiết về các thay đổi, chẳng hạn như Văn bản, Loại, v.v.

So sánh thuộc tính tài liệu bằng C#

Bạn có thể so sánh các thuộc tính tùy chỉnh, tích hợp sẵn và các thuộc tính biến của tài liệu Word theo lập trình bằng cách thực hiện theo các bước được đưa ra bên dưới:

  1. Tạo một phiên bản của lớp Comparer với đường dẫn tệp DOCX nguồn
  2. Gọi phương thức Add() với tệp DOCX đích để thêm vào so sánh
  3. Lặp lại bước trên để thêm nhiều tập tin so sánh
  4. Tạo một phiên bản của CompareOptions
  5. Đặt CompareVariableProperty thành true
  6. Đặt CompareDocumentProperty thành true
  7. Gọi phương thức Compare() với đường dẫn tệp đầu ra và CompareOptions

Mẫu mã sau đây cho biết cách so sánh các thuộc tính tài liệu bằng C#.

// 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ánh
so sánhr.Add("C:\\Files\\target.docx");

// xác định các tùy chọn so sánh
CompareOptions options = new CompareOptions();
options.CompareVariableProperty = true; // activate the comparison of variable properties
options.CompareDocumentProperty = true; // activate the comparison of built and custom properties

// so sánh
so sánhr.Compare("C:\\Files\\result.docx", options);
So sánh thuộc tính tài liệu bằng C#

So sánh thuộc tính tài liệu bằng C#

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 thiết lập các tùy chọn so sánh khác nhau để đạt được kết quả cụ thể. CompareDocumentProperty của lớp này cho phép bạn bật tính năng so sánh các thuộc tính tùy chỉnh và tích hợp sẵn ở định dạng Word. CompareVariableProperty cho phép bật tính năng so sánh các thuộc tính của biến ở định dạng Word.

So sánh các tài liệu Word được bảo vệ bằng mật khẩu bằng C#

Bạn có thể so sánh hai hoặc nhiều tài liệu Word được bảo vệ bằng mật khẩu theo chương trình bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một thể hiện của lớp LoadOptions
  2. Cung cấp mật khẩu cho tập tin nguồn
  3. Tạo một phiên bản của lớp Comparer với đường dẫn tệp DOCX nguồn và LoadOptions
  4. Gọi phương thức Add() với đường dẫn tệp DOCX đích và phiên bản LoadOptions bằng mật khẩu
  5. Lặp lại bước trên để thêm nhiều tệp so sánh hơn
  6. Gọi phương thức Compare() 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 được bảo vệ bằng mật khẩu bằng C#.

// xác định các tùy chọn tải cho tệp nguồn
LoadOptions sourceLoadOptions = new LoadOptions() { Password = "1234" };

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

// thêm tập tin mục tiêu để so sánh
so sánhr.Add("C:\\Files\\target.docx", new LoadOptions() { Password = "5678" });

// so sánh
so sánhr.Compare("C:\\Files\\result.docx");

Lớp LoadOptions cho phép bạn chỉ định các tùy chọn bổ sung trong khi tải tài liệu. Nó cung cấp các thuộc tính sau để chỉ định:

  • FontDirectories - Danh sách các thư mục phông chữ cần tải.
  • LoadText - Cho biết các chuỗi được truyền là văn bản so sánh, không phải đường dẫn tệp (chỉ dành cho So sánh văn bản).
  • Mật khẩu — Mật khẩu của tài liệu.

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

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

  1. Tạo một phiên bản của lớp Comparer với đường dẫn tệp DOCX nguồn
  2. Gọi phương thức Add() với tệp DOCX đích để thêm vào so sánh
  3. Lặp lại bước trên để thêm nhiều tập tin 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() với đường dẫn tệp đầu ra và 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 C#.

// 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ánh
so sánhr.Add("C:\\Files\\target.docx");

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

// so sánh
so sánhr.Compare("C:\\Files\\result.docx", so sánhOptions);
So sánh Dấu trang trong Tài liệu Word bằng C#

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

Thuộc tính CompareBookmarks 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 sự khác biệt bằng C#. Bạn cũng đã học cách lấy danh sách các 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. Hơn nữa, bạn đã học cách so sánh các tài liệu Word được bảo vệ bằng mật khẩu bằng C#. Bạn có thể tìm hiểu thêm về GroupDocs.Comparison cho .NET API 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