Agregue anotaciones en documentos de Word usando una API REST en Node.js

Podemos anotar fácilmente documentos de Word mediante programación en la nube. Podemos agregar imágenes, comentarios, notas u otro tipo de comentarios externos a los documentos como anotaciones. En este artículo, aprenderemos cómo agregar anotaciones en documentos de Word utilizando una API REST en Node.js.

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

API REST de anotación de documentos de Word y SDK de Node.js

Para anotar archivos DOC o DOCX, usaremos la API Node.js SDK de GroupDocs.Annotation Cloud. Instálalo usando el siguiente comando en la consola:

npm install groupdocs-annotation-cloud

Por favor, obtenga su ID de cliente y secreto del tablero antes de seguir los pasos mencionados. Una vez que tenga su ID y secreto, agregue el código como se muestra a continuación:

global.clientId = "659fe7da-715b-4744-a0f7-cf469a392b73"; 
global.clientSecret = "b377c36cfa28fa69960ebac6b6e36421";
global.myStorage = "";

const configuration = new groupdocs_annotation_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

Anotar documentos de Word usando la API REST en Node.js

Podemos agregar anotaciones a los archivos DOCX siguiendo los sencillos pasos que se mencionan a continuación:

Sube el documento

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

// Inicializar API
var fileApi = new groupdocs_annotation_cloud.FileApi(configuration);
// Abra el archivo en IOStream desde local/disco.
var resourcesFolder = 'C:\\Files\\Annotation\\sample.docx';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // Crear solicitud de carga
  var request = new groupdocs_annotation_cloud.UploadFileRequest("sample.docx", fileStream, myStorage);
  // Subir archivo
  fileApi.uploadFile(request);
});

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

Agregue múltiples anotaciones a archivos DOCX en Node.js

Podemos agregar múltiples anotaciones a los documentos de Word mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cree una instancia de AnnotateApi.
  • A continuación, cree la primera instancia de AnnotationInfo.
  • Luego, establezca las propiedades de anotación para la primera instancia, por ejemplo, posición, tipo, texto, etc.
  • Repita los pasos anteriores para agregar varias instancias de AnnotationInfo. Estableceremos diferentes tipos de anotaciones y otras propiedades para cada instancia para agregar múltiples anotaciones.
  • A continuación, cree una instancia de FileInfo y configure la ruta del archivo de entrada.
  • Luego, cree una instancia de AnnotateOptions.
  • Ahora, asigne FileInfo y las instancias de anotación definidas a AnnotateOptions.
  • Además, establezca la ruta del archivo de salida.
  • Después de eso, llama al método AnnotateRequest con AnnotateOptions.
  • Finalmente, obtenga resultados llamando al método AnnotateApi.annotate() con AnnotateRequest.

El siguiente ejemplo de código muestra cómo agregar múltiples anotaciones a un documento de Word usando una API REST en Node.js.

// Inicializar API
let annotateApi = groupdocs_annotation_cloud.AnotarApi.fromKeys(clientId, clientSecret);

// Definir anotación de distancia
let a1 = new groupdocs_annotation_cloud.AnnotationInfo();
a1.annotationPosition = new groupdocs_annotation_cloud.Point();
a1.annotationPosition.x = 1;
a1.annotationPosition.y = 1;
a1.box = new groupdocs_annotation_cloud.Rectangle();
a1.box.x = 100
a1.box.y = 100
a1.box.width = 200
a1.box.height = 100
a1.pageNumber = 0
a1.penColor = 1201033
a1.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid;
a1.penWidth = 3
a1.opacity = 1
a1.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Distance;
a1.text = "This is distance annotation";
a1.creatorName = "Anonym A.";

// Definir anotación de área
let a2 = new groupdocs_annotation_cloud.AnnotationInfo();
a2.annotationPosition = new groupdocs_annotation_cloud.Point();
a2.annotationPosition.x = 1;
a2.annotationPosition.y = 1;
a2.box = new groupdocs_annotation_cloud.Rectangle();
a2.box.x = 80
a2.box.y = 400
a2.box.width = 200
a2.box.height = 100
a2.penColor = 1201033;
a2.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid;
a2.pageNumber = 0;
a2.penWidth = 3;
a2.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Area;
a2.text = "This is area annotation";
a2.creatorName = "Anonym A.";

// Definir anotación de flecha
let a3 = new groupdocs_annotation_cloud.AnnotationInfo();
a3.annotationPosition = new groupdocs_annotation_cloud.Point();
a3.annotationPosition.x = 1;
a3.annotationPosition.y = 1;
a3.box = new groupdocs_annotation_cloud.Rectangle();
a3.box.x = 100;
a3.box.y = 100;
a3.box.width = 200;
a3.box.height = 100;
a3.pageNumber = 0;
a3.penColor = 1201033;
a3.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid;
a3.penWidth = 1;
a3.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Arrow;
a3.text = "This is arrow annotation";
a3.creatorName = "Anonym A.";

// Definir anotación de elipse
let a4 = new groupdocs_annotation_cloud.AnnotationInfo();
a4.annotationPosition = new groupdocs_annotation_cloud.Point();
a4.annotationPosition.x = 1;
a4.annotationPosition.y = 1;
a4.box = new groupdocs_annotation_cloud.Rectangle();
a4.box.x = 350;
a4.box.y = 350;
a4.box.width = 200;
a4.box.height = 100;
a4.pageNumber = 0;
a4.penColor = 1201033;
a4.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid;
a4.penWidth = 4;
a4.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Ellipse;
a4.text = "This is ellipse annotation";
a4.creatorName = "Anonym A.";

// Ruta del archivo de entrada
let fileInfo = new groupdocs_annotation_cloud.FileInfo();
fileInfo.filePath = "sample.docx";

// Definir opciones de anotación
let options = new groupdocs_annotation_cloud.AnotarOptions();
options.fileInfo = fileInfo;
options.annotations = [a1, a2, a3, a4];
options.outputPath = "AddMultipleAnnotations.docx";

// Crear solicitud de anotación
let request = new groupdocs_annotation_cloud.AnotarRequest(options);

// Anotar
let result = await annotateApi.annotate(request);
Agregue múltiples anotaciones a archivos DOCX en Node.js

Agregue múltiples anotaciones a archivos DOCX en Node.js

Descargar el archivo anotado

El ejemplo de código anterior guardará el documento de Word anotado (DOCX) en la nube. Se puede descargar usando el siguiente ejemplo de código:

// Construir FileApi
var fileApi = new groupdocs_annotation_cloud.FileApi(configuration);

// Crear solicitud de archivo de descarga
let request = new groupdocs_annotation_cloud.DownloadFileRequest("AddMultipleAnnotations.docx", myStorage);
// Descargar archivo
let response = await fileApi.downloadFile(request);

// Guardar archivo en el directorio de trabajo
fs.writeFile("C:\\Files\\Annotation\\AddMultipleAnnotations.docx", response, "binary", function (err) { });

Agregue anotaciones de imágenes en documentos de Word usando la API REST en Node.js

Podemos agregar anotaciones de imágenes en documentos de Word mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cree una instancia de AnnotateApi.
  • A continuación, cree una instancia de AnnotationInfo.
  • Luego, defina un rectángulo y establezca su posición, altura y ancho.
  • Después de eso, establezca las propiedades de la anotación, por ejemplo, posición, texto, alto, ancho, etc.
  • Luego, establezca el tipo de anotación como Imagen.
  • A continuación, cree una instancia de FileInfo y configure la ruta del archivo de entrada.
  • Luego, cree una instancia de AnnotateOptions.
  • Ahora, asigne el objeto FileInfo y la anotación a AnnotateOptions.
  • Además, establezca la ruta del archivo de salida.
  • Después de eso, cree una solicitud llamando al método AnnotateRequest con el objeto AnnotateOptions como argumento.
  • Finalmente, obtenga resultados llamando al método AnnotateApi.annotate() con el objeto AnnotateRequest.

El siguiente ejemplo de código muestra cómo agregar una anotación de imagen a un documento de Word usando una API REST en Node.js. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// Inicializar API
let annotateApi = groupdocs_annotation_cloud.AnotarApi.fromKeys(clientId, clientSecret);

// Definir anotación de imagen
let a1 = new groupdocs_annotation_cloud.AnnotationInfo();
a1.annotationPosition = new groupdocs_annotation_cloud.Point();
a1.annotationPosition.x = 1;
a1.annotationPosition.y = 1;
a1.box = new groupdocs_annotation_cloud.Rectangle();
a1.box.x = 300;
a1.box.y = 320;
a1.box.width = 200;
a1.box.height = 40;
a1.pageNumber = 0;
a1.penColor = 1201033;
a1.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid;
a1.penWidth = 1;
a1.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Image;
a1.text = "This is image annotation";
a1.creatorName = "Anonym A.";
a1.imagePath = "JohnSmith.png";

// Ruta del archivo de entrada
let fileInfo = new groupdocs_annotation_cloud.FileInfo();
fileInfo.filePath = "sample.docx";

// Definir opciones de anotación
let options = new groupdocs_annotation_cloud.AnotarOptions();
options.fileInfo = fileInfo;
options.annotations = [a1];
options.outputPath = "AddImageAnnotation.docx";

// Crear solicitud de anotación
let request = new groupdocs_annotation_cloud.AnotarRequest(options);

// Anotar
let result = await annotateApi.annotate(request);
Agregue anotaciones de imágenes en documentos de Word usando la API REST en Node.js

Agregue anotaciones de imágenes en documentos de Word usando la API REST en Node.js

Agregue anotaciones de campo de texto en documentos de Word usando la API REST en Node.js

Podemos agregar anotaciones de campo de texto en documentos de Word mediante programación siguiendo los pasos mencionados anteriormente. Sin embargo, debemos establecer el tipo de anotación como TextField.

El siguiente ejemplo de código muestra cómo agregar una anotación de campo de texto a un documento de Word usando una API REST en Node.js. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// Inicializar API
let annotateApi = groupdocs_annotation_cloud.AnotarApi.fromKeys(clientId, clientSecret);

// Definir anotación de campo de texto
let a1 = new groupdocs_annotation_cloud.AnnotationInfo();
a1.annotationPosition = new groupdocs_annotation_cloud.Point();
a1.annotationPosition.x = 1;
a1.annotationPosition.y = 1;
a1.box = new groupdocs_annotation_cloud.Rectangle();
a1.box.x = 300;
a1.box.y = 310;
a1.box.width = 200;
a1.box.height = 50;
a1.pageNumber = 0;
a1.fontColor = 3093151;
a1.fontSize = 12;
a1.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.TextField;
a1.text = "Text field text";
a1.creatorName = "Anonym A.";

// Ruta del archivo de entrada
let fileInfo = new groupdocs_annotation_cloud.FileInfo();
fileInfo.filePath = "sample.docx";

// Definir opciones de anotación
let options = new groupdocs_annotation_cloud.AnotarOptions();
options.fileInfo = fileInfo;
options.annotations = [a1];
options.outputPath = "AddTextFieldAnnotation.docx";

// Crear solicitud de anotación
let request = new groupdocs_annotation_cloud.AnotarRequest(options);

// Anotar
let result = await annotateApi.annotate(request);
Agregue anotaciones en documentos de Word usando la API REST en Node.js

Agregue anotaciones de campo de texto en documentos de Word usando la API REST en Node.js

Anotaciones de marca de agua en documentos de Word usando REST API en Node.js

Podemos agregar anotaciones de marca de agua en documentos de Word mediante programación siguiendo los pasos mencionados anteriormente. Sin embargo, debemos establecer el tipo de anotación como Marca de agua.

El siguiente ejemplo de código muestra cómo agregar una anotación de marca de agua a un documento de Word usando una API REST en Node.js. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// Inicializar API
let annotateApi = groupdocs_annotation_cloud.AnotarApi.fromKeys(clientId, clientSecret);

// Definir anotación de marca de agua
let a1 = new groupdocs_annotation_cloud.AnnotationInfo();
a1.annotationPosition = new groupdocs_annotation_cloud.Point();
a1.annotationPosition.x = 1;
a1.annotationPosition.y = 1;
a1.box = new groupdocs_annotation_cloud.Rectangle();
a1.box.x = 100;
a1.box.y = 700;
a1.box.width = 500;
a1.box.height = 100;
a1.pageNumber = 0;
a1.penColor = 1201033;
a1.penStyle = groupdocs_annotation_cloud.AnnotationInfo.PenStyleEnum.Solid;
a1.penWidth = 2;
a1.fontSize = 24;
a1.angle = 75;
a1.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.Watermark;
a1.text = "This is a watermark annotation";
a1.creatorName = "Anonym A.";

// Ruta del archivo de entrada
let fileInfo = new groupdocs_annotation_cloud.FileInfo();
fileInfo.filePath = "sample.docx";

// Definir opciones de anotación
let options = new groupdocs_annotation_cloud.AnotarOptions();
options.fileInfo = fileInfo;
options.annotations = [a1];
options.outputPath = "AddWatermarkAnnotation.docx";

// Crear solicitud de anotación
let request = new groupdocs_annotation_cloud.AnotarRequest(options);

// Anotar
let result = await annotateApi.annotate(request);
Anotaciones de marca de agua en documentos de Word usando REST API en Node.js

Anotaciones de marca de agua en documentos de Word usando REST API en Node.js

Prueba en línea

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

Conclusión

En este artículo, hemos aprendido cómo agregar anotaciones a documentos de Word en la nube. También hemos visto cómo agregar anotaciones de campos de imagen y texto al archivo DOCX usando una API REST en Node.js. Este artículo también explicó cómo cargar mediante programación un archivo DOCX a la nube y luego descargar el archivo editado de la nube. Además, 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.

Ver también