Firmare digitalmente i file PDF

I documenti PDF sono tra i formati di file più ampiamente utilizzati per la condivisione di informazioni. Di solito hanno valore confidenziale e legale, come un contratto. Per garantire l’integrità dei file ed evitare qualsiasi contraffazione, aggiungiamo firme digitali. Ciò garantisce inoltre che un documento non sia stato modificato da qualcuno diverso dal suo autore e verifica che l’autore sia chi ci aspettiamo e non qualcun altro.

Una firma digitale in un PDF è l’equivalente di una firma a inchiostro su un documento cartaceo, ma è molto più sicura. Questa informazione è inserita all’interno di un documento e i lettori più diffusi di PDF possono verificare che il documento non sia stato modificato da una persona sconosciuta. In questo articolo, discuteremo i dettagli su come firmare digitalmente i documenti PDF online in PHP.

Accedi all’API tramite il comando cURL

Le nostre API sono costruite secondo i principi dell’architettura REST, quindi possono essere accessibili anche tramite comandi cURL. Si prega di notare che le nostre API sono accessibili solo a persone autorizzate, quindi prima di accedere alle API, è necessario visitare prima Aspose.Cloud dashboard e se si dispone di un account GitHub o Google, semplicemente registrarsi. Altrimenti, fare clic sul pulsante Crea un nuovo account e fornire le informazioni richieste. Ora accedi alla dashboard utilizzando le credenziali ed espandi la sezione Applicazioni dalla dashboard e scorri verso il basso fino alla sezione Credenziali client per visualizzare i dettagli ID client e Segreto client.

Ora il passo successivo è generare JSON Web Token (JWT) in modo che le API siano accessibili tramite il prompt dei comandi. Lo stesso token JWT viene utilizzato per accedere alle API tramite i comandi 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"

Accesso all’API tramite PHP SDK

Per facilitare i nostri clienti PHP che desiderano elaborare file PDF a livello di programmazione tramite codice PHP, abbiamo sviluppato Aspose.PDF Cloud SDK per PHP, che è un wrapper attorno ad Aspose.PDF Cloud API. Possiamo usare lo stesso SDK per elaborare firme digitali ed eseguire operazioni correlate. L’SDK è disponibile per il download da Composer e GitHub.

Ora discuteremo i passaggi per installare Aspose.PDF Cloud SDK per PHP tramite composer. Sappiamo già che Composer è consigliato per l’uso con l’SDK e per la gestione delle dipendenze del progetto. Quindi, una volta configurato composer sul sistema, prova a usare il seguente comando per installare Aspose.PDF Cloud SDK per PHP.

composer require aspose/pdf-sdk-php

Leggi i campi della firma

L’API consente di leggere le proprietà associate ai campi firma già disponibili nei documenti PDF. Per leggere il campo firma, hai due opzioni.

  • Leggi i campi della firma dalla pagina specifica del documento utilizzando l’API GetPageSignatureFields
  • Leggi il campo della firma del documento in base al nome utilizzando l’API GetSignatureField

Per leggere i campi firma da una pagina specifica del documento, prova a usare il seguente comando cURL. Nota che nel seguente comando, BlankWithSignature.pdf è il file PDF di origine:

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>"

Ora, per leggere le proprietà associate a un determinato campo Firma sul documento, proviamo a utilizzare il seguente comando, in cui forniamo come argomento il nome di un particolare campo Firma.

curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/fields/signature/Signature1" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

I dettagli e i passaggi indicati di seguito spiegano come recuperare i dettagli del campo firma da determinate pagine di documenti PDF utilizzando il codice PHP.

protected $pdfApi;
// Ottieni la chiave dell'app e l'SID dell'app da https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';

// oggetto di configurazione
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);

// creare istanza PdfApi
$this->pdfApi = new PdfApi(null, $this->config);

// nome del documento PDF di input
$name = 'BlankWithSignature.pdf';
// caricare il file sullo storage cloud 
$this->uploadFile($name);

// numero di pagina nel documento
$pageNumber = 1;

// chiama il metodo API per recuperare i campi della firma dal documento
$response = $this->pdfApi->getPageSignatureFields($name, $pageNumber, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());

Il codice fornito mostra come è possibile recuperare le informazioni relative a determinati campi della firma all’interno del file PDF.

protected $pdfApi;
// Ottieni la chiave dell'app e l'SID dell'app da https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';

// oggetto di configurazione
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);

// creare istanza PdfApi
$this->pdfApi = new PdfApi(null, $this->config);

// nome del documento PDF di input
$name = 'BlankWithSignature.pdf';
// carica PDF su cloud storage
$this->uploadFile($name);

// campo firma per recuperare informazioni
$fieldName = 'Signature1';

// chiama l'API per recuperare i dettagli del campo della firma
$response = $this->pdfApi->getSignatureField($name, $fieldName, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());

Aggiungere campi firma utilizzando PHP

Aspose.PDF Cloud SDK per PHP offre anche la possibilità di aggiungere i campi firma al documento PDF. Il frammento di codice riportato di seguito consente di aggiungere il campo firma al file PDF.

Firma il file PDF
 protected $pdfApi;
// Ottieni la chiave dell'app e l'SID dell'app da https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';

// oggetto di configurazione
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);

// creare istanza PdfApi
$this->pdfApi = new PdfApi(null, $this->config);

// nome del documento PDF di input
$name = 'BlankWithSignature.pdf';

// caricare il file sullo storage cloud
$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');
// indice della pagina in cui è necessario aggiungere il campo firma
$field->setPageIndex(1);
$field->setSignature($signature);
// specificare la regione rettangolare per il campo Firma
$field->setRect(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 160, 'ury' => 140]));

// chiama l'API per aggiungere il campo firma
$response = $this->pdfApi->postSignatureField($name, $field, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());

Conclusione

In questo blog abbiamo discusso i concetti di lavoro con le firme digitali nei documenti PDF. Abbiamo imparato come recuperare le informazioni relative ai campi firma esistenti e come aggiungere nuovi campi firma nel documento. Si noti che Aspose.PDF Cloud SDK per PHP è open source e il codice sorgente completo può essere scaricato dal repository GitHub.

Prova a utilizzare le nostre API e, in caso di problemi, non esitare a contattarci tramite i [forum di assistenza clienti] gratuiti 12.