Việc phát hiện sự khác biệt giữa hai tệp Word là nhu cầu thường gặp đối với các nhà phát triển xử lý hợp đồng, báo cáo hoặc tài liệu pháp lý. Aspose.BarCode Cloud SDK for Python cung cấp một thư viện mạnh mẽ có thể kết hợp với Aspose.Words Cloud SDK for Python để so sánh nội dung văn bản trong tài liệu Word một cách lập trình bằng Python. Trong hướng dẫn này, bạn sẽ thiết lập môi trường, tải lên tài liệu lên Aspose Cloud storage, cấu hình các tùy chọn so sánh, thực hiện quá trình so sánh và lấy tài liệu kết quả với các thay đổi được theo dõi. Bạn cũng sẽ thấy cách đạt được kết quả tương tự bằng các cuộc gọi REST trực tiếp với cURL.
Chuẩn bị môi trường - Các yêu cầu và cài đặt
Trước khi bắt đầu, hãy chắc chắn rằng bạn có những thứ sau:
- Python 3.8 hoặc mới hơn được cài đặt trên máy cục bộ.
- Một tài khoản Aspose Cloud có client_id và client_secret (có sẵn trong bảng điều khiển Aspose Cloud).
- Quyền truy cập vào lưu trữ Aspose Cloud để xử lý tệp tạm thời.
Cài đặt BarCode SDK qua pip:
pip install aspose-barcode-cloud
Bạn cũng sẽ cần Aspose.Words Cloud SDK for Python, nó xử lý các thao tác đặc thù của Word:
pip install asposewordscloud
Đặt thông tin xác thực của bạn dưới dạng biến môi trường hoặc thay thế các chỗ giữ chỗ trong mã:
import os
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")
Các SDK sẽ sử dụng các giá trị này để xác thực với các dịch vụ Aspose Cloud. Khi môi trường đã sẵn sàng, chúng ta có thể chuyển sang triển khai.
So sánh văn bản trong tài liệu Word bằng Python: Hướng dẫn chi tiết từng bước
Bước 1: Tải tài liệu nguồn
Đầu tiên, cấu hình thông tin xác thực Aspose Cloud của bạn để SDK có thể xác thực và bạn có thể so sánh văn bản trong tài liệu Word bằng Python.
from asposewordscloud import WordsApi, Configuration
config = Configuration(client_id=client_id, client_secret=client_secret)
words_api = WordsApi(config)
Bước 2: Tải lên tài liệu nguồn và tài liệu đích
Tải lên hai tệp DOCX mà bạn muốn so sánh. Hàm trợ giúp trừu tượng hoá quá trình tải lên.
def upload(local_file, remote_name):
with open(local_file, "rb") as f:
words_api.upload_file(request={"path": f"TempCompare/{remote_name}", "file": f})
upload("doc1.docx", "doc1.docx")
upload("doc2.docx", "doc2.docx")
Bước 3: Thiết lập tùy chọn so sánh
Tiếp theo, đặt CompareOptions để xác định cách SDK so sánh văn bản trong tài liệu Word bằng Python, chẳng hạn như bỏ qua chữ hoa/thường hoặc chú thích.
from asposewordscloud.models import CompareOptions
compare_opts = CompareOptions(
author="PythonComparer",
compare_options="IgnoreCase,IgnoreComments,IgnoreFormatting",
file_path="TempCompare/doc2.docx",
revision_author="PythonComparer",
revision_date_time="2023-01-01T00:00:00Z"
)
Bước 4: Thực hiện so sánh tài liệu
Bây giờ hãy gọi phương thức compare_document để thực sự so sánh văn bản trong các tài liệu Word bằng Python và tạo ra kết quả theo dõi sửa đổi.
compare_result = words_api.compare_document(
request={
"name": "doc1.docx",
"compare_data": compare_opts,
"folder": "TempCompare"
}
)
Bước 5: Lấy và Lưu Kết Quả
Cuối cùng, ghi tài liệu kết quả vào đĩa và dọn dẹp các tệp tạm thời.
with open("compare_result.docx", "wb") as out_file:
out_file.write(compare_result.document)
words_api.delete_file(request={"path": "TempCompare/doc1.docx"})
words_api.delete_file(request={"path": "TempCompare/doc2.docx"})
So sánh văn bản trong tài liệu Word bằng Python - Triển khai đầy đủ - Ví dụ mã hoàn chỉnh
Đoạn mã sau trình bày quy trình làm việc đầy đủ để so sánh văn bản trong tài liệu Word bằng Python sử dụng các API của Aspose.
import os
from asposewordscloud import WordsApi, Configuration
from asposewordscloud.models import CompareOptions
# ----------------------------------------------------------------------
# Configuration – set your Aspose Cloud credentials in environment variables
# ----------------------------------------------------------------------
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")
config = Configuration(client_id=client_id, client_secret=client_secret)
# ----------------------------------------------------------------------
# Initialize the Words API client
# ----------------------------------------------------------------------
words_api = WordsApi(config)
# ----------------------------------------------------------------------
# Local file paths (replace with your actual files)
# ----------------------------------------------------------------------
source_path = "doc1.docx"
target_path = "doc2.docx"
result_path = "compare_result.docx"
# ----------------------------------------------------------------------
# Remote folder in Aspose Cloud storage where temporary files are kept
# ----------------------------------------------------------------------
remote_folder = "TempCompare"
# ----------------------------------------------------------------------
# Helper to upload a local file to Aspose Cloud storage
# ----------------------------------------------------------------------
def upload(local_file, remote_name):
with open(local_file, "rb") as f:
words_api.upload_file(request={"path": f"{remote_folder}/{remote_name}", "file": f})
# ----------------------------------------------------------------------
# Upload source and target documents
# ----------------------------------------------------------------------
upload(source_path, source_path)
upload(target_path, target_path)
# ----------------------------------------------------------------------
# Set up comparison options
# ----------------------------------------------------------------------
compare_opts = CompareOptions(
author="PythonComparer",
compare_options="IgnoreCase,IgnoreComments,IgnoreFormatting",
file_path=f"{remote_folder}/{target_path}",
revision_author="PythonComparer",
revision_date_time="2023-01-01T00:00:00Z"
)
# ----------------------------------------------------------------------
# Perform the comparison
# ----------------------------------------------------------------------
try:
compare_result = words_api.compare_document(
request={
"name": source_path,
"compare_data": compare_opts,
"folder": remote_folder
}
)
# The API returns the resulting document as a byte array
with open(result_path, "wb") as out_file:
out_file.write(compare_result.document)
finally:
# ------------------------------------------------------------------
# Clean up remote temporary files
# ------------------------------------------------------------------
words_api.delete_file(request={"path": f"{remote_folder}/{source_path}"})
words_api.delete_file(request={"path": f"{remote_folder}/{target_path}"})
Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.
Thực hiện so sánh tài liệu qua REST API bằng cURL
Dưới đây là các lệnh cURL thực hiện việc so sánh văn bản trong tài liệu Word tương tự trong hoạt động Python thông qua REST API.
- Xác thực và nhận Access Token
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Tải lên tệp nguồn
curl -X PUT "https://api.aspose.cloud/v4.0/words/TempCompare/doc1.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@doc1.docx"
- Tải lên tệp mục tiêu
curl -X PUT "https://api.aspose.cloud/v4.0/words/TempCompare/doc2.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@doc2.docx"
- Thực hiện so sánh
curl -X POST "https://api.aspose.cloud/v4.0/words/doc1.docx/compare" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"compareOptions": {
"author": "PythonComparer",
"compareOptions": "IgnoreCase,IgnoreComments,IgnoreFormatting",
"filePath": "TempCompare/doc2.docx",
"revisionAuthor": "PythonComparer",
"revisionDateTime": "2023-01-01T00:00:00Z"
}
}' -o compare_result.docx
- Tải xuống tệp đầu ra
curl -X GET "https://api.aspose.cloud/v4.0/words/TempCompare/compare_result.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o compare_result.docx
Để biết thêm chi tiết về các phần thân yêu cầu và các tham số bổ sung, xem tài liệu API chính thức.
Kết luận
Bài viết này trình bày cách so sánh văn bản trong tài liệu Word bằng Python sử dụng Aspose.BarCode Cloud SDK for Python. Bằng cách thực hiện các bước thiết lập thông tin xác thực, tải lên tệp, cấu hình các tùy chọn so sánh và gọi API so sánh, bạn có thể tự động hoá quy trình diff tài liệu trong ứng dụng của mình. Hãy nhớ lấy giấy phép phù hợp cho việc sử dụng trong môi trường sản xuất; giấy phép tạm thời có sẵn tại trang giấy phép tạm thời, và chi tiết giấy phép đầy đủ được liệt kê trên trang sản phẩm. Với những công cụ này, việc tích hợp so sánh tài liệu vào các dự án Python của bạn trở nên đơn giản và đáng tin cậy.
FAQs
-
Làm thế nào Aspose.BarCode Cloud SDK for Python giúp tôi so sánh văn bản trong tài liệu Word bằng Python?
SDK hoạt động cùng với Aspose.Words Cloud SDK for Python để tải lên các tệp DOCX, thiết lập các tùy chọn so sánh và tạo ra kết quả theo dõi sửa đổi, làm nổi bật các khác biệt. Xem trang sản phẩm Aspose.BarCode Cloud SDK for Python để biết chi tiết. -
Tôi có thể so sánh các tệp Word lớn một cách hiệu quả không?
Có. Bằng cách sử dụng APIcompare_document, bạn có thể truyền luồng các tệp DOCX lớn từ lưu trữ Aspose Cloud, và dịch vụ sẽ xử lý chúng phía máy chủ, giảm thiểu việc sử dụng bộ nhớ trên máy của bạn. Tham khảo tài liệu chính thức để biết các mẹo về hiệu năng. -
What file formats are supported for comparison?
API chủ yếu làm việc với các tệp DOCX, nhưng bạn cũng có thể so sánh các tệp DOC sau khi chúng được chuyển đổi sang DOCX bằng Aspose.Words. Tất cả các tên định dạng đều viết hoa, ví dụ: DOCX, PDF. -
Tôi có cần giấy phép để chạy điều này trong môi trường sản xuất không?
Giấy phép tạm thời có sẵn tại trang giấy phép tạm thời. Đối với việc sử dụng trong sản xuất, bạn nên mua giấy phép đầy đủ như mô tả trên trang sản phẩm.