Anotar documentos PDF utilizando REST API en PHP

Las anotaciones proporcionan información adicional sobre cualquier parte específica del documento. Podemos marcar los documentos con comentarios y revisiones mediante anotaciones. Podemos agregar imágenes, comentarios, notas u otros tipos de comentarios externos a los documentos PDF como anotaciones. En este artículo, aprenderemos cómo anotar documentos PDF utilizando una API REST en PHP.

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

Anotación PDF REST API y PHP SDK

Para anotar documentos PDF, usaremos la API PHP SDK de GroupDocs.Annotation Cloud. Permite agregar anotaciones, superposiciones de marcas de agua, reemplazos de texto, redacciones y marcas de texto a los formatos de documentos admitidos. Instálalo usando el siguiente comando en la consola:

composer require groupdocscloud/groupdocs-annotation-cloud

Después de la instalación, use la carga automática de los compositores para usar el SDK como se muestra a continuación:

require_once('vendor/autoload.php');

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:

// Este ejemplo de código demuestra cómo agregar la identificación y el secreto del cliente en el código.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';

// Inicializando la configuración
$configuration = new GroupDocs\Annotation\Configuration();

// Establecer las configuraciones
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

Anotar documentos PDF utilizando una API REST en PHP

Podemos anotar 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
  3. Descargar el archivo anotado

Sube el documento

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

// Este ejemplo de código demuestra cómo cargar un archivo PDF en la nube.
// Inicializar una instancia de la API
$apiInstance = new GroupDocs\Annotation\FileApi($configuration);

// Ruta de archivo
$file = "C:\\Files\\Annotation\\sample.pdf";

// Crear solicitud de archivo de carga
$request = new GroupDocs\Annotation\Model\Requests\UploadFileRequest("sample.pdf", $file, self::$MyStorage, null);

// Subir archivo
$response = $apiInstance->uploadFile($request);

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

Anotar documento PDF usando PHP

Ahora, agregaremos varias anotaciones al documento PDF cargado mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cree una instancia de AnnotateApi.
  • A continuación, establezca las propiedades de la anotación, por ejemplo, posición, tipo, texto, etc.
  • Luego, repita el paso anterior para agregar varias anotaciones.
  • A continuación, proporcione la ruta del archivo de entrada.
  • Luego, inicialice el objeto AnnotateOptions y configure la ruta del archivo de salida.
  • Después de eso, cree AnnotateRequest con AnnotateOptions como argumento.
  • Finalmente, anote el PDF usando el método AnnotateApi.annotate().

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

// Este ejemplo de código demuestra cómo agregar múltiples anotaciones al PDF.
// Inicializar instancia de AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Agregar anotación de distancia
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt = new GroupDocs\Annotation\Model\Point();
$pt->setX(1);
$pt->setY(1);
$a->setAnnotationPosition($pt);
$box = new GroupDocs\Annotation\Model\Rectangle();
$box->setX(100);
$box->setY(100);
$box->setWidth(200);
$box->setHeight(100);
$a->setBox($box);
$a->setPageNumber(0);
$a->setPenColor(1201033);
$a->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a->setPenWidth(1);
$a->setOpacity(0.7);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_DISTANCE);
$a->setText("This is distance annotation");
$a->setCreatorName("Anonym A.");  

// Agregar anotación de área
$a1 = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt1 = new GroupDocs\Annotation\Model\Point();
$pt1->setX(1);
$pt1->setY(1);
$a1->setAnnotationPosition($pt1);
$box1 = new GroupDocs\Annotation\Model\Rectangle();
$box1->setX(80);
$box1->setY(400);
$box1->setWidth(200);
$box1->setHeight(100);
$a1->setBox($box1);
$a1->setPageNumber(0);
$a1->setPenColor(1201033);
$a1->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a1->setPenWidth(1);
$a1->setOpacity(0.7);
$a1->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_AREA);
$a1->setText("This is area annotation");
$a1->setCreatorName("Anonym A.");   

// Agregar anotación de punto
$a2 = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt2 = new GroupDocs\Annotation\Model\Point();
$pt2->setX(100);
$pt2->setY(100);
$a2->setAnnotationPosition($pt2);
$box2 = new GroupDocs\Annotation\Model\Rectangle();
$box2->setX(450);
$box2->setY(150);
$box2->setWidth(100);
$box2->setHeight(30);
$a2->setBox($box2);
$a2->setPageNumber(0);
$a2->setOpacity(0.7);
$a2->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_POINT);
$a2->setText("This is point annotation");
$a2->setCreatorName("Anonym A.");  

// Agregar anotación de flecha
$a3 = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt3 = new GroupDocs\Annotation\Model\Point();
$pt3->setX(1);
$pt3->setY(1);
$a3->setAnnotationPosition($pt3);
$box3 = new GroupDocs\Annotation\Model\Rectangle();
$box3->setX(350);
$box3->setY(350);
$box3->setWidth(200);
$box3->setHeight(100);
$a3->setBox($box3);
$a3->setPageNumber(0);
$a3->setPenColor(1201033);
$a3->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a3->setPenWidth(1);
$a3->setOpacity(0.7);
$a3->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_ARROW);
$a3->setText("This is arrow annotation");
$a3->setCreatorName("Anonym A.");  

// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opciones de anotación
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a, $a1, $a2, $a3]);
$options->setOutputPath("MultipleAnnotation.pdf");

// Crear solicitud de anotación
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddMultipleAnnotations: Multiple Annotations added: " . $result->getHref();
Anotar documento PDF usando PHP

Anotar documento PDF usando PHP.

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. Se puede descargar usando el siguiente ejemplo de código:

// Este ejemplo de código demuestra cómo descargar un archivo PDF desde la nube.
// Inicializar una instancia de la API
$apiInstance = new GroupDocs\Annotation\FileApi($configuration);

// Crear solicitud de archivo de descarga
$request = new GroupDocs\Annotation\Model\Requests\DownloadFileRequest("MultipleAnnotation.pdf", self::$MyStorage, null);

// Descargar archivo
$response = $apiInstance->downloadFile($request);

También podemos agregar una anotación de hipervínculo en el documento PDF siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cree una instancia de AnnotateApi.
  • A continuación, establezca las propiedades de la anotación, por ejemplo, posición, texto, etc.
  • Luego, establezca el tipo de anotación como Enlace.
  • A continuación, proporcione la ruta del archivo de entrada.
  • Luego, inicialice el objeto AnnotateOptions y configure la ruta del archivo de salida.
  • Después de eso, cree AnnotateRequest con AnnotateOptions como argumento.
  • Finalmente, anote el PDF usando el método AnnotateApi.annotate().

El siguiente ejemplo de código muestra cómo agregar una anotación de hipervínculo en el documento PDF mediante una API REST. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// Este ejemplo de código muestra cómo agregar una anotación de enlace a un PDF
// Inicializar instancia de AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Añadir anotación de enlace
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt1 = new GroupDocs\Annotation\Model\Point();
$pt1->setX(80);
$pt1->setY(710);
$pt2 = new GroupDocs\Annotation\Model\Point();
$pt2->setX(240);
$pt2->setY(710);		
$pt3 = new GroupDocs\Annotation\Model\Point();
$pt3->setX(80);
$pt3->setY(650);		
$pt4 = new GroupDocs\Annotation\Model\Point();
$pt4->setX(240);
$pt4->setY(650);		
$a->setPoints([$pt1, $pt2, $pt3, $pt4]);
$a->setUrl("https://www.groupdocs.com/");
$a->setPageNumber(0);
$a->setFontColor(1201033);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_LINK);
$a->setText("This is link annotation");
$a->setCreatorName("Anonym A.");   

// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opciones de anotación
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddLinkAnnotation.pdf");

// Crear solicitud de anotación
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddLinkAnnotation: Link Annotation added: " . $result->getHref();
Anotar con anotaciones de enlace usando PHP.

Anotar con anotaciones de enlace usando PHP.

Agregar anotación de imagen usando PHP

Podemos agregar anotaciones de imagen en el documento PDF siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer el tipo de anotación en imagen como se muestra a continuación:

$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_IMAGE);

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

// Este ejemplo de código demuestra cómo agregar una anotación de imagen a un PDF
// Inicializar instancia de AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Agregar anotación de imagen
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt = new GroupDocs\Annotation\Model\Point();
$pt->setX(1);
$pt->setY(1);
$a->setAnnotationPosition($pt);
$box = new GroupDocs\Annotation\Model\Rectangle();
$box->setX(200);
$box->setY(0);
$box->setWidth(200);
$box->setHeight(100);
$a->setBox($box);
$a->setPageNumber(0);
$a->setImagePath("groupdocs.png");
$a->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a->setOpacity(0.7);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_IMAGE);
$a->setText("This is image annotation");
$a->setCreatorName("Anonym A.");   

// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opciones de anotación
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddImageAnnotation.pdf");

// Crear solicitud de anotación
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddImageAnnotation: Image Annotation added: " . $result->getHref();
Agregar anotación de imagen usando PHP.

Agregar anotación de imagen usando PHP.

Agregar anotación de campo de texto usando PHP

También podemos agregar una anotación de campo de texto en el documento PDF siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer el tipo de anotación en el campo de texto como se muestra a continuación:

$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_TEXT_FIELD);

El siguiente ejemplo de código muestra cómo agregar una anotación de campo de texto en el documento PDF mediante una API REST. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// Este ejemplo de código demuestra cómo agregar una anotación de campo de texto a PDF
// Inicializar instancia de AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Añadir anotación TextField
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt = new GroupDocs\Annotation\Model\Point();
$pt->setX(1);
$pt->setY(1);
$a->setAnnotationPosition($pt);
$box = new GroupDocs\Annotation\Model\Rectangle();
$box->setX(380);
$box->setY(300);
$box->setWidth(100);
$box->setHeight(50);
$a->setBox($box);
$a->setPageNumber(0);
$a->setFontColor(1201033);
$a->setFontSize(12);
$a->setOpacity(0.7);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_TEXT_FIELD);
$a->setText("Text field text");
$a->setCreatorName("Anonym A.");   

// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opciones de anotación
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddTextFieldAnnotation.pdf");

// Crear solicitud de anotación
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddTextFieldAnnotation: Text Field Annotation added: " . $result->getHref();
Agregar anotación de campo de texto usando PHP.

Agregar anotación de campo de texto usando PHP.

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, hemos aprendido a:

  • agregue múltiples anotaciones a un PDF usando PHP;
  • anotar PDF con enlace, imagen y anotación de campo de texto en PHP;
  • cargue mediante programación el archivo PDF en la nube;
  • descargue el archivo PDF anotado 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