Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.

Trouver vos mises en page dans l'interface utilisateur

Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.

Capture

Création d'une nouvelle mise en page

Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.

Après avoir créé votre transaction, utilisez le bouton OneSpan Sign LayoutService pour créer une mise en page à partir de votre transaction. Il est important de noter que Layout ID est nécessaire pour appliquer des mises en page aux documents. Le code suivant permet d'effectuer ce qui suit :

 String layoutId = eslClient.getLayoutService().createLayout(myPackage);   System.out.println(layoutId); 

Récupération d'une mise en page

Le code suivant permet de récupérer une mise en page. La première étape consiste à récupérer les mises en page de la première page. Dans cet exemple, cinq mises en page sont récupérées, mais vous pouvez définir un nombre quelconque.

 List<DocumentPackage> layouts = eslClient.getLayoutService().getLayouts(Direction.DESCENDING, new PageRequest(i, 5));   while (!layouts.isEmpty()) {   // 

Ensuite, vous allez créer votre objet itérateur. Cela vous permettra d'itérer dans votre liste de mises en page.

Iterator<DocumentPackage> index = layouts.iterator();   while (index.hasNext()) {   

Ensuite, récupérez le nom et l'identifiant de votre mise en page.

DocumentPackage myLayout = index.next();   System.out.println(myLayout.getName() + " " + myLayout.getId());   i++;   }   //    

Utilisez le code suivant pour récupérer les mises en page de chaque page de la transaction, en répétant l'opération pour chaque page :

layouts = eslClient.getLayoutService().getLayouts(Direction.DESCENDING, new PageRequest(i, 5));   } 

Application des mises en page

Utilisez le OneSpan Sign LayoutService pour appliquer des mises en page, soit par Layout ID ou par nom.

eslClient.getLayoutService().applyLayout(packageId, "documentId", "layoutId");   
eslClient.getLayoutService().applyLayoutByName(packageId, "documentId", "layoutName");  

Suppression d'une mise en page

Pour supprimer une mise en page, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit :

 eslClient.getPackageService().deletePackage(new PackageId("layoutId")); 

Résultats

Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.

Trouver vos mises en page dans l'interface utilisateur

Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.

Capture

Création d'une nouvelle mise en page

Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.

Après avoir créé votre transaction, utilisez le bouton OneSpan Sign LayoutService pour créer une mise en page à partir de votre transaction. Il est important de noter que Layout ID est nécessaire pour appliquer des mises en page aux documents. Le code suivant permet d'effectuer ce qui suit :

 string layoutId = eslClient.LayoutService.CreateLayout(packageFromLayout);   Debug.WriteLine(layoutId); 

Récupération d'une mise en page

Le code suivant permet de récupérer une mise en page. La première étape consiste à récupérer les mises en page de la première page. Dans cet exemple, cinq mises en page sont récupérées, mais vous pouvez définir un nombre quelconque.

 List<DocumentPackage> layouts = eslClient.getLayoutService().getLayouts(Direction.DESCENDING, new PageRequest(i, 5));   while (!layouts.isEmpty()) {   // 

Ensuite, vous allez créer votre objet itérateur. Cela vous permettra d'itérer dans votre liste de mises en page.

Iterator<DocumentPackage> index = layouts.iterator();   while (index.hasNext()) {   

Ensuite, récupérez le nom et l'identifiant de votre mise en page.

DocumentPackage myLayout = index.next();   System.out.println(myLayout.getName() + " " + myLayout.getId());   i++;   }   //    

Utilisez le code suivant pour récupérer les mises en page de chaque page de la transaction, en répétant l'opération pour chaque page :

Application des mises en page

Utilisez le OneSpan Sign LayoutService pour appliquer des mises en page, soit par Layout ID ou par nom.

eslClient.getLayoutService().applyLayout(packageId, "documentId", "layoutId");   
eslClient.getLayoutService().applyLayoutByName(packageId, "documentId", "layoutName");  

Suppression d'une mise en page

Pour supprimer une mise en page, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit :

 eslClient.PackageService.DeletePackage(new PackageId("layoutId")); 

Résultats

Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.

Trouver vos mises en page dans l'interface utilisateur

Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.

Capture

Création d'une nouvelle mise en page

Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.

Utilisez le code suivant pour créer une mise en page à partir d'un document :

Requête HTTP

POST /api/layouts

En-têtes HTTP

Accept: application/json   
Content-Type: application/json   
Authorization: Basic api_key 

Données utiles de la demande

 {   "name":"Layout 02",   "type":"LAYOUT",   "id":"packageId",   "visibility":"SENDER",   "documents":[   {   "id":"documentId"   }   ]   } 

Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.

Données utiles de la réponse

 {   "roles": [   {   "id": "bjyxbrypiHw6",   "data": null,   "emailMessage": null,   "attachmentRequirements": [],   "locked": false,   "reassign": false,   "specialTypes": [],   "type": "SENDER",   "index": 0,   "signers": [   {   "group": null,   "language": "en",   "signature": {   "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==",   "textual": null   },   "id": "8ceWLxUo1Gg1",   "delivery": {   "provider": false,   "email": true,   "download": true   },   "knowledgeBasedAuthentication": null,   "auth": {   "scheme": "NONE",   "challenges": []   },   "data": null,   "title": "Silanis",   "external": null,   "updated": "2017-11-14T20:31:34Z",   "phone": "",   "professionalIdentityFields": [],   "userCustomFields": [],   "company": "Silanis",   "email": "[email protected]",   "firstName": "Haris",   "lastName": "Haidary",   "name": "",   "address": null,   "created": "2017-11-14T20:31:34Z",   "specialTypes": []   }   ],   "name": "Owner"   },   {   "id": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c",   "data": null,   "emailMessage": {   "content": ""   },   "attachmentRequirements": [],   "locked": false,   "reassign": false,   "specialTypes": [],   "type": "SIGNER",   "index": 0,   "signers": [],   "name": "Signer1"   },   {   "id": "564fd009-7673-4a5f-9314-5c5b3d5f3869",   "data": null,   "emailMessage": {   "content": ""   },   "attachmentRequirements": [],   "locked": false,   "reassign": false,   "specialTypes": [],   "type": "SIGNER",   "index": 0,   "signers": [],   "name": "Signer2"   }   ],   "status": "DRAFT",   "description": "",   "language": "en",   "id": "rr8lE3YwF-LaCNxSjntn2udM8hc=",   "data": {   "origin": "api"   },   "autocomplete": true,   "documents": [   {   "status": "",   "description": "",   "id": "dfe8ac46006b31f6",   "signedHash": null,   "extractionTypes": [],   "signerVerificationToken": null,   "data": {   "ese_document_texttag_extract_needed": "false"   },   "approvals": [   {   "id": "akmT717La0YP",   "role": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c",   "data": null,   "signed": null,   "accepted": null,   "fields": [   {   "binding": null,   "validation": null,   "id": "AooaSEwkp0oG",   "page": 0,   "data": null,   "subtype": "FULLNAME",   "height": 40,   "extract": false,   "width": 200,   "extractAnchor": null,   "left": 94,   "top": 752,   "type": "SIGNATURE",   "value": "",   "name": "AooaSEwkp0oG"   }   ],   "name": "AooaSEwkp0oG"   },   {   "id": "anR9R3fLlQYE",   "role": "564fd009-7673-4a5f-9314-5c5b3d5f3869",   "data": null,   "signed": null,   "accepted": null,   "fields": [   {   "binding": null,   "validation": null,   "id": "AvqDbyKBeIoX",   "page": 0,   "data": null,   "subtype": "FULLNAME",   "height": 40,   "extract": false,   "width": 200,   "extractAnchor": null,   "left": 94,   "top": 833,   "type": "SIGNATURE",   "value": "",   "name": "AvqDbyKBeIoX"   }   ],   "name": "AvqDbyKBeIoX"   }   ],   "pages": [   {   "id": "",   "height": 1030,   "width": 796,   "left": 0,   "top": 0,   "version": 0,   "index": 0   }   ],   "external": null,   "extract": false,   "fields": [],   "index": 0,   "name": "cleaning_contract",   "size": 197171   }   ],   "sender": {   "status": "ACTIVE",   "language": "en",   "signature": {   "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==",   "textual": null   },   "id": "ZQI8k6faVoM8",   "data": {   "serviceCredentials": "{}",   "showIntro": false   },   "account": null,   "title": null,   "external": null,   "updated": "2016-05-05T19:30:13Z",   "memberships": [],   "phone": "+1 201-555-5555",   "professionalIdentityFields": [],   "userCustomFields": [   {   "id": "policy_number_id",   "data": null,   "translations": [   {   "description": "Car Insurance Policy Number.",   "language": "en",   "id": "",   "data": null,   "name": "Policy Number"   }   ],   "value": "",   "name": ""   }   ],   "locked": null,   "activated": null,   "company": "eSignLive",   "email": "[email protected]",   "firstName": "Haris",   "lastName": "Haidary",   "type": "MANAGER",   "name": "",   "address": null,   "created": "2016-05-05T19:30:13Z",   "specialTypes": [],   "hasDelegates": false   },   "emailMessage": "",   "limits": null,   "notarized": false,   "notaryRoleId": null,   "settings": {   "ceremony": {   "layout": {   "header": {   "feedback": true,   "titleBar": null,   "breadcrumbs": true,   "globalActions": {   "confirm": true,   "download": true,   "hideEvidenceSummary": true,   "saveAsLayout": true   },   "globalNavigation": true,   "sessionBar": true   },   "footer": null,   "brandingBar": {   "logo": {   "link": "",   "src": "branding"   }   },   "iframe": false,   "navigator": true   },   "style": null,   "enforceCaptureSignature": false,   "events": {   "complete": {   "redirect": null,   "dialog": true   }   },   "extractAcroFields": true,   "extractTextTags": true,   "inPerson": false,   "declineButton": true,   "declineReasons": [],   "disableDeclineOther": false,   "disableDownloadForUncompletedPackage": false,   "disableFirstInPersonAffidavit": false,   "disableInPersonAffidavit": false,   "disableOptOutOther": false,   "disableSecondInPersonAffidavit": false,   "documentToolbarOptions": null,   "handOver": null,   "hideCaptureText": false,   "hideLanguageDropdown": false,   "hidePackageOwnerInPerson": false,   "hideWatermark": false,   "maxAuthFailsAllowed": 3,   "optOutButton": true,   "optOutReasons": []   }   },   "signedDocumentDelivery": null,   "trashed": false,   "updated": "2017-11-14T20:31:34Z",   "completed": null,   "consent": null,   "due": null,   "visibility": "SENDER",   "type": "LAYOUT",   "messages": [],   "name": "cleaning_contract",   "created": "2017-11-14T20:31:34Z",   "bulkSendable": true   } 

Il est important de noter que l'option Layout ID est nécessaire pour appliquer des mises en page aux documents.

Récupération d'une mise en page

Vous pouvez également récupérer toutes vos mises en page enregistrées. Le code suivant permet d'effectuer ce qui suit :

Requête HTTP

GET /api/layouts?from={fromPage}&to={toPage}

En-têtes HTTP

Accept: application/json   
Content-Type: application/json   
Authorization: Basic api_key 

Données utiles de la réponse

 {   "results": [   {   "roles": [   {   "id": "564fd009-7673-4a5f-9314-5c5b3d5f3869",   "data": null,   "emailMessage": {   "content": ""   },   "attachmentRequirements": [],   "locked": false,   "reassign": false,   "specialTypes": [],   "type": "SIGNER",   "index": 0,   "signers": [],   "name": "Signer2"   },   {   "id": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c",   "data": null,   "emailMessage": {   "content": ""   },   "attachmentRequirements": [],   "locked": false,   "reassign": false,   "specialTypes": [],   "type": "SIGNER",   "index": 0,   "signers": [],   "name": "Signer1"   },   {   "id": "bjyxbrypiHw6",   "data": null,   "emailMessage": null,   "attachmentRequirements": [],   "locked": false,   "reassign": false,   "specialTypes": [],   "type": "SENDER",   "index": 0,   "signers": [   {   "group": null,   "language": "en",   "signature": {   "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==",   "textual": null   },   "id": "8ceWLxUo1Gg1",   "delivery": {   "provider": false,   "email": true,   "download": true   },   "knowledgeBasedAuthentication": null,   "auth": {   "scheme": "NONE",   "challenges": []   },   "data": null,   "title": "Silanis",   "external": null,   "updated": "2017-11-14T20:31:34Z",   "phone": "",   "professionalIdentityFields": [],   "userCustomFields": [],   "company": "Silanis",   "email": "[email protected]",   "firstName": "Haris",   "lastName": "Haidary",   "name": "",   "address": null,   "created": "2017-11-14T20:31:34Z",   "specialTypes": []   }   ],   "name": "Owner"   }   ],   "status": "DRAFT",   "description": "",   "language": "en",   "id": "rr8lE3YwF-LaCNxSjntn2udM8hc=",   "data": {   "origin": "api"   },   "autocomplete": true,   "documents": [   {   "status": "",   "description": "",   "id": "dfe8ac46006b31f6",   "signedHash": null,   "extractionTypes": [],   "signerVerificationToken": null,   "data": {},   "approvals": [   {   "id": "akmT717La0YP",   "role": "a3bfe56c-da0a-4ff0-bfef-efe55fd28a0c",   "data": null,   "signed": null,   "accepted": null,   "fields": [   {   "binding": null,   "validation": null,   "id": "AooaSEwkp0oG",   "page": 0,   "data": null,   "subtype": "FULLNAME",   "height": 39.99995853281021,   "extract": false,   "width": 199.99979266405106,   "extractAnchor": null,   "left": 94.00000655210017,   "top": 752.0005724167823,   "type": "SIGNATURE",   "value": "",   "name": "AooaSEwkp0oG"   }   ],   "name": ""   },   {   "id": "anR9R3fLlQYE",   "role": "564fd009-7673-4a5f-9314-5c5b3d5f3869",   "data": null,   "signed": null,   "accepted": null,   "fields": [   {   "binding": null,   "validation": null,   "id": "AvqDbyKBeIoX",   "page": 0,   "data": null,   "subtype": "FULLNAME",   "height": 39.99995853281021,   "extract": false,   "width": 199.99979266405106,   "extractAnchor": null,   "left": 94.00000655210017,   "top": 832.999669445753,   "type": "SIGNATURE",   "value": "",   "name": "AvqDbyKBeIoX"   }   ],   "name": ""   }   ],   "pages": [   {   "id": "dfe8ac46006b31f6_0_-1_1.png",   "height": 1030,   "width": 796,   "left": 0,   "top": 0,   "version": 0,   "index": 0   }   ],   "external": null,   "extract": false,   "fields": [],   "index": 0,   "name": "cleaning_contract",   "size": 197171   }   ],   "sender": {   "status": "ACTIVE",   "language": "en",   "signature": {   "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==",   "textual": null   },   "id": "ZQI8k6faVoM8",   "data": {   "serviceCredentials": "{}",   "showIntro": false   },   "account": {   "id": "3vD0Dc9Fh7wQ",   "data": null,   "updated": "2016-05-05T19:30:13Z",   "company": {   "id": "jVWmyg4cyis8",   "data": null,   "address": {   "address1": null,   "address2": null,   "city": null,   "country": null,   "zipcode": null,   "state": null   },   "name": "eSignLive"   },   "licenses": [   {   "status": "ACTIVE",   "paidUntil": "2020-05-05T00:00:00Z",   "plan": {   "group": "",   "description": "E-Sign Hundreds of Documents with Unlimited Signers",   "id": "sandbox",   "features": null,   "price": {   "amount": 0,   "currency": {   "id": "USD",   "data": null,   "name": "US Dollar"   }   },   "original": null,   "cycle": "YEAR",   "contract": "YEAR",   "freeCycles": null,   "quotas": [   {   "cycle": null,   "scope": "ACCOUNT",   "limit": 100,   "target": "SENDER"   },   {   "cycle": null,   "scope": "SENDER",   "limit": 500,   "target": "DOCUMENT"   },   {   "cycle": null,   "scope": "SENDER",   "limit": 500,   "target": "STORAGE"   }   ],   "data": null,   "name": "Sandbox"   },   "transactions": [],   "created": "2016-05-05T19:30:13Z"   }   ],   "logoUrl": "",   "providers": null,   "customFields": [   {   "required": false,   "id": "policy_number_id",   "data": null,   "translations": [   {   "description": "Car Insurance Policy Number.",   "language": "en",   "id": "",   "data": null,   "name": "Policy Number"   }   ],   "value": "123-456-789-0",   "name": ""   }   ],   "created": "2016-05-05T19:30:13Z",   "owner": "ZQI8k6faVoM8",   "name": "Haris Haidary"   },   "title": null,   "external": null,   "updated": "2016-05-05T19:30:13Z",   "memberships": [],   "phone": "+1 201-555-5555",   "professionalIdentityFields": [],   "userCustomFields": [   {   "id": "policy_number_id",   "data": null,   "translations": [   {   "description": "Car Insurance Policy Number.",   "language": "en",   "id": "",   "data": null,   "name": "Policy Number"   }   ],   "value": "",   "name": ""   }   ],   "locked": null,   "activated": null,   "company": "eSignLive",   "email": "[email protected]",   "firstName": "Haris",   "lastName": "Haidary",   "type": "MANAGER",   "name": "",   "address": {   "address1": "",   "address2": "",   "city": "",   "country": "",   "zipcode": "",   "state": ""   },   "created": "2016-05-05T19:30:13Z",   "specialTypes": [],   "hasDelegates": false   },   "emailMessage": "",   "limits": null,   "notarized": false,   "settings": {   "ceremony": {   "layout": {   "header": {   "feedback": true,   "titleBar": null,   "breadcrumbs": true,   "globalActions": {   "confirm": true,   "download": true,   "hideEvidenceSummary": true,   "saveAsLayout": true   },   "globalNavigation": true,   "sessionBar": true   },   "footer": null,   "brandingBar": {   "logo": {   "link": "",   "src": "branding"   }   },   "iframe": false,   "navigator": true   },   "style": null,   "enforceCaptureSignature": false,   "events": {   "complete": {   "redirect": null,   "dialog": true   }   },   "extractAcroFields": true,   "extractTextTags": true,   "inPerson": false,   "declineButton": true,   "declineReasons": [],   "disableDeclineOther": false,   "disableDownloadForUncompletedPackage": false,   "disableFirstInPersonAffidavit": false,   "disableInPersonAffidavit": false,   "disableOptOutOther": false,   "disableSecondInPersonAffidavit": false,   "documentToolbarOptions": null,   "handOver": null,   "hideCaptureText": false,   "hideLanguageDropdown": false,   "hidePackageOwnerInPerson": false,   "hideWatermark": false,   "maxAuthFailsAllowed": 3,   "optOutButton": true,   "optOutReasons": []   }   },   "signedDocumentDelivery": null,   "updated": "2017-11-14T20:31:34Z",   "consent": null,   "due": null,   "visibility": "SENDER",   "type": "LAYOUT",   "messages": [],   "name": "cleaning_contract",   "created": "2017-11-14T20:31:34Z",   "notaryRoleId": null,   "bulkSendable": false   }   ],   "count": 5   } 

De la même manière, pour appliquer une mise en page, vous aurez besoin des éléments suivants packageId, documentId, et layoutId/layoutName pour faire votre demande :

Si vous utilisez LayoutID :

Requête HTTP

POST /api/packages/{packageId}/documents/{documentId}/layout?layoutId={layoutId}

En-têtes HTTP

Accept: application/json   
Content-Type: application/json   
Authorization: Basic api_key 

Si vous utilisez le nom de la mise en page :

Requête HTTP

POST /api/packages/{packageId}/documents/{documentId}/layout?layoutName={layoutName}

En-têtes HTTP

Accept: application/json   
Content-Type: application/json   
Authorization: Basic api_key 

Suppression d'une mise en page

Pour supprimer une mise en page, utilisez le code suivant :

Requête HTTP

DELETE /api/packages/{layoutId}

En-têtes HTTP

Accept: application/json   
Content-Type: application/json   
Authorization: Basic api_key 

Résultats

Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.

Tableau des données utiles de la demande

Propriété Type Modifiable Requis Par défaut Exemples de valeurs
type chaîne de caractères Oui Non PACKAGE PAQUET / MODÈLE / MISE EN PAGE
nom chaîne de caractères Oui Oui s.o. Exemple de mise en page
id chaîne de caractères Oui Non s.o. rr8lE3YwF-LaCNxSjntn2udM8hc=
visibilité chaîne de caractères Oui Non COMPTE COMPTE / EXPÉDITEUR
documents
id chaîne de caractères Oui Non s.o. exemple-contrat

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.

Trouver vos mises en page dans l'interface utilisateur

Lorsque vous modifiez des documents, vous trouverez toutes vos mises en page enregistrées dans la barre d'outils, comme illustré ci-dessous. Notez que les mises en page ne peuvent être appliquées que lorsque les transactions sont au statut Ébauche.

Capture

Création d'une nouvelle mise en page

Dans cet exemple, l'extraction de documents est utilisée pour extraire les champs et les enregistrer sous forme de modèle. Pour obtenir plus d'informations, consultez Extraction de documents.

Après avoir créé votre paquetage, utilisez la fonction encapsulée suivante pour créer votre mise en page à partir d'un paquetage existant.

 public ESignLiveAPIObjects.package_x createLayout(string packageId, string documentId, string layoutName, TestLayout.Visibility visibility) 

Il est important de noter que Layout ID est nécessaire pour appliquer des mises en page aux documents. Le code suivant permet d'effectuer ce qui suit :

  ESignLiveAPIObjects.package_x createLayout = createLayout(pkgId,'Sample_Document_Extraction','Layout Created from Apex SDK', TestLayout.Visibility.ACCOUNT);   String layoutId = createLayout.id; 

Récupération d'une mise en page

Le code suivant permet de récupérer une mise en page.

  //retrieve all layouts   integer totalCount = getLayoutCount();   integer index = 0;   System.debug('Total layout count: ' + totalCount);   while(index < totalCount){   List<ESignLiveAPIObjects.package_x> layouts = getLayouts(index,index+49);   for(ESignLiveAPIObjects.package_x layout: layouts){   System.debug('Layout name: ' + layout.name + ' with id: ' + layout.id);   }   index += 50;   } 

Comme pour la création de mises en page, utilisez les fonctions encapsulées suivantes pour appliquer une mise en page à votre document. Ce code passera dans votre layout ID, target package ID et la cible Document ID.

  public void applyLayout(String packageId, String documentId, String layoutId) 

Suppression d'une mise en page

Pour supprimer une mise en page, utilisez le code suivant :

  //delete layout   ESignLiveSDK sdk = new ESignLiveSDK();   sdk.deletePackage(layoutId); 

Résultats

Après avoir exécuté votre code, vous verrez une liste de toutes vos mises en page sous la barre d'outils. Une fois votre mise en page enregistrée, vous pouvez l'appliquer aux documents suivants.