Как разработчик Python, вы можете программно сравнить два или более документа Word (.docx) на предмет сходства и различия в облаке. Сравнение документов помогает отслеживать изменения в документах Word. В этой статье основное внимание будет уделено тому, как сравнивать два или более документа Word с помощью REST API в Python.

В этой статье должны быть раскрыты следующие темы:

Сравнение документов REST API и Python SDK

GroupDocs.Comparison для облака

Для сравнения документов Microsoft Word я буду использовать Python SDK of GroupDocs.Comparison Cloud API. Он сравнивает два документа поддерживаемых форматов файлов и находит различия между ними. В результате создается результирующий файл, содержащий различия, и вы можете принять или отклонить полученные изменения. Его можно легко интегрировать в существующие приложения Python, чтобы ваши конечные пользователи могли сравнивать документы, электронные таблицы, презентации, диаграммы Microsoft Visio, электронные письма и файлы многих других форматов. Он также предоставляет SDK для .NET, Java, PHP и Ruby в качестве членов семейства для сравнения документов для Cloud API.

Вы можете установить GroupDocs.Comparison Cloud в свой проект Python с помощью pip (установщик пакета для python), используя следующую команду в консоли:

pip install groupdocs_comparison_cloud

Пожалуйста, получите свой идентификатор клиента и секрет клиента на панели управления, прежде чем приступать к выполнению шагов и доступных примеров кода. Добавьте свой идентификатор и секрет в код, как показано ниже:

client_id = "112f0f38-9dae-42d5-b4fc-cc84ae644972"
client_secret = "16ad3fe0bdc39c910f57d2fd48a5d618"
my_storage = ""

configuration = groupdocs_comparison_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"

Сравните документы Word с помощью REST API в Python

Вы можете сравнить два документа Word, выполнив простые шаги, указанные ниже:

Загрузить документ

Прежде всего, загрузите исходный и целевой документы Word в облако, используя приведенный ниже пример кода:

# инициализация API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)
storage_api = groupdocs_comparison_cloud.StorageApi.from_config(configuration)

# загрузить образцы файлов
for filename in glob.iglob("C:\\Files\\*.docx", recursive=True):
    destFile = filename.replace("C:\\Files\\", "", 1)            
    fileExistsResponse = storage_api.object_exists(groupdocs_comparison_cloud.ObjectExistsRequest(destFile))
    if not fileExistsResponse.exists:                                
        file_api.upload_file(groupdocs_comparison_cloud.UploadFileRequest(destFile, filename))
        print("Uploaded file: "+ destFile)

В результате загруженные файлы DOCX (source.docx, target.docx) будут доступны в разделе файлов вашей панели инструментов в облаке.

Сравните файлы Word в Python

Пожалуйста, следуйте шагам, указанным ниже, чтобы программно сравнить два документа Word.

  • Создайте экземпляр CompareApi
  • Установите исходный файл .docx
  • Установите целевой файл .docx
  • Определить параметры сравнения
  • Создать запрос на сравнение
  • Получите результаты, вызвав метод CompareApi.comparisons().

В следующем фрагменте кода показано, как сравнить два документа Word с помощью REST API.

# Создайте необходимые экземпляры API
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.docx"

target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.docx"

options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "Output/result.docx"

request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

Вы можете указать пароль для защищенных паролем исходных или целевых файлов, как показано ниже:

target.password = "5784"

Вы также можете определить различные настройки, которые будут применяться во время сравнения, и назначить их ComparisonOptions, как показано ниже:

settings = groupdocs_comparison_cloud.Settings()

# Сравнить чувствительность
settings.sensitivity_of_comparison = 100

# Настройте стили для изменений
settings.inserted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.inserted_items_style.highlight_color = "14297642"
settings.inserted_items_style.font_color = "16711680"
settings.inserted_items_style.underline = True
settings.deleted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.deleted_items_style.font_color = "14166746"
settings.deleted_items_style.bold = True
settings.changed_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.changed_items_style.font_color = "14320170"
settings.changed_items_style.italic = True

options.settings = settings

Загрузите результирующий файл

Приведенный выше пример кода сохранит различия во вновь созданном файле DOCX в облаке. Вы можете загрузить его, используя следующий пример кода:

# Создать экземпляр API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

request = groupdocs_comparison_cloud.DownloadFileRequest("Output\\result.docx", my_storage)
response = file_api.download_file(request)

# Переместите загруженный файл в свой рабочий каталог
shutil.move(response, "C:\\Files\\")        
Сравните документы Word с помощью REST API в Python

Результирующий файл также содержит сводную страницу в конце документа, как показано ниже:

Сводная страница

Сравните несколько файлов Word с помощью Python

Пожалуйста, следуйте шагам, указанным ниже, чтобы сравнить несколько документов Word с помощью Python.

  • Создайте экземпляр CompareApi
  • Установите исходный файл .docx
  • Установите несколько целевых файлов .docx
  • Определите ComparisonOptions, если требуется
  • Создать запрос на сравнение
  • Получите результаты, вызвав метод CompareApi.comparisons().

В следующем фрагменте кода показано, как сравнить несколько документов Word с помощью Python. Пожалуйста, следуйте инструкциям, упомянутым ранее, чтобы загрузить несколько файлов DOCX.

# Создайте необходимые экземпляры API
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.docx"
    
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.docx"
    
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.docx"
    
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "Output/result.docx"

request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент сравнения DOCX, который разработан с использованием вышеуказанного API. https://products.groupdocs.app/comparison/docx

Заключение

В этой статье вы узнали, как сравнивать документы Microsoft Word в облаке с помощью REST API для сравнения документов с использованием Python. Вы также узнали, как программно загрузить два или более файла в облако, а затем загрузить полученный файл из облака. Вы можете узнать больше о GroupDocs.Comparison Cloud API, используя документацию. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.