QR Code (código de resposta rápida) é um tipo de código de barras Matrix legível por máquina na forma de uma matriz de quadrados pretos e brancos. É uma etiqueta óptica que contém informações legíveis usando um leitor de QR. Podemos gerar códigos QR programaticamente e assinar os documentos e imagens na nuvem. Neste artigo, aprenderemos como gerar um código QR para assinar documentos PDF usando a API REST em PHP.
Os seguintes tópicos serão abordados neste artigo:
- API REST do gerador de código QR e PHP SDK
- Gerar código QR para assinar PDF em PHP
- Gerar código QR Aztec para assinar PDF em PHP
- Criar código QR DataMatrix para assinar PDF em PHP
- Verificar assinaturas de código QR em PHP
API REST do gerador de código QR e PHP SDK
Para gerar códigos QR para assinar documentos PDF, usaremos a API PHP SDK of GroupDocs.Signature Cloud. Ele permite criar, verificar e pesquisar vários tipos de assinaturas, como imagem, código de barras, QR-Code, assinaturas de texto, digitais e de carimbo. Ele suporta os seguintes tipos de código QR:
- código asteca
- Código DataMatrix
- GS1 DataMatrix
- GS1 QR
- QR
Instale-o usando o seguinte comando no console:
composer require groupdocscloud/groupdocs-signature-cloud
Após a instalação, use o autoload dos compositores para usar o SDK conforme mostrado abaixo:
require_once('vendor/autoload.php');
Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:
// Este exemplo de código demonstra como adicionar seu ID de cliente e segredo no código.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';
// Inicializar a configuração
$configuration = new GroupDocs\Signature\Configuration();
// Definindo as configurações
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);
Gere QR Code para assinar PDF usando REST API em PHP
Podemos gerar o código QR para assinar os documentos PDF na nuvem seguindo os passos simples mencionados abaixo:
- Upload o PDF para a nuvem
- Gerar código QR para assinar PDF
- Baixar o arquivo assinado
Carregue o Documento
Em primeiro lugar, faremos o upload do documento PDF para a nuvem usando o exemplo de código fornecido abaixo:
// Este exemplo de código demonstra como carregar um arquivo PDF para a nuvem.
// Inicializar a API
$apiInstance = new GroupDocs\Signature\FileApi($configuration);
// Caminho do arquivo de entrada
$file = "C:\\Files\\Signature\\sample.pdf";
// Solicitação de upload de arquivo
$request = new GroupDocs\Signature\Model\Requests\UploadFileRequest("sample.pdf", $file, self::$MyStorage, null);
// Subir arquivo
$response = $apiInstance->uploadFile($request);
Como resultado, o arquivo PDF carregado estará disponível na seção de arquivos do painel na nuvem.
Gerar código QR para assinar PDF em PHP
Podemos gerar o código QR programaticamente e assinar o documento PDF carregado seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do SignApi.
- Em seguida, forneça o caminho do arquivo PDF de entrada.
- Em seguida, defina o caminho do arquivo de saída.
- Em seguida, inicialize o objeto SignQRCodeOptions.
- Em seguida, defina o QRCodeType como “QR”. Além disso, defina o texto e sua posição.
- Opcionalmente, defina opções como Page, RotationAngle, HorizontalAlignment, Border, Padding etc.
- Depois disso, crie o createSignaturesRequest com o SignSettings definido.
- Por fim, obtenha os resultados chamando o método createSignatures().
O exemplo de código a seguir mostra como gerar um código QR e assinar o documento PDF usando uma API REST em PHP.
// Este exemplo de código demonstra como gerar o código QR para assinar o documento PDF.
// instância SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Definir SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Definir opções de salvamento
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Definir opções de código QR de assinatura
$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);
// Cor
$color = new GroupDocs\Signature\Model\Cor();
$color->setWeb("Black");
// Fronteira
$border = new GroupDocs\Signature\Model\FronteiraLine();
$border->setCor($color);
$border->setVisible(true);
$border->setWeight(12);
$options->setFronteira($border);
// Preenchimento
$padding = new GroupDocs\Signature\Model\Preenchimento();
$padding->setAll(5);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);
$settings->setOptions([$options]);
// Criar solicitação de assinatura
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);
// Criar assinaturas
$response = $apiInstance->createSignatures($request);
echo "Response: ", $response->getFileInfo();
Baixe o PDF Assinado com QR Code
O exemplo de código acima salvará o arquivo PDF assinado na nuvem. Ele pode ser baixado usando o seguinte exemplo de código:
// Este exemplo de código demonstra como baixar um arquivo PDF da nuvem.
// Inicializar a API
$apiInstance = new GroupDocs\Signature\FileApi($configuration);
// Solicitação de download de arquivo
$request = new GroupDocs\Signature\Model\Requests\DownloadFileRequest("Aztec_QR_out.pdf", self::$MyStorage, null);
// ⇬ Fazer download do arquivo
$response = $apiInstance->downloadFile($request);
Gerar código asteca para assinar PDF em PHP
O código Aztec é o código QR bidimensional (2D) mais fácil de imprimir e digitalizar. Podemos gerar o código asteca para assinar o documento PDF carregado seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir o QRCodeType como “Aztec”.
O exemplo de código a seguir mostra como gerar o código Aztec e assinar o documento PDF usando uma API REST em PHP.
// Este exemplo de código demonstra como gerar código Aztec em PHP.
// instância SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Definir SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Definir opções de salvamento
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Definir opções de código QR de assinatura
$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);
// Cor
$color = new GroupDocs\Signature\Model\Cor();
$color->setWeb("Black");
// Fronteira
$border = new GroupDocs\Signature\Model\FronteiraLine();
$border->setCor($color);
$border->setVisible(true);
$border->setWeight(12);
$options->setFronteira($border);
// Preenchimento
$padding = new GroupDocs\Signature\Model\Preenchimento();
$padding->setAll(2);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);
$settings->setOptions([$options]);
// Criar solicitação de assinatura
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);
// Criar assinaturas
$response = $apiInstance->createSignatures($request);
echo "Response: ", $response->getFileInfo();
Criar código DataMatrix para assinar PDF em PHP
Também podemos gerar código DataMatrix seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir o QRCodeType como “DataMatrix”.
A amostra de código a seguir mostra como gerar o código DataMatrix e assinar o documento PDF usando uma API REST em PHP.
// Este exemplo de código demonstra como gerar código DataMatrix em PHP.
// instância SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Definir SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Definir opções de salvamento
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Definir opções de código QR de assinatura
$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);
// Cor
$color = new GroupDocs\Signature\Model\Cor();
$color->setWeb("Black");
// Fronteira
$border = new GroupDocs\Signature\Model\FronteiraLine();
$border->setCor($color);
$border->setVisible(true);
$border->setWeight(12);
$options->setFronteira($border);
// Preenchimento
$padding = new GroupDocs\Signature\Model\Preenchimento();
$padding->setAll(2);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);
$settings->setOptions([$options]);
// Criar solicitação de assinatura
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);
// Criar assinaturas
$response = $apiInstance->createSignatures($request);
echo "Response: ", $response->getFileInfo();
Verificar assinaturas de código QR em PHP
Você pode verificar facilmente as assinaturas de código QR geradas seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do SignApi.
- Defina o caminho do arquivo PDF.
- Defina VerifyQRCodeOptions.
- Forneça o tipo de assinatura, o texto e o código.
- Defina VerifySettings e atribua VerifyQRCodeOptions a VerifySettings.
- Depois disso, crie o VerifySignatureRequest com VerifySettings.
- Por fim, obtenha os resultados chamando o método verifySignatures().
A amostra de código a seguir mostra como verificar as assinaturas de código QR usando uma API REST em PHP.
// Este exemplo de código demonstra como verificar as assinaturas de código QR.
// instância SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("QR_out.pdf");
// Definir configurações de verificação
$settings = new GroupDocs\Signature\Model\VerifySettings();
$settings->setFileInfo($fileInfo);
// Definir opções de verificação de 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 solicitação de assinaturas
$request = new GroupDocs\Signature\Model\Requests\VerifySignaturesRequest($settings);
// Verificar assinaturas
$response = $apiInstance->verifySignatures($request);
echo "Response: ", $response;
Experimente on-line
Experimente a seguinte ferramenta de assinatura de PDF on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/signature/pdf
Conclusão
Neste artigo, aprendemos como:
- gerar código QR em PHP;
- assinar documento PDF com código QR em PHP;
- verificar assinaturas eletrônicas em PHP;
- carregar programaticamente o arquivo PDF para a nuvem;
- baixe o arquivo PDF assinado da nuvem.
Além disso, você pode aprender mais sobre GroupDocs.Signature Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.