Anotar documentos PDF usando una API REST en Node.js

Como desarrollador de Node.js, puede anotar fácilmente cualquiera de sus documentos PDF mediante programación en la nube. Puede agregar imágenes, comentarios, notas u otros tipos de comentarios externos al documento como anotaciones. En este artículo, aprenderá a anotar documentos PDF utilizando una API REST en Node.js.

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

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

Para anotar documentos PDF, usaré la API Node.js SDK de GroupDocs.Annotation Cloud. Le permite crear mediante programación herramientas de anotación de documentos en línea. Puede agregar anotaciones, superposiciones de marcas de agua, reemplazos de texto, redacciones y marcas de texto a los formatos de documentos admitidos. También proporciona SDK de .NET, Java, PHP, Ruby y Python como sus miembros de la familia de anotaciones de documentos para la API de la nube.

Puede instalar GroupDocs.Annotation Cloud en su aplicación Node.js con el siguiente comando en la consola:

npm 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. 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"; // Get ClientId and ClientSecret from https://dashboard.groupdocs.cloud
global.clientSecret = "b377c36cfa28fa69960ebac6b6e36421"; // Get ClientId and ClientSecret from https://dashboard.groupdocs.cloud
global.myStorage = "";

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

Anotar documentos PDF usando una API REST en Node.js

Puede anotar sus documentos PDF en la nube siguiendo los sencillos pasos que se indican a continuación:

  1. Subir el archivo PDF a la Nube
  2. Anotar documento PDF usando Node.js
  3. Descargar el archivo anotado

Sube el documento

En primer lugar, cargue el archivo PDF en la nube utilizando el siguiente ejemplo de código:

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

// Abra el archivo en IOStream desde local/disco.
var resourcesFolder = 'C:\\Files\\sample.pdf';
// leer archivo
fs.readFile(resourcesFolder, (err, fileStream) => {
  // crear solicitud de carga de archivo
  var request = new groupdocs_annotation_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  // subir archivo
  fileApi.uploadFile(request)
});

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

Anotar documento PDF usando Node.js

Puede agregar varias anotaciones al documento PDF mediante programación siguiendo los pasos que se mencionan a continuación:

  • Crear una instancia de AnnotateApi
  • Crear la primera instancia de AnnotationInfo
  • Establezca propiedades de anotación para la primera instancia, por ejemplo, posición, tipo, texto, etc.
  • Crear una segunda instancia de AnnotationInfo
  • Establezca propiedades de anotación para la segunda instancia, por ejemplo, posición, tipo, texto, etc.
  • Crear una tercera instancia de AnnotationInfo
  • Establezca propiedades de anotación para la tercera instancia, por ejemplo, posición, tipo, texto, etc.
  • Crear una cuarta instancia de AnnotationInfo
  • Establezca propiedades de anotación para la cuarta instancia, por ejemplo, posición, tipo, texto, etc.
  • Cree una instancia de FileInfo y configure la ruta del archivo de entrada
  • Crear una instancia de AnnotateOptions
  • Asigne FileInfo y las instancias de anotación definidas a AnnotateOptions
  • Establecer la ruta del archivo de salida
  • Cree una solicitud llamando al método AnnotateRequest con AnnotateOptions
  • Obtenga resultados llamando al método AnnotateApi.annotate() con AnnotateRequest

El siguiente ejemplo de código muestra cómo anotar un documento PDF con múltiples anotaciones usando una API REST en Node.js.

// inicializar API
let anotarApi = groupdocs_annotation_cloud.AnnotateApi.fromKeys(clientId, clientSecret);

// 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 anotación de distancia";
a1.creatorName = "Anonym A.";

// 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 anotación de área";
a2.creatorName = "Anonym A.";

// anotación de campo de texto
let a3 = new groupdocs_annotation_cloud.AnnotationInfo();
a3.annotationPosition = new groupdocs_annotation_cloud.Point();
a3.annotationPosition.x = 100;
a3.annotationPosition.y = 100;
a3.box = new groupdocs_annotation_cloud.Rectangle();
a3.box.x = 450
a3.box.y = 150
a3.box.width = 100
a3.box.height = 30
a3.pageNumber = 0;
a3.fontColor = 65535;
a3.fontSize = 16;
a3.type = groupdocs_annotation_cloud.AnnotationInfo.TypeEnum.TextField;
a3.text = "Text field text";
a3.creatorName = "Anonym A.";

// 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 anotación de elipse";
a4.creatorName = "Anonym A.";

let fileInfo = new groupdocs_annotation_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";
let options = new groupdocs_annotation_cloud.AnnotateOptions();
options.fileInfo = fileInfo;
options.annotations = [a1, a2, a3, a4];
options.outputPath = "Output/output.pdf";

// crear solicitud de anotación
let request = new groupdocs_annotation_cloud.AnnotateRequest(options);
// anotar
let result = await anotarApi.anotar(request);

console.log("Multiple Annotations added: " + result.href);
Anotar documentos PDF usando una API REST en Node.js

Anotar documentos PDF usando una API REST en Node.js

Puede leer más sobre los tipos de anotaciones admitidos en la sección agregar anotaciones en la documentación.

Descargar el archivo anotado

El ejemplo de código anterior guardará el archivo PDF anotado en la nube. Puede descargarlo utilizando 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("Output/output.pdf", myStorage);
// descargar archivo
let response = await fileApi.downloadFile(request);

// guardar archivo en el directorio de trabajo
fs.writeFile("C:\\Files\\output.pdf", response, "binary", function (err) { });
console.log(response);

Agregar anotaciones de imagen usando Node.js

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

  • Crear una instancia de AnnotateApi
  • Crear una instancia de AnnotationInfo
  • Definir un rectángulo y establecer su posición, alto y ancho
  • Establezca propiedades de anotación, por ejemplo, posición, texto, alto, ancho, etc.
  • Establezca el tipo de anotación como Imagen
  • Cree una instancia de FileInfo y configure la ruta del archivo de entrada
  • Crear una instancia de AnnotateOptions
  • Asigne FileInfo y la anotación a AnnotateOptions
  • Establecer la ruta del archivo de salida
  • Cree una solicitud llamando al método AnnotateRequest con AnnotateOptions
  • Obtenga resultados llamando al método AnnotateApi.annotate() con AnnotateRequest

El siguiente ejemplo de código muestra cómo agregar anotaciones de imágenes en el documento PDF mediante una API REST en Node.js. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// inicializar API
let anotarApi = groupdocs_annotation_cloud.AnnotateApi.fromKeys(clientId, clientSecret);

// 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 = 160;
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 anotación de imagen";
a1.creatorName = "Anonym A.";
a1.imagePath = "JohnSmith.png";

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

// definir opciones de anotación
let options = new groupdocs_annotation_cloud.AnnotateOptions();
options.fileInfo = fileInfo;
options.annotations = [a1];
options.outputPath = "Output/output.pdf";

// crear solicitud de anotación
let request = new groupdocs_annotation_cloud.AnnotateRequest(options);
// anotar
let result = await anotarApi.anotar(request);

console.log("Image Annotation added: " + result.href);
Agregar anotaciones de imagen usando Node.js

Agregar anotaciones de imagen usando Node.js

Prueba en línea

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

Conclusión

En este artículo, ha aprendido a agregar múltiples anotaciones a documentos PDF en la nube. También aprendió cómo agregar anotaciones de imágenes a documentos PDF mediante programación. Además, aprendió cómo cargar un archivo PDF en la nube mediante programación 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.

Ver también