Como desarrollador de Python, puede anotar cualquier archivo de Word (.doc o .docx) mediante programación en la nube. Las anotaciones suelen ser metadatos en forma de comentarios, notas, explicaciones u otros tipos de comentarios externos en el documento que proporcionan información adicional sobre un dato existente. Este artículo se centrará en cómo anotar archivos DOCX utilizando una API REST en Python.

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

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

GroupDocs.Nube de anotación

Para anotar documentos DOC o DOCX, usaré la API Python SDK de GroupDocs.Annotation Cloud. Le permite crear mediante programación herramientas de anotación de imágenes y documentos en línea. Dichas herramientas se pueden usar para agregar anotaciones, superposiciones de marcas de agua, reemplazos de texto, redacciones, notas adhesivas y marcas de texto a los documentos comerciales de todos los formatos populares. También proporciona los SDK de .NET, Java, PHP, Ruby y Node.js como sus miembros de la familia de anotaciones de documentos para la API de la nube.

Puede instalar GroupDocs.Annotation Cloud en su proyecto de Python usando el siguiente comando en la consola:

pip install groupdocs_annotation_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 = ""

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

Anotar archivos DOCX usando una API REST en Python

Puede agregar anotaciones al archivo DOCX siguiendo los sencillos pasos que se mencionan a continuación:

Sube el documento

En primer lugar, cargue el archivo DOCX en la nube utilizando el ejemplo de código que se muestra a continuación:

# Crear instancia de la API
file_api = groupdocs_annotation_cloud.FileApi.from_config(configurations)

request = groupdocs_annotation_cloud.UploadFileRequest("one-page.docx", "C:\\Files\\one-page.docx", my_storage)
response = file_api.upload_file(request)

Como resultado, el archivo DOCX cargado estará disponible en la sección de archivos de su tablero en la nube.

Agregar anotaciones a archivos DOCX en Python

Siga los pasos que se mencionan a continuación para insertar anotaciones en el documento de Word mediante programación.

  • Crear una instancia de AnnotationInfo
  • Establezca varias propiedades de anotación, por ejemplo, posición, tipo, texto, etc.
  • Crear una instancia de FileInfo
  • Establecer la ruta del archivo
  • Crear una instancia de AnnotateOptions
  • Establecer información de archivo en AnnotateOptions
  • Establecer anotación en AnnotateOptions
  • Cree una solicitud llamando al método AnnotateRequest
  • Obtenga resultados llamando al método AnnotateApi.annotate()

El siguiente fragmento de código muestra cómo insertar anotaciones de área en el documento de Word mediante una API REST.

api = groupdocs_annotation_cloud.AnnotateApi.from_keys(client_id, client_secret)

a1 = groupdocs_annotation_cloud.AnnotationInfo()
a1.annotation_position = groupdocs_annotation_cloud.Point()
a1.annotation_position.x = 1
a1.annotation_position.y = 1
a1.box = groupdocs_annotation_cloud.Rectangle()
a1.box.x = 100
a1.box.y = 100
a1.box.width = 200
a1.box.height = 100
a1.page_number = 0
a1.pen_color = 1201033
a1.pen_style = "Solid"
a1.pen_width = 1
a1.opacity = 0.7

# Agregar anotación de área
a1.type = "Area"
a1.text = "This is area annotation"
a1.creator_name = "Anonym A."

file_info = groupdocs_annotation_cloud.FileInfo()
file_info.file_path = "one-page.docx"
options = groupdocs_annotation_cloud.AnnotateOptions()
options.file_info = file_info
options.annotations = [a1]
options.output_path = "Output\\output.docx"

request = groupdocs_annotation_cloud.AnnotateRequest(options)
result = api.annotate(request)

Como resultado, las anotaciones de área se insertarán en el documento como se muestra a continuación.

Agregar anotaciones a archivos DOCX en Python

Tipos de anotación admitidos

A continuación encontrará la lista de tipos de anotaciones admitidos que puede agregar a sus archivos DOCX siguiendo los pasos mencionados anteriormente:

  • Área
  • Distancia
  • Enlace
  • Punto
  • Polilínea
  • Imagen
  • Texto
  • Filigrana
  • Flecha

Descargar el archivo actualizado

El ejemplo de código anterior guardará el archivo DOCX anotado en la nube. Puede descargarlo utilizando el siguiente ejemplo de código:

# Crear instancia de la API
file_api = groupdocs_annotation_cloud.FileApi.from_config(configurations)

request = groupdocs_annotation_cloud.DownloadFileRequest("Output\\output.docx", my_storage)
response = file_api.download_file(request)

# Mueva el archivo descargado a su directorio de trabajo
shutil.move(response, "C:\\Files\\")

Agregar múltiples anotaciones usando Python

Siga los pasos que se mencionan a continuación para agregar múltiples anotaciones a sus archivos DOCX mediante programación.

  • Crear la primera instancia de AnnotationInfo
  • Establezca varias propiedades de anotación para la primera instancia, por ejemplo, posición, tipo, texto, etc.
  • Crear segunda instancia de AnnotationInfo
  • Establezca varias propiedades de anotación para la segunda instancia, por ejemplo, posición, tipo, texto, etc.
  • Crear una instancia de FileInfo
  • Establecer la ruta del archivo
  • Crear una instancia de AnnotateOptions
  • Establecer información de archivo en AnnotateOptions
  • Establezca la primera y la segunda anotación en AnnotateOptions
  • Cree una solicitud llamando al método AnnotateRequest
  • Obtenga resultados llamando al método AnnotateApi.annotate()

El siguiente fragmento de código muestra cómo agregar varias anotaciones al archivo DOCX mediante una API REST. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

api = groupdocs_annotation_cloud.AnnotateApi.from_keys(client_id, client_secret)
  
a1 = groupdocs_annotation_cloud.AnnotationInfo()
a1.annotation_position = groupdocs_annotation_cloud.Point()
a1.annotation_position.x = 1
a1.annotation_position.y = 1
a1.box = groupdocs_annotation_cloud.Rectangle()
a1.box.x = 200
a1.box.y = 200
a1.box.width = 300
a1.box.height = 100
a1.page_number = 0
a1.pen_color = 1201033
a1.pen_style = "Solid"
a1.pen_width = 1
a1.opacity = 0.2
a1.type = "Watermark"
a1.text = "This is watermark annotation"
a1.creator_name = "Anonym A."
    
a2 = groupdocs_annotation_cloud.AnnotationInfo()
a2.annotation_position = groupdocs_annotation_cloud.Point()
a2.annotation_position.x = 852
a2.annotation_position.y = 59.38
a2.box = groupdocs_annotation_cloud.Rectangle()
a2.box.x = 375.8
a2.box.y = 59.38
a2.box.width = 88
a2.box.height = 37
a2.page_number = 2
a2.pen_color = 1201033
a2.pen_style = "Solid"
a2.pen_width = 1
a2.opacity = 0.9
a2.type = "Image"
a2.text = "This is Image annotation"
a2.creator_name = "Anonym A."
a2.image_path = "JohnSmith.png"
    
file_info = groupdocs_annotation_cloud.FileInfo()
file_info.file_path = "ten-pages.docx"
options = groupdocs_annotation_cloud.AnnotateOptions()
options.file_info = file_info
options.annotations = [a1, a2]
options.output_path = "Output\\output.docx"

request = groupdocs_annotation_cloud.AnnotateRequest(options)
result = api.annotate(request)

Como resultado, las anotaciones de imagen y marca de agua se insertarán en el documento como se muestra a continuación.

anotaciones de imagen y marca de agua

Conclusión

En este artículo, aprendió cómo agregar varios tipos de anotaciones a documentos de Word en la nube con la API REST de anotación de documentos usando Python. También aprendió cómo cargar mediante programación el archivo DOCX en la nube y luego descargar el archivo anotado de la nube. Puede obtener más información sobre GroupDocs.Annotation 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.