Виявлення відмінностей між двома файлами Word часто потрібно розробникам, які працюють з контрактами, звітами або юридичними документами. The Aspose.BarCode Cloud SDK for Python provides a powerful library that can be combined with Aspose.Words Cloud SDK for Python to programmatically compare text in Word documents in Python. In this guide you will set up your environment, upload documents to Aspose Cloud storage, configure comparison options, run the comparison, and retrieve the resulting document with tracked changes. You’ll also see how to achieve the same result using direct REST calls with cURL.

Підготовка середовища - передумови та налаштування

Перш ніж розпочати, переконайтеся, що у вас є наступне:

  • Python 3.8 або новіший, встановлений локально.
  • Обліковий запис Aspose Cloud з client_id та client_secret (доступний у панелі управління Aspose Cloud).
  • Доступ до сховища Aspose Cloud для тимчасової обробки файлів.

Встановіть BarCode SDK за допомогою pip:

pip install aspose-barcode-cloud

Вам також знадобиться Aspose.Words Cloud SDK for Python, який обробляє операції, специфічні для Word:

pip install asposewordscloud

Встановіть ваші облікові дані як змінні середовища або замініть заповнювачі в коді:

import os
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")

SDK будуть використовувати ці значення для автентифікації в сервісах Aspose Cloud. Коли середовище буде готове, ми можемо перейти до реалізації.

Порівняння тексту у Word‑документах за допомогою Python: покроковий огляд

Крок 1: Завантажте вихідний документ

Спочатку налаштуйте ваші облікові дані Aspose Cloud, щоб SDK міг автентифікуватися і ви могли порівнювати текст у Word‑документах у Python.

from asposewordscloud import WordsApi, Configuration

config = Configuration(client_id=client_id, client_secret=client_secret)
words_api = WordsApi(config)

Крок 2: Завантажте вихідний та цільовий документи

Завантажте два файли DOCX, які ви хочете порівняти. Допоміжна функція абстрагує процес завантаження.

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")

Крок 3: Встановити параметри порівняння

Далі встановіть CompareOptions, щоб визначити, як SDK має порівнювати текст у документах Word у Python, наприклад, ігноруючи регістр або коментарі.

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"
)

Крок 4: Виконати порівняння документів

Тепер викличте метод compare_document, щоб фактично порівняти текст у Word‑документах у Python і створити результат з відстеженням змін.

compare_result = words_api.compare_document(
    request={
        "name": "doc1.docx",
        "compare_data": compare_opts,
        "folder": "TempCompare"
    }
)

Крок 5: Отримати та зберегти результат

Нарешті запишіть отриманий документ на диск і очистіть тимчасові файли.

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"})

Порівняння тексту у Word‑документах у Python Повна реалізація - Повний приклад коду

Наступний код демонструє повний робочий процес порівняння тексту у Word‑документах у Python за допомогою Aspose APIs.

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}"})

Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності правильно встановлені, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.

Виконання порівняння документів за допомогою REST API з використанням cURL

Нижче наведено команди cURL, які виконують те ж саме порівняння тексту у документах Word у Python за допомогою REST API.

  1. Аутентифікація та отримання токену доступу
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"
  1. Завантажте вихідний файл
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"
  1. Завантажте цільовий файл
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"
  1. Виконати порівняння
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
  1. Завантажити вихідний файл
curl -X GET "https://api.aspose.cloud/v4.0/words/TempCompare/compare_result.docx" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -o compare_result.docx

Для отримання докладнішої інформації про тіла запитів та додаткові параметри, перегляньте офіційну документацію API.

Висновок

У цій статті продемонстровано, як порівнювати текст у документах Word за допомогою Python, використовуючи Aspose.BarCode Cloud SDK for Python. Дотримуючись кроків з налаштування облікових даних, завантаження файлів, конфігурації параметрів порівняння та виклику API порівняння, ви можете автоматизувати процеси порівняння документів у ваших застосунках. Не забудьте отримати відповідну ліцензію для використання у продакшн; тимчасова ліцензія доступна на сторінці тимчасової ліцензії, а повна інформація про ліцензування розміщена на сторінці продукту. За допомогою цих інструментів інтеграція порівняння документів у ваші Python‑проекти стає простою та надійною.

FAQs

  • Як Aspose.BarCode Cloud SDK for Python допомагає мені порівнювати текст у Word‑документах у Python?
    SDK працює разом з Aspose.Words Cloud SDK for Python для завантаження файлів DOCX, встановлення параметрів порівняння та створення результату з відстеженням змін, який підсвічує відмінності. Дивіться сторінку продукту Aspose.BarCode Cloud SDK for Python.

  • Чи можу я ефективно порівнювати великі Word‑файли?
    Так. Використовуючи API compare_document, ви можете передавати великі DOCX‑файли з сховища Aspose Cloud у потоковому режимі, а сервіс обробляє їх на боці сервера, мінімізуючи використання пам’яті на вашому комп’ютері. Дивіться офіційну документацію для порад щодо продуктивності.

  • Які формати файлів підтримуються для порівняння?
    API в основному працює з файлами DOCX, але ви також можете порівнювати файли DOC після їх конвертації у DOCX за допомогою Aspose.Words. Усі назви форматів записані великими літерами, наприклад, DOCX, PDF.

  • Чи потрібна ліцензія для запуску в продакшн?
    Тимчасова ліцензія доступна на сторінці тимчасової ліцензії. Для використання в продакшн слід придбати повну ліцензію, як описано на сторінці продукту.

Read More