Gere QR Code para assinar PDF usando REST API em PHP.

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

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:

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:

  1. Em primeiro lugar, crie uma instância do SignApi.
  2. Em seguida, forneça o caminho do arquivo PDF de entrada.
  3. Em seguida, defina o caminho do arquivo de saída.
  4. Em seguida, inicialize o objeto SignQRCodeOptions.
  5. Em seguida, defina o QRCodeType como “QR”. Além disso, defina o texto e sua posição.
  6. Opcionalmente, defina opções como Page, RotationAngle, HorizontalAlignment, Border, Padding etc.
  7. Depois disso, crie o createSignaturesRequest com o SignSettings definido.
  8. 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();
Gere QR Code para assinar PDF usando REST API em PHP.

Gere QR Code para assinar PDF usando API REST em PHP.

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();
Gere código QR Aztec para assinar PDF em PHP.

Gerar código Aztec para assinar PDF em PHP.

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();
Criar código QR DataMatrix para assinar PDF em PHP.

Criar código DataMatrix para assinar PDF em PHP.

Verificar assinaturas de código QR em PHP

Você pode verificar facilmente as assinaturas de código QR geradas seguindo as etapas abaixo:

  1. Em primeiro lugar, crie uma instância do SignApi.
  2. Defina o caminho do arquivo PDF.
  3. Defina VerifyQRCodeOptions.
  4. Forneça o tipo de assinatura, o texto e o código.
  5. Defina VerifySettings e atribua VerifyQRCodeOptions a VerifySettings.
  6. Depois disso, crie o VerifySignatureRequest com VerifySettings.
  7. 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.

Veja também