MENU

Découvrez notre tout nouveau portail de documentation ! En savoir plus...

    Gestion des mises en page de documents
    • 27 Feb 2025
    • 31 Minutes à lire
    • Sombre
    • PDF

    Gestion des mises en page de documents

    • Sombre
    • PDF

    Résumé de l’article

    SDK Java.NET SDKAPI RESTAPEX SDK

    SDK Java

    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);
    Java

    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()) {
        //
    }
    Java

    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()) {
    Java

    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++;
    }
    Java

    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));   }
    Java

    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");
    Java

    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"));
    Java

    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.

    .NET SDK

    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);
    C#

    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()) {
    //
    C#

    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())
    {
    C#

    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++;   }   //
    C#

    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");
    C#

    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"));
    Plain text

    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.

    API REST

    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
    HTTP

    En-têtes HTTP

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

    Données utiles de la demande

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

    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": "haris.haidary@gmail.com",
              "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": "haris.haidary@gmail.com",
        "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
    }
    JSON

    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}
    HTTP

    En-têtes HTTP

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

    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": "haris.haidary@gmail.com",
                  "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": "haris.haidary@gmail.com",
            "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
    }
    JSON

    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}
    HTTP

    En-têtes HTTP

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

    Si vous utilisez le nom de la mise en page :

    Requête HTTP

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

    En-têtes HTTP

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

    Suppression d'une mise en page

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

    Requête HTTP

    DELETE /api/packages/{layoutId}
    HTTP

    En-têtes HTTP

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

    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

    APEX SDK

    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
    )
    Plain text

    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;
    Plain text

    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;
    }
    Plain text

    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)
    Plain text

    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);
    Plain text

    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.


    Cet article vous a-t-il été utile ?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.
    ESC

    Ozzy, facilitant la découverte de connaissances grâce à l’intelligence conversationnelle