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

So sánh các tài liệu Word được thực hiện trong nhiều trường hợp khác nhau để xác định sự khác biệt. Các công cụ trực tuyến khác nhau cho phép bạn so sánh các tài liệu Word, tuy nhiên, bạn có thể cần phải triển khai tính năng so sánh từ bên trong các ứng dụng của mình. Để đạt được điều đó, bài viết này hướng dẫn cách so sánh hai tài liệu Word trong Python.

Thư viện Python để so sánh các tài liệu Word

Để so sánh các tài liệu DOCX hoặc DOC, chúng tôi sẽ sử dụng Aspose.Words for Python. Thư viện cho phép bạn tự động hóa các tính năng xử lý văn bản từ bên trong các ứng dụng Python của bạn. Bạn có thể cài đặt thư viện từ PyPI bằng lệnh pip sau.

pip install aspose-words

So sánh hai tài liệu Word trong Python

Aspose. AdWords dành cho Python giúp bạn so sánh hai tài liệu Word khá dễ dàng. Trong quá trình so sánh, các thay đổi được đăng trong tài liệu đầu tiên dưới dạng các bản sửa đổi. Sau đây là các bước để so sánh hai tài liệu Word trong Python.

  • Đầu tiên, tải tài liệu Word đầu tiên bằng lớp Tài liệu.
  • Sau đó, tải tài liệu thứ hai bằng lớp Tài liệu.
  • Gọi phương thức so sánh (Document, string, datetime.today()) bằng cách sử dụng đối tượng Document của tài liệu đầu tiên.
  • Kiểm tra xem các tài liệu có khác nhau hay không bằng cách sử dụng thuộc tính Document.revisions.count.
  • Cuối cùng, lưu tài liệu đầu tiên để lấy các bản sửa đổi.

Mẫu mã sau đây cho thấy cách so sánh hai tài liệu Word.

import aspose.words as aw
from datetime import date

# tải tài liệu đầu tiên
doc = aw.Document("calibre.docx")

# tải tài liệu thứ hai
doc2 = aw.Document("calibre2.docx")

# so sánh tài liệu
doc.compare(doc2, "user", date.today())

# lưu tài liệu để nhận các bản sửa đổi
if (doc.revisions.count > 0):
    doc.save("compared.docx")
else:
    print("Documents are equal")

Sau đây là ảnh chụp màn hình của kết quả so sánh.

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

Các tùy chọn bổ sung để so sánh các tài liệu Word

Aspose. AdWords cũng cung cấp một số tùy chọn bổ sung để kiểm soát quá trình so sánh tài liệu. Ví dụ: bạn có thể bỏ qua các loại phần tử cụ thể như đầu trang, chân trang, nhận xét, v.v. Ngoài ra, bạn có thể đặt mức độ chi tiết để chỉ định so sánh các tài liệu theo ký tự hay từ. Sau đây là các bước để thiết lập các tùy chọn này.

  • Đầu tiên, tải tài liệu Word đầu tiên bằng lớp Tài liệu.
  • Sau đó, tải tài liệu thứ hai bằng lớp Tài liệu.
  • Tạo một phiên bản của lớp CompareOptions và đặt các tùy chọn mong muốn.
  • Gọi phương thức so sánh (Document, string, datetime.today(), CompareOptions) bằng cách sử dụng đối tượng Document của tài liệu đầu tiên.
  • Kiểm tra xem các tài liệu có khác nhau hay không bằng cách sử dụng thuộc tính Document.revisions.count.
  • Cuối cùng, lưu tài liệu đầu tiên để lấy các bản sửa đổi.

Mẫu mã sau đây cho thấy cách sử dụng các tùy chọn bổ sung trong khi so sánh hai tài liệu Word.

import aspose.words as aw
from datetime import date

# tải tài liệu đầu tiên
doc = aw.Document("calibre.docx")

# tải tài liệu thứ hai
doc2 = aw.Document("calibre2.docx")

# đặt các tùy chọn bổ sung
options = aw.comparing.CompareOptions()            
options.ignore_formatting = True
options.ignore_headers_and_footers = True
options.ignore_case_changes = True
options.ignore_tables = True
options.ignore_fields = True
options.ignore_comments = True
options.ignore_textboxes = True
options.ignore_footnotes = True

# so sánh tài liệu
doc.compare(doc2, "user", date.today(), options)

# lưu tài liệu để lấy các bản sửa đổi
if (doc.revisions.count > 0):
    doc.save("compared.docx")
else:
    print("Documents are equal")

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

Bạn có thể xin giấy phép tạm thời để sử dụng Aspose.Words dành cho Python mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách so sánh hai tài liệu Word trong Python. Hơn nữa, bạn đã thấy cách kiểm soát hoạt động so sánh tài liệu bằng cách sử dụng các tùy chọn khác nhau. Bên cạnh đó, bạn có thể khám phá các tính năng khác của Aspose. AdWords for Python bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ câu hỏi nào, bạn có thể hỏi chúng tôi qua diễn đàn của chúng tôi.

Xem thêm