Como desarrollador de Python, puede comparar dos o más documentos de Word (.docx) en busca de similitudes y diferencias mediante programación en la nube. La comparación de documentos lo ayuda a realizar un seguimiento de los cambios en los documentos de Word. Este artículo se centrará en cómo comparar dos o más documentos de Word utilizando una API REST en Python.

En este artículo se tratarán los siguientes temas:

API REST de comparación de documentos y SDK de Python

GroupDocs. Comparación para la nube

Para comparar documentos de Microsoft Word, usaré la Python SDK de GroupDocs.Comparison Cloud API. Compara dos documentos de formatos de archivo compatibles y encuentra diferencias entre ellos. Como resultado, crea un archivo resultante que contiene diferencias y le permite aceptar o rechazar los cambios recuperados. Se puede integrar fácilmente en sus aplicaciones de Python existentes, para permitir a sus usuarios finales comparar documentos, hojas de cálculo, presentaciones, diagramas de Microsoft Visio, correos electrónicos y archivos de muchos otros formatos. También proporciona SDK de .NET, Java, PHP y Ruby como sus miembros de la familia de comparación de documentos para la API de la nube.

Puede instalar GroupDocs.Comparison Cloud en su proyecto de Python con pip (instalador de paquetes para python) usando el siguiente comando en la consola:

pip install groupdocs_comparison_cloud

Obtenga su ID de cliente y Secreto de cliente del panel de control antes de comenzar a seguir los pasos y los ejemplos de código disponibles. Agregue su ID y secreto en el código como se muestra a continuación:

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"

Compare documentos de Word usando una API REST en Python

Puede comparar dos documentos de Word siguiendo los sencillos pasos que se mencionan a continuación:

Sube el documento

En primer lugar, cargue los documentos de Word de origen y de destino en la nube utilizando el ejemplo de código que se proporciona a continuación:

# inicialización de la API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)
storage_api = groupdocs_comparison_cloud.StorageApi.from_config(configuration)

# subir archivos de muestra
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, los archivos DOCX cargados (source.docx, target.docx) estarán disponibles en la sección de archivos de su tablero en la nube.

Comparar archivos de Word en Python

Siga los pasos que se mencionan a continuación para comparar dos documentos de Word mediante programación.

  • Crear una instancia de CompareApi
  • Establecer el archivo .docx de origen
  • Establecer el archivo .docx de destino
  • Definir opciones de comparación
  • Crear Solicitud de Comparaciones
  • Obtenga resultados llamando al método CompareApi.comparisons()

El siguiente fragmento de código muestra cómo comparar dos documentos de Word mediante una API REST.

# Crear las instancias de API necesarias
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)

Puede proporcionar la contraseña para los archivos de origen o de destino protegidos con contraseña como se muestra a continuación:

target.password = "5784"

También puede definir varias configuraciones para que se apliquen durante la comparación y asignarlas a las Opciones de comparación como se muestra a continuación:

settings = groupdocs_comparison_cloud.Settings()

# Comparar sensibilidad
settings.sensitivity_of_comparison = 100

# Personaliza estilos para los cambios.
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

Descargar el archivo resultante

El ejemplo de código anterior guardará las diferencias en un archivo DOCX recién creado en la nube. Puede descargarlo utilizando el siguiente ejemplo de código:

# Crear instancia de la 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)

# Mueva el archivo descargado a su directorio de trabajo
shutil.move(response, "C:\\Files\\")        
Compare documentos de Word usando una API REST en Python

El archivo resultante también contiene una página de resumen al final del documento, como se muestra a continuación:

Página de resumen

Compara múltiples archivos de Word usando Python

Siga los pasos que se mencionan a continuación para comparar varios documentos de Word usando Python.

  • Crear una instancia de CompareApi
  • Establecer el archivo .docx de origen
  • Establecer varios archivos .docx de destino
  • Definir opciones de comparación si es necesario
  • Crear Solicitud de Comparaciones
  • Obtenga resultados llamando al método CompareApi.comparisons()

El siguiente fragmento de código muestra cómo comparar varios documentos de Word mediante Python. Siga los pasos mencionados anteriormente para cargar varios archivos DOCX.

# Crear las instancias de API necesarias
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)

Pruebe la siguiente herramienta gratuita de comparación DOCX en línea, que se desarrolla utilizando la API anterior. https://products.groupdocs.app/comparison/docx

Conclusión

En este artículo, ha aprendido a comparar documentos de Microsoft Word en la nube con la API REST de comparación de documentos usando Python. También aprendió cómo cargar mediante programación dos o más archivos en la nube y luego descargar el archivo resultante de la nube. Puede obtener más información sobre GroupDocs.Comparison Cloud API utilizando la documentación. También proporcionamos una sección Referencia de API que le permite visualizar e interactuar con nuestras API directamente a través del navegador. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.