Do PDF là một trong những định dạng được sử dụng nhiều nhất trong thế giới kỹ thuật số nên thường phải so sánh hai phiên bản của cùng một tài liệu. Bài viết này thảo luận về cách so sánh hai tài liệu PDF và làm nổi bật sự khác biệt bằng C#. Hơn nữa, chúng ta sẽ xem cách so sánh các tệp PDF được bảo vệ bằng mật khẩu, chấp nhận và từ chối các thay đổi cũng như so sánh nhiều hơn hai tệp PDF với các ví dụ C#.

So sánh Tài liệu PDF để tìm sự khác biệt bằng cách sử dụng .NET API

Các chủ đề sau đây được thảo luận ở đây:

.NET API để so sánh các tệp PDF

GroupDocs.Comparison for .NET là API cho phép so sánh giữa nhiều tài liệu PDF và nhiều tệp khác có cùng định dạng tài liệu trong các ứng dụng .NET. Tôi sẽ sử dụng API này trong các ví dụ mã C# của bài viết này để so sánh các tài liệu PDF.

Bạn có thể tải xuống trình cài đặt DLL hoặc MSI từ phần tải xuống hoặc cài đặt API trong ứng dụng .NET của bạn qua NuGet.

PM> Install-Package GroupDocs.Comparison

So sánh tài liệu PDF bằng C#

Nếu bạn có nhiều bản sao của một tài liệu PDF, bạn có thể so sánh các tệp này để tìm ra sự khác biệt (bổ sung, xóa bỏ). Sau khi so sánh nội dung PDF, bạn có thể tạo một tài liệu mới làm nổi bật tất cả các thay đổi đã xác định. Sau đây là các bước để so sánh hai tài liệu PDF và làm nổi bật sự khác biệt bằng C#.

  • Tải tài liệu PDF đầu tiên bằng lớp So sánh.
  • Thêm tệp thứ hai vào Bộ so sánh bằng phương thức Add().
  • So sánh cả hai tệp PDF và nhận tóm tắt các thay đổi bằng cách gọi phương thức So sánh().

Đoạn mã C# sau đây cho biết cách so sánh các tài liệu PDF và làm nổi bật các thay đổi trong tài liệu kết quả.

/*
 * So sánh hai tài liệu PDF và các thay đổi nổi bật bằng C#
 */
using (Comparer comparer = new Comparer(@"path/document-ver1.pdf"))
{
    comparer.Add(@"path/document-ver2.pdf");
    comparer.Compare(@"path/compared-result.pdf");
}

Chấp nhận hoặc Từ chối các Thay đổi được Xác định của Tệp PDF bằng C#

Giống như các tính năng theo dõi thay đổi, bạn có thể chấp nhận hoặc từ chối từng thay đổi được xác định trong tài liệu PDF theo chương trình. Các bước sau đây cho biết cách so sánh và sau đó chấp nhận hoặc từ chối các thay đổi đã xác định trong tài liệu PDF.

  • Tải các tệp PDF nguồn và đích bằng lớp So sánh.
  • So sánh các tài liệu đã tải bằng phương pháp So sánh().
  • Nhận các thay đổi đã xác định bằng phương thức GetChanges().
  • Bây giờ duyệt qua các thay đổi và đặt ComparisonAction.
    • Chọn Chấp nhận hoặc Từ chối cho từng thay đổi.
  • Gọi phương thức ApplyChanges() để lấy tài liệu kết quả với các thay đổi được chấp nhận.

Đoạn mã sau so sánh hai tài liệu PDF và sau đó chấp nhận một thay đổi đã xác định rồi từ chối một thay đổi khác bằng C#.

/*
 * Chấp nhận và từ chối các thay đổi đã xác định bằng cách so sánh các tài liệu PDF bằng C#
 */
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
    comparer.Add(@"path/document-2.pdf");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Từ chối thay đổi được xác định đầu tiên và nó sẽ không được thêm vào tài liệu kết quả
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(@"path/rejected-change-result.pdf", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges(@"path/accepted-change-result.pdf", new ApplyChangeOptions { Changes = changes });
}

So sánh nhiều hơn hai tệp PDF bằng C#

Tương tự, bạn có thể so sánh nhiều hơn hai tài liệu. Sau đây là các bước so sánh nhiều tài liệu PDF để tìm sự khác biệt và làm nổi bật các thay đổi đã xác định.

  • Tải tệp PDF đầu tiên bằng lớp So sánh.
  • Thêm (các) tài liệu khác vào Bộ so sánh bằng phương pháp Add().
  • So sánh tất cả các tệp PDF bằng phương pháp So sánh() và nhận các thay đổi cũng như tóm tắt các thay đổi.

Ví dụ sau đây cho thấy cách so sánh nhiều tệp PDF trong C# và nhận các thay đổi trong tài liệu kết quả.

/*
 * So sánh nhiều tài liệu PDF bằng C#
 */
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
    comparer.Add(@"path/document-2.pdf");
    comparer.Add(@"path/document-3.pdf");
    comparer.Add(@"path/document-4.pdf");

    comparer.Compare(@"path/compare-result.pdf");
}

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

Bạn có thể so sánh các tệp được bảo vệ bằng mật khẩu bằng cách chỉ cung cấp mật khẩu của chúng trong khi tải các tài liệu này. Các bước sau đây cho thấy cách chúng tôi có thể so sánh nội dung PDF của các tài liệu được bảo vệ bằng mật khẩu bằng C#.

  • Chuẩn bị các tùy chọn tải cho tài liệu nguồn và đích bằng cách cung cấp mật khẩu.
  • Tải tài liệu nguồn bằng lớp So sánh.
  • Thêm tài liệu đích vào Bộ so sánh bằng cách sử dụng các tùy chọn tải đã chuẩn bị.
  • Nhận tóm tắt sự khác biệt bằng cách gọi phương thức So sánh().

Ví dụ sau đây so sánh hai tệp PDF được bảo vệ bằng mật khẩu và làm nổi bật những điểm khác biệt đã xác định trong một tài liệu riêng biệt bằng C#.

/*
 * So sánh các tài liệu PDF được bảo vệ bằng mật khẩu bằng C#
 */
using (Comparer comparer = new Comparer(@"path/protected-document-1.pdf", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add(@"path/protected-document-2.pdf", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare(@"path/compared-protected-docs-result.pdf");
}

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

Để kết thúc, chúng ta đã học cách so sánh hai hoặc nhiều tệp PDF bằng C#. Hơn nữa, chúng tôi đã nhấn mạnh sự khác biệt và chấp nhận hoặc từ chối các thay đổi đã xác định theo chương trình. Cuối cùng, chúng ta đã thấy cách so sánh các tài liệu PDF được bảo vệ bằng mật khẩu trong các ứng dụng .NET.

Một số tùy chỉnh khác có sẵn để kiểm soát kết quả so sánh. Bạn có thể đặt độ nhạy so sánh, chỉ hiển thị trang tóm tắt, bỏ qua các khoảng trống, v.v. Tìm hiểu thêm về GroupDocs.Comparison for .NET từ tài liệu. Bạn có thể xây dựng các ứng dụng so sánh tài liệu của riêng mình cho nhiều định dạng 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