El código QR (código de respuesta rápida) es un tipo de código de barras Matrix legible por máquina en forma de una matriz de cuadrados blancos y negros. Es una etiqueta óptica que contiene información legible mediante un lector QR. Podemos generar códigos QR programáticamente y firmar los documentos e imágenes en la nube. En este artículo, aprenderemos cómo generar un código QR para firmar documentos PDF usando REST API en PHP.
En este artículo se tratarán los siguientes temas:
- Generador de código QR REST API y PHP SDK
- Genera código QR para firmar PDF en PHP
- Genera código QR azteca para firmar PDF en PHP
- Crear código QR DataMatrix para firmar PDF en PHP
- Verificar firmas de código QR en PHP
Generador de código QR REST API y PHP SDK
Para generar códigos QR para firmar documentos PDF, usaremos la API PHP SDK de GroupDocs.Signature Cloud. Permite crear, verificar y buscar varios tipos de firmas, como imágenes, códigos de barras, códigos QR, firmas basadas en texto, digitales y de sellos. Es compatible con los siguientes tipos de códigos QR:
- Código azteca
- Código de matriz de datos
- Matriz de datos GS1
- QR GS1
- código QR
Instálalo usando el siguiente comando en la consola:
composer require groupdocscloud/groupdocs-signature-cloud
Después de la instalación, use la autocarga 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 su ID de cliente y secreto en el código.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';
// Inicializar la configuración
$configuration = new GroupDocs\Signature\Configuration();
// Establecer las configuraciones
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);
Genere código QR para firmar PDF usando REST API en PHP
Podemos generar el código QR para firmar los documentos PDF en la nube siguiendo los sencillos pasos que mencionamos a continuación:
- Subir el PDF a la nube
- Generar Código QR para Firmar PDF
- Descargar el archivo firmado
Sube el documento
En primer lugar, cargaremos el documento PDF en la nube utilizando el ejemplo de código que se muestra a continuación:
// Este ejemplo de código demuestra cómo cargar un archivo PDF en la nube.
// Inicializar la API
$apiInstance = new GroupDocs\Signature\FileApi($configuration);
// Ruta del archivo de entrada
$file = "C:\\Files\\Signature\\sample.pdf";
// Subir solicitud de archivo
$request = new GroupDocs\Signature\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.
Genera código QR para firmar PDF en PHP
Podemos generar un código QR mediante programación y firmar el documento PDF cargado siguiendo los pasos que se detallan a continuación:
- En primer lugar, cree una instancia de SignApi.
- A continuación, proporcione la ruta del archivo PDF de entrada.
- Luego, establezca la ruta del archivo de salida.
- A continuación, inicialice el objeto SignQRCodeOptions.
- Luego, establezca QRCodeType en “QR”. Además, establezca el texto y su posición.
- Opcionalmente, establezca opciones como Página, Ángulo de rotación, Alineación horizontal, Borde, Relleno, etc.
- Después de eso, cree createSignaturesRequest con los SignSettings definidos.
- Finalmente, obtenga resultados llamando al método createSignatures().
El siguiente ejemplo de código muestra cómo generar un código QR y firmar el documento PDF usando una API REST en PHP.
// Este ejemplo de código demuestra cómo generar un código QR para firmar un documento PDF.
// Instancia de SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Definir SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Definir GuardarOpciones
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Definir opciones de código QR para firmar
$options = new GroupDocs\Signature\Model\SignQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);
$options->setQRCodeType("QR");
$options->setText("This is sample QR.");
$options->setLeft(260);
$options->setTop(350);
$options->setWidth(100);
$options->setHeight(100);
// Color
$color = new GroupDocs\Signature\Model\Color();
$color->setWeb("Black");
// Borde
$border = new GroupDocs\Signature\Model\BordeLine();
$border->setColor($color);
$border->setVisible(true);
$border->setWeight(12);
$options->setBorde($border);
// Relleno
$padding = new GroupDocs\Signature\Model\Relleno();
$padding->setAll(5);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);
$settings->setOptions([$options]);
// Crear solicitud de firma
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);
// Crear firmas
$response = $apiInstance->createSignatures($request);
echo "Response: ", $response->getFileInfo();
Descarga el PDF Firmado con Código QR
El ejemplo de código anterior guardará el archivo PDF firmado 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 la API
$apiInstance = new GroupDocs\Signature\FileApi($configuration);
// Descargar solicitud de archivo
$request = new GroupDocs\Signature\Model\Requests\DownloadFileRequest("Aztec_QR_out.pdf", self::$MyStorage, null);
// Descargar archivo
$response = $apiInstance->downloadFile($request);
Genera código azteca para firmar PDF en PHP
El código Aztec es el código QR bidimensional (2D) más fácil de imprimir y escanear. Podemos generar código azteca para firmar el documento PDF subido siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos establecer QRCodeType en “Aztec”.
El siguiente ejemplo de código muestra cómo generar el código Aztec y firmar el documento PDF usando una API REST en PHP.
// Este ejemplo de código demuestra cómo generar código azteca en PHP.
// Instancia de SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Definir SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Definir GuardarOpciones
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Definir opciones de código QR para firmar
$options = new GroupDocs\Signature\Model\SignQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);
$options->setQRCodeType("Aztec");
$options->setText("This is a sample Aztec QR code.");
$options->setLeft(260);
$options->setTop(350);
$options->setWidth(100);
$options->setHeight(100);
// Color
$color = new GroupDocs\Signature\Model\Color();
$color->setWeb("Black");
// Borde
$border = new GroupDocs\Signature\Model\BordeLine();
$border->setColor($color);
$border->setVisible(true);
$border->setWeight(12);
$options->setBorde($border);
// Relleno
$padding = new GroupDocs\Signature\Model\Relleno();
$padding->setAll(2);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);
$settings->setOptions([$options]);
// Crear solicitud de firma
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);
// Crear firmas
$response = $apiInstance->createSignatures($request);
echo "Response: ", $response->getFileInfo();
Crear código DataMatrix para firmar PDF en PHP
También podemos generar código DataMatrix siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos configurar QRCodeType en “DataMatrix”.
El siguiente ejemplo de código muestra cómo generar el código DataMatrix y firmar el documento PDF mediante una API REST en PHP.
// Este ejemplo de código demuestra cómo generar código DataMatrix en PHP.
// Instancia de SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Definir SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Definir GuardarOpciones
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Definir opciones de código QR para firmar
$options = new GroupDocs\Signature\Model\SignQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);
$options->setQRCodeType("DataMatrix");
$options->setText("This is a sample DataMatrix QR code.");
$options->setLeft(260);
$options->setTop(350);
$options->setWidth(100);
$options->setHeight(100);
// Color
$color = new GroupDocs\Signature\Model\Color();
$color->setWeb("Black");
// Borde
$border = new GroupDocs\Signature\Model\BordeLine();
$border->setColor($color);
$border->setVisible(true);
$border->setWeight(12);
$options->setBorde($border);
// Relleno
$padding = new GroupDocs\Signature\Model\Relleno();
$padding->setAll(2);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);
$settings->setOptions([$options]);
// Crear solicitud de firma
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);
// Crear firmas
$response = $apiInstance->createSignatures($request);
echo "Response: ", $response->getFileInfo();
Verificar firmas de códigos QR en PHP
Puede verificar fácilmente las firmas de código QR generadas siguiendo los pasos que se detallan a continuación:
- En primer lugar, cree una instancia de SignApi.
- Establezca la ruta del archivo PDF.
- Defina VerifyQRCodeOptions.
- Proporcione el tipo de firma, el texto y el código.
- Defina VerifySettings y asigne VerifyQRCodeOptions a VerifySettings.
- Después de eso, cree VerifySignatureRequest con VerifySettings.
- Finalmente, obtenga resultados llamando al método verifySignatures().
El siguiente ejemplo de código muestra cómo verificar las firmas de código QR mediante una API REST en PHP.
// Este ejemplo de código demuestra cómo verificar las firmas del código QR.
// Instancia de SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Ruta del archivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("QR_out.pdf");
// Definir la configuración de verificación
$settings = new GroupDocs\Signature\Model\VerifySettings();
$settings->setFileInfo($fileInfo);
// Definir las opciones de verificación del código QR
$options = new GroupDocs\Signature\Model\VerifyQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);
$options->setQRCodeType("QR");
$options->setText("This is sample QR.");
$settings->setOptions([$options]);
// Verificar solicitud de firmas
$request = new GroupDocs\Signature\Model\Requests\VerifySignaturesRequest($settings);
// Verificar firmas
$response = $apiInstance->verifySignatures($request);
echo "Response: ", $response;
Prueba en línea
Pruebe la siguiente herramienta gratuita de firma de PDF en línea, que se desarrolla utilizando la API anterior. https://products.groupdocs.app/signature/pdf
Conclusión
En este artículo, hemos aprendido a:
- generar código QR en PHP;
- firmar documento PDF con código QR en PHP;
- verificar firmas electrónicas en PHP;
- cargue mediante programación el archivo PDF en la nube;
- descargar el archivo PDF firmado desde la nube.
Además, puede obtener más información sobre GroupDocs.Signature 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.