
Os documentos PDF estão entre os formatos de arquivo amplamente usados para compartilhamento de informações. Eles geralmente têm valor confidencial e legal, como um contrato. Para garantir a integridade dos arquivos e evitar qualquer falsificação, adicionamos assinaturas digitais. Isso também garante que um documento não foi modificado por alguém que não seja seu autor e verifica se o autor é quem esperamos e não outra pessoa.
Uma assinatura digital em um PDF é o equivalente a uma assinatura à tinta em um documento em papel, mas é muito mais segura. Essa informação é colocada dentro de um documento, e leitores populares de PDF podem verificar se o documento não foi modificado por uma pessoa desconhecida. Neste artigo, discutiremos os detalhes sobre como assinar digitalmente documentos PDF online em PHP.
- Acessar API usando comando cURL
- Acessar API através do PHP SDK
- Ler campo de assinatura
- Adicionar campos de assinatura usando PHP
Acessar API usando comando cURL
Nossas APIs são construídas de acordo com os princípios da arquitetura REST, então elas também podem ser acessadas via comandos cURL. Observe que nossas APIs são acessíveis somente a pessoas autorizadas, então antes de acessar as APIs, você precisa primeiro visitar Aspose.Cloud dashboard e se você tiver uma conta GitHub ou Google, simplesmente Inscreva-se. Caso contrário, clique no botão Create a new Account e forneça as informações necessárias. Agora faça login no dashboard usando credenciais e expanda a seção Applications do dashboard e role para baixo em direção à seção Client Credentials para ver os detalhes do Client ID e do Client Secret.
Agora, o próximo passo é gerar JSON Web Token (JWT) para que as APIs sejam acessíveis por meio do prompt de comando. O mesmo token JWT é usado para acessar APIs por meio de comandos cURL.
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
Acessar API através do PHP SDK
Para facilitar nossos clientes PHP que desejam processar arquivos PDF programaticamente por meio de código PHP, desenvolvemos o Aspose.PDF Cloud SDK para PHP, que é um wrapper em torno do Aspose.PDF Cloud API. Podemos usar o mesmo SDK para processar assinaturas digitais e executar operações relacionadas. O SDK está disponível para download em Composer e GitHub.
Agora vamos discutir as etapas para instalar o Aspose.PDF Cloud SDK para PHP por meio do composer. Já sabemos que o Composer é recomendado para uso com o SDK e para gerenciar as dependências do seu projeto. Então, depois de configurar o composer no seu sistema, tente usar o seguinte comando para instalar o Aspose.PDF Cloud SDK para PHP.
composer require aspose/pdf-sdk-php
Ler campos de assinatura
A API permite que você leia as propriedades associadas aos campos de assinatura já disponíveis em documentos PDF. Para ler o campo de assinatura, você tem duas opções.
- Leia os campos de assinatura da página específica do documento usando GetPageSignatureFields API
- Ler campo de assinatura do documento por nome usando GetSignatureField API
Para ler os campos de assinatura de uma página específica do documento, tente usar o seguinte comando cURL. Observe que no comando a seguir, BlankWithSignature.pdf é o arquivo PDF de origem:
curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/page/1/fields/signature" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
Agora, para ler propriedades associadas a um determinado campo de assinatura no documento, tente usar o seguinte comando, onde fornecemos o nome de um campo de assinatura específico como argumento.
curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/fields/signature/Signature1" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
Os detalhes e etapas fornecidos abaixo explicam como podemos recuperar detalhes do campo de assinatura de determinadas páginas de documentos PDF usando código PHP.
protected $pdfApi;
// Obtenha a chave do aplicativo e o SID do aplicativo em https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// objeto de configuração
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// criar instância PdfApi
$this->pdfApi = new PdfApi(null, $this->config);
// nome do documento PDF de entrada
$name = 'BlankWithSignature.pdf';
// carregue o arquivo para o armazenamento em nuvem
$this->uploadFile($name);
// número de página no documento
$pageNumber = 1;
// chamar método API para recuperar campos de assinatura do documento
$response = $this->pdfApi->getPageSignatureFields($name, $pageNumber, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
O código fornecido mostra como as informações de determinados campos de assinatura dentro do arquivo PDF podem ser recuperadas.
protected $pdfApi;
// Obtenha a chave do aplicativo e o SID do aplicativo em https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// objeto de configuração
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// criar instância PdfApi
$this->pdfApi = new PdfApi(null, $this->config);
// nome do documento PDF de entrada
$name = 'BlankWithSignature.pdf';
// carregar PDF para armazenamento em nuvem
$this->uploadFile($name);
// campo de assinatura para recuperar informações
$fieldName = 'Signature1';
// chamar API para recuperar detalhes do campo de assinatura
$response = $this->pdfApi->getSignatureField($name, $fieldName, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
Adicionar campos de assinatura usando PHP
O Aspose.PDF Cloud SDK para PHP também oferece os recursos para adicionar os campos de assinatura ao documento PDF. O snippet de código fornecido abaixo permite que você adicione o campo de assinatura ao arquivo PDF.

protected $pdfApi;
// Obtenha a chave do aplicativo e o SID do aplicativo em https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// objeto de configuração
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// criar instância PdfApi
$this->pdfApi = new PdfApi(null, $this->config);
// nome do documento PDF de entrada
$name = 'BlankWithSignature.pdf';
// carregar arquivo para armazenamento em nuvem
$this->uploadFile($name);
$signatureFileName = '33226.p12';
$this->uploadFile($signatureFileName);
$folder = $this->tempFolder;
$signature = new Aspose\PDF\Model\Signature();
$signature->setAuthority('Nayyer Shahbaz');
$signature->setContact('nayyer.shahbaz@aspose.com');
$signature->setDate('08/01/2012 12:15:00.000 PM');
$signature->setFormFieldName('Signature1');
$signature->setLocation('Australia');
$signature->setPassword('sIikZSmz');
$signature->setRectangle(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 0, 'ury' => 0]));
$signature->setSignaturePath($folder . '/' . $signatureFileName);
$signature->setSignatureType(Aspose\PDF\Model\SignatureType::PKCS7);
$signature->setVisible(true);
$signature->setShowProperties(false);
$field = new Aspose\PDF\Model\SignatureField();
$field->setPartialName('sign1');
// índice de página onde o campo de assinatura precisa ser adicionado
$field->setPageIndex(1);
$field->setSignature($signature);
// especifique a região retangular para o campo Assinatura
$field->setRect(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 160, 'ury' => 140]));
// chame a API para adicionar o campo de assinatura
$response = $this->pdfApi->postSignatureField($name, $field, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
Conclusão
Neste blog, discutimos os conceitos de trabalho com assinaturas digitais em documentos PDF. Aprendemos sobre como recuperar as informações relacionadas aos campos de assinatura existentes, bem como como adicionar novos campos de assinatura no documento. Observe que o Aspose.PDF Cloud SDK para PHP é de código aberto e o código-fonte completo pode ser baixado do repositório GitHub.
Tente usar nossas APIs e, caso encontre algum problema, sinta-se à vontade para entrar em contato conosco através dos [fóruns de suporte ao cliente] gratuitos 12.