Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans ce guide se trouve ici.

Les ancres de texte vous permettent de positionner un champ ou une signature en fonction du texte de votre document.

Paramètres d’ancre de texte

Le tableau suivant fournit une brève description de chaque paramètre qui peut être transmis lors de la création de vos ancres de texte. Notez ce qui suit :

  • Les ancres de texte sont sensibles à la casse. Ainsi, lorsque vous utilisez une ancre de texte, la recherche est effectuée en tenant compte de la casse.

  • Si un paramètre n’est pas spécifié, la valeur par défaut ci-dessous sera utilisée.

Paramètre Description Requis Valeur par défaut

Texte d’ancre

La chaîne exacte qui sera recherchée dans votre document.

Oui

Non applicable

Point d’ancre

Le coin du caractère spécifié à utiliser comme base pour le calcul de la position. Valeurs disponibles : TOPLEFT, TOPRIGHT, BOTTOMLEFT et BOTTOMRIGHT.

Non

SUPÉRIEUR GAUCHE

Index

L’occurrence de la chaîne de caractères. Par exemple, une valeur de 1 permet d’ignorer la première occurrence et d’utiliser la deuxième pour calculer la position.

Non

0

Index des caractères

L’index du caractère dans le texte de l’ancre qui sera utilisé pour calculer la position.

Non

0

Décalage gauche

Le décalage appliqué à la coordonnée x finale.

Non

0

Décalage supérieur

Le décalage appliqué à la coordonnée y finale.

Non

0

Hauteur

La hauteur du champ ou de la signature.

Oui

Non applicable

Largeur

La largeur du champ ou de la signature.

Oui

Non applicable

Meilleures pratiques pour l’utilisation des balises de texte

Si vous rencontrez des problèmes pour placer vos ancres de texte à leur emplacement correct, essayez d’utiliser l’attribut Décalage.

Ajout d'ancres de texte

Dans cet exemple, des ancres de texte sont utilisées pour ajouter une signature, une date de signature et un nom de signataire pour chaque signataire.

Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.

 .withDocument(newDocumentWithName("Sample Contract")   .fromFile("PATH_TO_YOUR_FILE")   .enableExtraction()   .withSignature(signatureFor("[email protected]")   .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Signature of the Client")   .atPosition(TextAnchorPosition.TOPLEFT)   .withSize(150, 40)   .withOffset(0, -50)   .withCharacter(0)   .withOccurence(0))   .withField(FieldBuilder.signerName()   .withPositionAnchor(TextAnchorBuilder.newTextAnchor("(hereafter referred to as")   .atPosition(TextAnchorPosition.TOPRIGHT)   .withSize(150, 20)   .withOffset(-175, -5)   .withCharacter(0)   .withOccurence(0)))   .withField(FieldBuilder.signatureDate()   .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Date")   .atPosition(TextAnchorPosition.TOPRIGHT)   .withSize(75, 40)   .withCharacter(4)   .withOffset(10, -30)   .withOccurence(0))))   .withSignature(signatureFor("[email protected]")   .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Signature of the Contractor")   .atPosition(TextAnchorPosition.TOPLEFT)   .withSize(150, 40)   .withOffset(0, -50)   .withCharacter(0)   .withOccurence(0))   .withField(FieldBuilder.signerName()   .withPositionAnchor(TextAnchorBuilder.newTextAnchor("(hereafter referred to as")   .atPosition(TextAnchorPosition.TOPLEFT)   .withSize(150, 20)   .withOffset(-175, -5)   .withCharacter(0)   .withOccurence(1)))   .withField(FieldBuilder.signatureDate()   .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Date")   .atPosition(TextAnchorPosition.TOPRIGHT)   .withSize(75, 40)   .withOffset(10, -30)   .withCharacter(4)   .withOccurence(1))))   ) 

Résultats

Une fois votre code exécuté, vos champs de signature apparaîtront dans vos documents, aux emplacements spécifiés par vos ancres de texte.

Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans ce guide se trouve ici.

Les ancres de texte vous permettent de positionner un champ ou une signature en fonction du texte de votre document.

Paramètres d’ancre de texte

Le tableau suivant fournit une brève description de chaque paramètre qui peut être transmis lors de la création de vos ancres de texte. Notez ce qui suit :

  • Les ancres de texte sont sensibles à la casse. Ainsi, lorsque vous utilisez une ancre de texte, la recherche est effectuée en tenant compte de la casse.

  • Si un paramètre n’est pas spécifié, la valeur par défaut ci-dessous sera utilisée.

Paramètre Description Requis Valeur par défaut

Texte d’ancre

La chaîne exacte qui sera recherchée dans votre document.

Oui

Non applicable

Point d’ancre

Le coin du caractère spécifié à utiliser comme base pour le calcul de la position. Valeurs disponibles : TOPLEFT, TOPRIGHT, BOTTOMLEFT et BOTTOMRIGHT.

Non

SUPÉRIEUR GAUCHE

Index

L’occurrence de la chaîne de caractères. Par exemple, une valeur de 1 permet d’ignorer la première occurrence et d’utiliser la deuxième pour calculer la position.

Non

0

Index des caractères

L’index du caractère dans le texte de l’ancre qui sera utilisé pour calculer la position.

Non

0

Décalage gauche

Le décalage appliqué à la coordonnée x finale.

Non

0

Décalage supérieur

Le décalage appliqué à la coordonnée y finale.

Non

0

Hauteur

La hauteur du champ ou de la signature.

Oui

Non applicable

Largeur

La largeur du champ ou de la signature.

Oui

Non applicable

Meilleures pratiques pour l’utilisation d’ancres de texte

Si vous rencontrez des problèmes pour placer vos ancres de texte à leur emplacement correct, essayez d’utiliser l’attribut Décalage.

Ajout d'ancres de texte

Dans cet exemple, des ancres de texte sont utilisées pour ajouter une signature, une date de signature et un nom de signataire pour chaque signataire.

Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.

  .WithDocument(DocumentBuilder.NewDocumentNamed("Sample Contract")   .FromStream(fs, DocumentType.PDF)   .EnableExtraction()   .WithSignature(SignatureBuilder.SignatureFor("[email protected]")   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Signature of the Client")   .AtPosition(TextAnchorPosition.TOPLEFT)   .WithSize(150, 40)   .WithOffset(0, -50)   .WithCharacter(0)   .WithOccurrence(0))   .WithField(FieldBuilder.SignerName()   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("(hereafter referred to as")   .AtPosition(TextAnchorPosition.TOPRIGHT)   .WithSize(150, 20)   .WithOffset(-175, -5)   .WithCharacter(0)   .WithOccurrence(0)))   .WithField(FieldBuilder.SignatureDate()   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Date")   .AtPosition(TextAnchorPosition.TOPRIGHT)   .WithSize(75, 40)   .WithCharacter(4)   .WithOffset(10, -30)   .WithOccurrence(0))))   .WithSignature(SignatureBuilder.SignatureFor("[email protected]")   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Signature of the Contractor")   .AtPosition(TextAnchorPosition.TOPLEFT)   .WithSize(150, 40)   .WithOffset(0, -50)   .WithCharacter(0)   .WithOccurrence(0))   .WithField(FieldBuilder.SignerName()   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("(hereafter referred to as")   .AtPosition(TextAnchorPosition.TOPLEFT)   .WithSize(150, 20)   .WithOffset(-175, -5)   .WithCharacter(0)   .WithOccurrence(1)))   .WithField(FieldBuilder.SignatureDate()   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Date")   .AtPosition(TextAnchorPosition.TOPRIGHT)   .WithSize(75, 40)   .WithOffset(10, -30)   .WithCharacter(4)   .WithOccurrence(1))))   ) 

Résultats

Une fois votre code exécuté, vos champs de signature apparaîtront dans vos documents, aux emplacements spécifiés par vos ancres de texte.

Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans ce guide se trouve ici.

Les ancres de texte vous permettent de positionner un champ ou une signature en fonction du texte de votre document.

Ajout d'ancres de texte

Dans cet exemple, des ancres de texte sont utilisées pour ajouter une signature, une date de signature et un nom de signataire pour chaque signataire.

Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.

Voici le JSON qui permettra de créer votre paquet de documents avec des ancres de texte. Veuillez noter que la convention API de OneSpan Signn'autorise qu'un seul champ de signature (par exemple, type : SIGNATURE) par approbation dans l'objet Approbations. Une deuxième signature pour un rôle donné devrait être ajoutée en tant qu'approbation distincte.

Paramètres d’ancre de texte

Le tableau suivant fournit une brève description de chaque paramètre qui peut être transmis lors de la création de vos ancres de texte. Notez ce qui suit :

  • Les ancres de texte sont sensibles à la casse. Ainsi, lorsque vous utilisez une ancre de texte, la recherche est effectuée en tenant compte de la casse.

  • Si un paramètre n’est pas spécifié, la valeur par défaut ci-dessous sera utilisée.

Paramètre Description Requis Valeur par défaut

Texte d’ancre

La chaîne exacte qui sera recherchée dans votre document.

Oui

Non applicable

Point d’ancre

Le coin du caractère spécifié à utiliser comme base pour le calcul de la position. Valeurs disponibles : TOPLEFT, TOPRIGHT, BOTTOMLEFT et BOTTOMRIGHT.

Non

SUPÉRIEUR GAUCHE

Index

L’occurrence de la chaîne de caractères. Par exemple, une valeur de 1 permet d’ignorer la première occurrence et d’utiliser la deuxième pour calculer la position.

Oui

Non applicable

Index des caractères

L’index du caractère dans le texte de l’ancre qui sera utilisé pour calculer la position.

Oui

A partir de 0

Décalage gauche

Le décalage appliqué à la coordonnée x finale.

Oui

Reportez-vous à l’axe de décalage

Décalage supérieur

Le décalage appliqué à la coordonnée y finale.

Oui

Reportez-vous à l’axe de décalage

Hauteur

La hauteur du champ ou de la signature.

Oui

Non applicable

Largeur

La largeur du champ ou de la signature.

Oui

Non applicable

Meilleures pratiques pour l’utilisation d’ancres de texte

Si vous rencontrez des problèmes pour placer vos ancres de texte à leur emplacement correct, essayez d’utiliser l’attribut Décalage.

Requête HTTP

 POST /api/packages 

En-têtes HTTP

Accept: application/json
Content-Type: multipart/form-dataAuthorization: 
Basic api_key 

Données utiles de la demande

  ------WebKitFormBoundary1bNO60n7FqP5WO4t   Content-Disposition: form-data; name="file"; filename="Sample Contract.pdf"   Content-Type: application/pdf   %PDF-1.5   %µµµµ   1 0 obj   <>>>   endobj....   ------WebKitFormBoundary1bNO60n7FqP5WO4t   {   "roles": [   {   "id": "client",   "type": "SIGNER",   "index": 1,   "signers": [   {   "firstName": "John",   "lastName": "Smith",   "email": "[email protected]"   }   ],   "name": "client"   },   {   "id": "contractor",   "type": "SIGNER",   "index": 2,   "signers": [   {   "firstName": "Bob",   "lastName": "Murray",   "email": "[email protected]"   }   ],   "name": "contractor"   }   ],   "documents": [   {   "approvals": [   {   "fields": [   {   "type": "SIGNATURE",   "extract": false,   "extractAnchor": {   "text": "Signature of the Client",   "index": 0,   "width": 150,   "height": 40,   "anchorPoint": "TOPLEFT",   "characterIndex": 0,   "leftOffset": 0,   "topOffset": -50   },   "left": 0,   "subtype": "FULLNAME",   "top": 0   },   {   "type": "INPUT",   "binding": "{signer.name}",   "extract": false,   "extractAnchor": {   "text": "(hereafter referred to as",   "index": 0,   "width": 150,   "height": 20,   "anchorPoint": "TOPRIGHT",   "characterIndex": 0,   "leftOffset": -175,   "topOffset": -5   },   "left": 0,   "subtype": "LABEL",   "top": 0   },   {   "type": "INPUT",   "binding": "{approval.signed}",   "extract": false,   "extractAnchor": {   "text": "Date",   "index": 0,   "width": 75,   "height": 40,   "anchorPoint": "TOPRIGHT",   "characterIndex": 4,   "leftOffset": 10,   "topOffset": -30   },   "left": 0,   "subtype": "LABEL",   "top": 0   }   ],   "role": "client"   },   {   "fields": [   {   "type": "SIGNATURE",   "extract": false,   "extractAnchor": {   "text": "Signature of the Contractor",   "index": 0,   "width": 150,   "height": 40,   "anchorPoint": "TOPLEFT",   "characterIndex": 0,   "leftOffset": 0,   "topOffset": -50   },   "left": 0,   "subtype": "FULLNAME",   "top": 0   },   {   "type": "INPUT",   "binding": "{signer.name}",   "extract": false,   "extractAnchor": {   "text": "(hereafter referred to as",   "index": 1,   "width": 150,   "height": 20,   "anchorPoint": "TOPRIGHT",   "characterIndex": 0,   "leftOffset": -175,   "topOffset": -5   },   "left": 0,   "subtype": "LABEL",   "top": 0   },   {   "type": "INPUT",   "binding": "{approval.signed}",   "extract": false,   "extractAnchor": {   "text": "Date",   "index": 1,   "width": 75,   "height": 40,   "anchorPoint": "TOPRIGHT",   "characterIndex": 4,   "leftOffset": 10,   "topOffset": -30   },   "left": 0,   "subtype": "LABEL",   "top": 0   }   ],   "role": "contractor"   }   ],   "name": "Sample Contract"   }   ],   "name": "Text Anchor Extraction Example REST API",   "type": "PACKAGE",   "language": "en",   "autoComplete": true,   "status": "DRAFT"   }   ------WebKitFormBoundary1bNO60n7FqP5WO4t-- 

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

  { "id": "9sKhW-h-qS9m6Ho3zRv3n2a-rkI=" }  

Résultats

Une fois votre code exécuté, vos champs de signature apparaîtront dans vos documents, aux emplacements spécifiés par vos ancres de texte.

Tableau des données utiles de la demande

PropriétéTypeModifiableRequisPar défautExemples de valeurs
PropriétéTypeModifiableRequisPar défautExemples de valeurs
statutchaîne de caractèresOuiNonÉBAUCHEÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ
ComplétionAutobooléenOuiNonvraivrai / faux
typechaîne de caractèresOuiNonPACKAGEPAQUET / MODÈLE / MISE EN PAGE
nomchaîne de caractèresOuiOuis.o.Exemple d'extraction d'ancres de texte API REST
languechaîne de caractèresOuiOuienen / fr / de ...
documents
nomchaîne de caractèresOuiNons.o.Exemple de contrat
approbations
rôlechaîne de caractèresOuiNons.o.client
champs
typechaîne de caractèresOuiOuis.o.SIGNATURE / ENTRÉE
extraitbooléenOuiNonfauxvrai / faux
sous-typechaîne de caractèresOuiOuis.o.NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE
liaisonchaîne de caractèresOuiNonnulnul / {approval.signed} / {signer.title} / {signer.name} / {signer.company}
gaucheentierOuiNon00 / 10 / 20 ...
hautentierOuiNon00 / 10 / 20 ...
extractAnchor
textechaîne de caractèresOuiOuis.o.Signature du client
PointAncragechaîne de caractèresOuiOuis.o.HAUT-GAUCHE / HAUT-DROIT / BAS-GAUCHE / BAS-DROIT
indexentierOuiNon00 / 1 / 2 ...
largeurentierOuiNon200150
characterIndexentierOuiNon00
hauteurentierOuiNon5040
décalageGaucheentierOuiNon040
DécalageDroiteentierOuiNon0-10
rôles
idchaîne de caractèresOuiNons.o.client
indexentierOuiNon01 / 2 / 3 ...
nomchaîne de caractèresOuiNons.o.client
typechaîne de caractèresOuiNonSIGNERSIGNATAIRE / EXPÉDITEUR
signataires
courrielchaîne de caractèresOuiOuis.o.[email protected]
Prénomchaîne de caractèresOuiOuis.o.John
Nom de famillechaîne de caractèresOuiOuis.o.Smith
idchaîne de caractèresOuiNons.o.client

Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans ce guide se trouve ici.

Les ancres de texte vous permettent de positionner un champ ou une signature en fonction du texte de votre document.

Paramètres d’ancre de texte

Le tableau suivant fournit une brève description de chaque paramètre qui peut être transmis lors de la création de vos ancres de texte. Notez ce qui suit :

  • Les ancres de texte sont sensibles à la casse. Ainsi, lorsque vous utilisez une ancre de texte, la recherche est effectuée en tenant compte de la casse.

  • Si un paramètre n’est pas spécifié, la valeur par défaut ci-dessous sera utilisée.

Paramètre Description Requis Valeur par défaut

Texte d’ancre

La chaîne exacte qui sera recherchée dans votre document.

Oui

Non applicable

Point d’ancre

Le coin du caractère spécifié à utiliser comme base pour le calcul de la position. Valeurs disponibles : TOPLEFT, TOPRIGHT, BOTTOMLEFT et BOTTOMRIGHT.

Non

SUPÉRIEUR GAUCHE

Index

L’occurrence de la chaîne de caractères. Par exemple, une valeur de 1 permet d’ignorer la première occurrence et d’utiliser la deuxième pour calculer la position.

Non

0

Index des caractères

L’index du caractère dans le texte de l’ancre qui sera utilisé pour calculer la position.

Non

0

Décalage gauche

Le décalage appliqué à la coordonnée x finale.

Non

0

Décalage supérieur

Le décalage appliqué à la coordonnée y finale.

Non

0

Hauteur

La hauteur du champ ou de la signature.

Oui

Non applicable

Largeur

La largeur du champ ou de la signature.

Oui

Non applicable

Meilleures pratiques pour l’utilisation d’ancres de texte

Si vous rencontrez des problèmes pour placer vos ancres de texte à leur emplacement correct, essayez d’utiliser l’attribut Décalage.

Ajout d'ancres de texte

Dans cet exemple, des ancres de texte sont utilisées pour ajouter une signature, une date de signature et un nom de signataire pour chaque signataire.

Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.

  //Prepare Documents Blob   String document1Name = 'Sample_Text_Anchor';   StaticResource sr = [SELECT Id, Body FROM StaticResource WHERE Name = 'test_text_anchor' LIMIT 1];   Map<String,Blob> documentBlobMap = new Map<String,Blob>();   documentBlobMap.put(document1Name, sr.Body);   //Create Document Metadata   ESignLiveAPIObjects.Document document1 = new ESignLiveAPIObjects.Document();   document1.name = document1Name;   document1.id = document1Name;   document1.extract = true; //document level extraction:true   //approval for role1   ESignLiveAPIObjects.Approval approval1 = new ESignLiveAPIObjects.Approval();   approval1.role = roleId1;   approval1.id = 'approval1';   ESignLiveAPIObjects.Field field11 = new ESignLiveAPIObjects.Field();   field11.id = 'signature1';   field11.type = 'SIGNATURE';   field11.subtype = 'FULLNAME';   field11.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(ESignLiveAPIObjects.AnchorPoint.TOPLEFT,0,40,0,0,'Signature of the Client',-50,150);   ESignLiveAPIObjects.Field field12 = new ESignLiveAPIObjects.Field();   field12.id = 'signername1';   field12.type = 'INPUT';   field12.subtype = 'LABEL';   field12.binding = '{signer.name}'; //indicate it's a signer name label   field12.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(ESignLiveAPIObjects.AnchorPoint.TOPRIGHT,0,20,0,-175,'(hereafter referred to as',-5,150);   ESignLiveAPIObjects.Field field13 = new ESignLiveAPIObjects.Field();   field13.id = 'signerdate1';   field13.type = 'INPUT';   field13.subtype = 'LABEL';   field13.binding = '{approval.signed}'; //indicate it's a signing date   field13.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(ESignLiveAPIObjects.AnchorPoint.TOPRIGHT,4,40,0,10,'Date',-30,75);   approval1.fields = new List<ESignLiveAPIObjects.Field>{field11,field12,field13};   //approval for role2   ESignLiveAPIObjects.Approval approval2 = new ESignLiveAPIObjects.Approval();   approval2.role = roleId2;   approval2.id = 'approval2';   ESignLiveAPIObjects.Field field21 = new ESignLiveAPIObjects.Field();   field21.id = 'signature2';   field21.type = 'SIGNATURE';   field21.subtype = 'FULLNAME';   field21.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(ESignLiveAPIObjects.AnchorPoint.TOPLEFT,0,40,0,0,'Signature of the Contractor',-50,150);   ESignLiveAPIObjects.Field field22 = new ESignLiveAPIObjects.Field();   field22.id = 'signername2';   field22.type = 'INPUT';   field22.subtype = 'LABEL';   field22.binding = '{signer.name}'; //indicate it's a signer name label   field22.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(ESignLiveAPIObjects.AnchorPoint.TOPRIGHT,0,20,1,-175,'(hereafter referred to as',-5,150);   ESignLiveAPIObjects.Field field23 = new ESignLiveAPIObjects.Field();   field23.id = 'signerdate2';   field23.type = 'INPUT';   field23.subtype = 'LABEL';   field23.binding = '{approval.signed}'; //indicate it's a signing date   field23.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(ESignLiveAPIObjects.AnchorPoint.TOPRIGHT,4,40,1,10,'Date',-30,75);   approval2.fields = new List<ESignLiveAPIObjects.Field>{field21,field22,field23};   document1.approvals = new List<ESignLiveAPIObjects.Approval>{approval1,approval2};   pkg.documents = new List<ESignLiveAPIObjects.Document>{document1}; //add document 

Résultats

Une fois votre code exécuté, vos champs de signature apparaîtront dans vos documents, aux emplacements spécifiés par vos ancres de texte.