- 28 Feb 2025
- 20 Minutes à lire
- Impression
- SombreLumière
- PDF
Utilisation des ancres de texte
- Mis à jour le 28 Feb 2025
- 20 Minutes à lire
- Impression
- SombreLumière
- PDF
SDK Java .NET SDK API REST APEX SDK
SDK Java
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("john.smith@example.com")
.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("bob.murray@example.com")
.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.
.NET SDK
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("john.smith@example.com")
.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("bob.murray@example.com")
.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.
API REST
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": "john.smith@example.com"
}
],
"name": "client"
},
{
"id": "contractor",
"type": "SIGNER",
"index": 2,
"signers": [
{
"firstName": "Bob",
"lastName": "Murray",
"email": "bob.murray@example.com"
}
],
"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 |
---|---|---|---|---|---|
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. | john.smith@exemple.com |
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 |
APEX SDK
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';
// Fetch the StaticResource by its name (assumes the file is stored as a static resource in Salesforce)
StaticResource sr = [SELECT Id, Body FROM StaticResource WHERE Name = 'test_text_anchor' LIMIT 1];
// Create a map for the document blob
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; // Enable document-level extraction
// Approval for Role1 (client)
ESignLiveAPIObjects.Approval approval1 = new ESignLiveAPIObjects.Approval();
approval1.role = roleId1;
approval1.id = 'approval1';
// Create Fields for the Client Role
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}'; // Signer's 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}'; // Signing date field
field13.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(
ESignLiveAPIObjects.AnchorPoint.TOPRIGHT, 4, 40, 0, 10, 'Date', -30, 75
);
// Add fields to approval1
approval1.fields = new List<ESignLiveAPIObjects.Field>{field11, field12, field13};
// Approval for Role2 (contractor)
ESignLiveAPIObjects.Approval approval2 = new ESignLiveAPIObjects.Approval();
approval2.role = roleId2;
approval2.id = 'approval2';
// Create Fields for the Contractor Role
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}'; // Signer's 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}'; // Signing date field
field23.extractAnchor = new ESignLiveAPIObjects.ExtractAnchor(
ESignLiveAPIObjects.AnchorPoint.TOPRIGHT, 4, 40, 1, 10, 'Date', -30, 75
);
// Add fields to approval2
approval2.fields = new List<ESignLiveAPIObjects.Field>{field21, field22, field23};
// Add approvals to document1
document1.approvals = new List<ESignLiveAPIObjects.Approval>{approval1, approval2};
// Create the package (pkg) and add the document
pkg.documents = new List<ESignLiveAPIObjects.Document>{document1};
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.