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é | Type | Modifiable | Requis | Par défaut | Exemples de valeurs |
---|---|---|---|---|---|
Propriété | Type | Modifiable | Requis | Par défaut | Exemples de valeurs |
statut | chaîne de caractères | Oui | Non | ÉBAUCHE | ÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ |
ComplétionAuto | booléen | Oui | Non | vrai | vrai / faux |
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 d'extraction d'ancres de texte API REST |
langue | chaîne de caractères | Oui | Oui | en | en / fr / de ... |
documents | |||||
nom | chaîne de caractères | Oui | Non | s.o. | Exemple de contrat |
approbations | |||||
rôle | chaîne de caractères | Oui | Non | s.o. | client |
champs | |||||
type | chaîne de caractères | Oui | Oui | s.o. | SIGNATURE / ENTRÉE |
extrait | booléen | Oui | Non | faux | vrai / faux |
sous-type | chaîne de caractères | Oui | Oui | s.o. | NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE |
liaison | chaîne de caractères | Oui | Non | nul | nul / {approval.signed} / {signer.title} / {signer.name} / {signer.company} |
gauche | entier | Oui | Non | 0 | 0 / 10 / 20 ... |
haut | entier | Oui | Non | 0 | 0 / 10 / 20 ... |
extractAnchor | |||||
texte | chaîne de caractères | Oui | Oui | s.o. | Signature du client |
PointAncrage | chaîne de caractères | Oui | Oui | s.o. | HAUT-GAUCHE / HAUT-DROIT / BAS-GAUCHE / BAS-DROIT |
index | entier | Oui | Non | 0 | 0 / 1 / 2 ... |
largeur | entier | Oui | Non | 200 | 150 |
characterIndex | entier | Oui | Non | 0 | 0 |
hauteur | entier | Oui | Non | 50 | 40 |
décalageGauche | entier | Oui | Non | 0 | 40 |
DécalageDroite | entier | Oui | Non | 0 | -10 |
rôles | |||||
id | chaîne de caractères | Oui | Non | s.o. | client |
index | entier | Oui | Non | 0 | 1 / 2 / 3 ... |
nom | chaîne de caractères | Oui | Non | s.o. | client |
type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR |
signataires | |||||
courriel | chaîne de caractères | Oui | Oui | s.o. | [email protected] |
Prénom | chaîne de caractères | Oui | Oui | s.o. | John |
Nom de famille | chaîne de caractères | Oui | Oui | s.o. | Smith |
id | chaîne de caractères | Oui | Non | s.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.