Como desenvolvedor de Python, você pode comparar dois ou mais documentos do Word (.docx) em busca de semelhanças e diferenças de forma programática na nuvem. A comparação de documentos ajuda a controlar as alterações nos documentos do Word. Este artigo se concentrará em como comparar dois ou mais documentos do Word usando uma API REST em Python.

Os seguintes tópicos serão abordados neste artigo:

API REST de comparação de documentos e SDK Python

GroupDocs. Comparison for Cloud

Para comparar documentos do Microsoft Word, usarei a API Python SDK of GroupDocs.Comparison Cloud. Ele compara dois documentos de formatos de arquivo suportados e encontra diferenças entre eles. Como resultado, ele cria um arquivo resultante contendo diferenças e permite que você aceite ou rejeite as alterações recuperadas. Ele pode ser facilmente integrado aos seus aplicativos Python existentes, para capacitar seus usuários finais a comparar documentos, planilhas, apresentações, diagramas do Microsoft Visio, e-mails e arquivos de muitos outros formatos. Ele também fornece SDKs .NET, Java, PHP e Ruby como seus membros da família de comparação de documentos para a Cloud API.

Você pode instalar GroupDocs.Comparison Cloud em seu projeto Python com pip (package installer for python) usando o seguinte comando no console:

pip install groupdocs_comparison_cloud

Obtenha seu ID de cliente e Segredo do cliente no painel antes de começar a seguir as etapas e os exemplos de código disponíveis. Adicione seu ID e segredo no código conforme demonstrado abaixo:

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"

Comparar documentos do Word usando uma API REST em Python

Você pode comparar dois documentos do Word seguindo as etapas simples mencionadas abaixo:

Carregue o Documento

Em primeiro lugar, carregue os documentos do Word de origem e de destino na nuvem usando o exemplo de código fornecido abaixo:

# inicialização da API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)
storage_api = groupdocs_comparison_cloud.StorageApi.from_config(configuration)

# fazer upload de arquivos de amostra
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)

Como resultado, os arquivos DOCX carregados (source.docx, target.docx) estarão disponíveis na seção de arquivos do seu painel na nuvem.

Comparar arquivos do Word em Python

Siga as etapas mencionadas abaixo para comparar dois documentos do Word programaticamente.

  • Crie uma instância de CompareApi
  • Defina o arquivo .docx de origem
  • Defina o arquivo .docx de destino
  • Definir opções de comparação
  • Criar Pedido de Comparações
  • Obtenha resultados chamando o método CompareApi.comparisons()

O trecho de código a seguir mostra como comparar dois documentos do Word usando uma API REST.

# Crie instâncias de API necessárias
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)

Você pode fornecer a senha para os arquivos de origem ou destino protegidos por senha, conforme mostrado abaixo:

target.password = "5784"

Você também pode definir várias configurações a serem aplicadas durante a comparação e atribuí-las a ComparisonOptions conforme mostrado abaixo:

settings = groupdocs_comparison_cloud.Settings()

# Comparar sensibilidade
settings.sensitivity_of_comparison = 100

# Personalize estilos para as alterações
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

Baixe o arquivo resultante

O exemplo de código acima salvará as diferenças em um arquivo DOCX recém-criado na nuvem. Você pode baixá-lo usando o seguinte exemplo de código:

# Criar instância da 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)

# Mova o arquivo baixado para o seu diretório de trabalho
shutil.move(response, "C:\\Files\\")        
Comparar documentos do Word usando uma API REST em Python

O arquivo resultante também contém uma página de resumo no final do documento, conforme mostrado abaixo:

Página de resumo

Comparar vários arquivos do Word usando Python

Siga as etapas mencionadas abaixo para comparar vários documentos do Word usando Python.

  • Crie uma instância de CompareApi
  • Defina o arquivo .docx de origem
  • Definir vários arquivos .docx de destino
  • Defina ComparisonOptions se necessário
  • Criar Pedido de Comparações
  • Obtenha resultados chamando o método CompareApi.comparisons()

O trecho de código a seguir mostra como comparar vários documentos do Word usando Python. Siga as etapas mencionadas anteriormente para fazer upload de vários arquivos DOCX.

# Crie instâncias de API necessárias
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)

Experimente a seguinte ferramenta de comparação DOCX on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/comparison/docx

Conclusão

Neste artigo, você aprendeu como comparar documentos do Microsoft Word na nuvem com a API REST de comparação de documentos usando Python. Você também aprendeu como carregar programaticamente dois ou mais arquivos na nuvem e, em seguida, baixar o arquivo resultante da nuvem. Você pode aprender mais sobre GroupDocs.Comparison Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.