Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en esta guía puede encontrarse aquí.
Los anclajes de texto le permiten colocar un campo o una firma en función del texto en el documento.
Parámetros de delimitadores de texto
La siguiente tabla proporciona una breve descripción de cada parámetro que se puede pasar al construir los anclajes de texto. Tenga en cuenta lo siguiente:
-
Los anclajes de texto distinguen entre mayúsculas y minúsculas y, por lo tanto, cuando se utiliza el anclaje de texto, la búsqueda se realiza de forma que distinga entre mayúsculas y minúsculas.
-
Si no se especifica un parámetro, se utilizará el valor predeterminado a continuación.
Parámetro | Descripción | Obligatorio | Valor predeterminado |
---|---|---|---|
Texto del delimitador |
La cadena exacta que se buscará en el documento. |
Sí |
No se aplica |
Punto de delimitador |
La esquina del carácter especificado que se utilizará como base para calcular la posición. Valores disponibles: TOPLEFT, TOPRIGHT, BOTTOMLEFT y BOTTOMRIGHT. |
No |
TOPLEFT |
Índice |
La ocurrencia de la cadena. Por ejemplo, un valor de 1 omitirá la primera aparición y usará la segunda instancia para calcular la posición. |
No |
0 |
Índice de caracteres |
El índice del carácter del texto del delimitador que se utilizará para calcular la posición. |
No |
0 |
Desplazamiento a la izquierda |
El desplazamiento aplicado a la coordenada x final. |
No |
0 |
Desplazamiento superior |
El desplazamiento aplicado a la coordenada y final. |
No |
0 |
Altura |
La altura del campo o la firma. |
Sí |
No se aplica |
Anchura |
La anchura del campo o de la firma. |
Sí |
No se aplica |
Prácticas recomendadas para el uso de etiquetas de texto
Si tiene problemas para colocar los anclajes de texto en su ubicación correcta, intente usar el atributo offset.
Agregar anclajes de texto
En este ejemplo, los anclajes de texto se utilizan para agregar una firma, fecha de firma y nombre de firmante para cada firmante.
Si necesita una comparación con el procedimiento básico de creación de objetos o si es la primera vez que crea una transacción, consulte Crear y enviar una transacción.
.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)))) )
Resultados
Una vez que haya ejecutado su código, los campos de firma aparecerán en sus documentos, en las ubicaciones especificadas por los anclajes de texto.
Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en esta guía puede encontrarse aquí.
Los anclajes de texto le permiten colocar un campo o una firma en función del texto en el documento.
Parámetros de delimitadores de texto
La siguiente tabla proporciona una breve descripción de cada parámetro que se puede pasar al construir los anclajes de texto. Tenga en cuenta lo siguiente:
-
Los anclajes de texto distinguen entre mayúsculas y minúsculas y, por lo tanto, cuando se utiliza el anclaje de texto, la búsqueda se realiza de forma que distinga entre mayúsculas y minúsculas.
-
Si no se especifica un parámetro, se utilizará el valor predeterminado a continuación.
Parámetro | Descripción | Obligatorio | Valor predeterminado |
---|---|---|---|
Texto del delimitador |
La cadena exacta que se buscará en el documento. |
Sí |
No se aplica |
Punto de delimitador |
La esquina del carácter especificado que se utilizará como base para calcular la posición. Valores disponibles: TOPLEFT, TOPRIGHT, BOTTOMLEFT y BOTTOMRIGHT. |
No |
TOPLEFT |
Índice |
La ocurrencia de la cadena. Por ejemplo, un valor de 1 omitirá la primera aparición y usará la segunda instancia para calcular la posición. |
No |
0 |
Índice de caracteres |
El índice del carácter del texto del delimitador que se utilizará para calcular la posición. |
No |
0 |
Desplazamiento a la izquierda |
El desplazamiento aplicado a la coordenada x final. |
No |
0 |
Desplazamiento superior |
El desplazamiento aplicado a la coordenada y final. |
No |
0 |
Altura |
La altura del campo o la firma. |
Sí |
No se aplica |
Anchura |
La anchura del campo o de la firma. |
Sí |
No se aplica |
Prácticas recomendadas para el uso de anclajes de texto
Si tiene problemas para colocar los anclajes de texto en su ubicación correcta, intente usar el atributo offset.
Agregar anclajes de texto
En este ejemplo, los anclajes de texto se utilizan para agregar una firma, fecha de firma y nombre de firmante para cada firmante.
Si necesita una comparación con el procedimiento básico de creación de objetos o si es la primera vez que crea una transacción, consulte Crear y enviar una transacción.
.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)))) )
Resultados
Una vez que haya ejecutado su código, los campos de firma aparecerán en sus documentos, en las ubicaciones especificadas por los anclajes de texto.
Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en esta guía puede encontrarse aquí.
Los anclajes de texto le permiten colocar un campo o una firma en función del texto en el documento.
Agregar anclajes de texto
En este ejemplo, los anclajes de texto se utilizan para agregar una firma, fecha de firma y nombre de firmante para cada firmante.
Si necesita una comparación con el procedimiento básico de creación de objetos o si es la primera vez que crea una transacción, consulte Crear y enviar una transacción.
A continuación, se muestra el JSON que creará su paquete de documentos con anclajes de texto. Tenga en cuenta que la convención de API de OneSpan Sign solo permite un campo de firma (por ejemplo, escriba: FIRMA) para aprobación en el objeto de aprobaciones. Una segunda firma para un rol dado tendría que agregarse como una aprobación separada.
Parámetros de delimitadores de texto
La siguiente tabla proporciona una breve descripción de cada parámetro que se puede pasar al construir los anclajes de texto. Tenga en cuenta lo siguiente:
-
Los anclajes de texto distinguen entre mayúsculas y minúsculas y, por lo tanto, cuando se utiliza el anclaje de texto, la búsqueda se realiza de forma que distinga entre mayúsculas y minúsculas.
-
Si no se especifica un parámetro, se utilizará el valor predeterminado a continuación.
Parámetro | Descripción | Obligatorio | Valor predeterminado |
---|---|---|---|
Texto del delimitador |
La cadena exacta que se buscará en el documento. |
Sí |
No se aplica |
Punto de delimitador |
La esquina del carácter especificado que se utilizará como base para calcular la posición. Valores disponibles: TOPLEFT, TOPRIGHT, BOTTOMLEFT y BOTTOMRIGHT. |
No |
TOPLEFT |
Índice |
La ocurrencia de la cadena. Por ejemplo, un valor de 1 omitirá la primera aparición y usará la segunda instancia para calcular la posición. |
Sí |
No se aplica |
Índice de caracteres |
El índice del carácter del texto del delimitador que se utilizará para calcular la posición. |
Sí |
A partir de 0 |
Desplazamiento a la izquierda |
El desplazamiento aplicado a la coordenada x final. |
Sí |
Consulte el eje de desplazamiento |
Desplazamiento superior |
El desplazamiento aplicado a la coordenada y final. |
Sí |
Consulte el eje de desplazamiento |
Altura |
La altura del campo o la firma. |
Sí |
No se aplica |
Anchura |
La anchura del campo o de la firma. |
Sí |
No se aplica |
Prácticas recomendadas para el uso de anclajes de texto
Si tiene problemas para colocar los anclajes de texto en su ubicación correcta, intente usar el atributo offset.
Solicitud HTTP
POST /api/packages
Encabezados HTTP
Accept: application/json Content-Type: multipart/form-dataAuthorization: Basic api_key
Carga útil de solicitud
------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--
Para obtener una descripción completa de cada campo, consulte la tabla Carga útil de solicitud siguiente.
Carga útil de respuesta
{ "id": "9sKhW-h-qS9m6Ho3zRv3n2a-rkI=" }
Resultados
Una vez que haya ejecutado su código, los campos de firma aparecerán en sus documentos, en las ubicaciones especificadas por los anclajes de texto.
Tabla de carga útil de solicitud
Propiedad | Tipo | Editable | Obligatorio | Predeterminado | Valores de ejemplo |
---|---|---|---|---|---|
Propiedad | Tipo | Editable | Obligatorio | Predeterminado | Valores de ejemplo |
status | string | Sí | No | BORRADOR | BORRADOR / ENVIADO / COMPLETADO / ARCHIVADO / RECHAZADO / ELEGIR NO HACERLO / CADUCÓ |
autoComplete | boolean | Sí | No | true | true / false |
type | string | Sí | No | PAQUETE | PAQUETE / FORMULARIO / FORMATO |
name | string | Sí | Sí | n/a | Ejemplo de extracción de delimitadores de texto de la API REST |
language | string | Sí | Sí | en | en / fr / de ... |
documents | |||||
name | string | Sí | No | n/a | Ejemplo de contrato |
approvals | |||||
role | string | Sí | No | n/a | client |
fields | |||||
type | string | Sí | Sí | n/a | FIRMA / ENTRADA |
extract | boolean | Sí | No | false | true / false |
subtype | string | Sí | Sí | n/a | NOMBRE COMPLETO / INICIALES / CAPTURA / CAPTURA_MÓVIL / ETIQUETA / CAMPO DE TEXTO / ÁREA DE TEXTO / CASILLA DE VERIFICACIÓN / FECHA / RADIO / LISTA |
binding | string | Sí | No | null | null / {approval.signed} / {signer.title} / {signer.name} / {signer.company} |
left | integer | Sí | No | 0 | 0 / 10 / 20 ... |
top | integer | Sí | No | 0 | 0 / 10 / 20 ... |
extractAnchor | |||||
text | string | Sí | Sí | n/a | Firma del Cliente |
anchorPoint | string | Sí | Sí | n/a | TOPLEFT / TOPRIGHT / BOTTOMLEFT / BOTTOMRIGHT |
index | integer | Sí | No | 0 | 0 / 1 / 2 ... |
width | integer | Sí | No | 200 | 150 |
characterIndex | integer | Sí | No | 0 | 0 |
height | integer | Sí | No | 50 | 40 |
leftOffset | integer | Sí | No | 0 | 40 |
rightOffset | integer | Sí | No | 0 | -10 |
roles | |||||
id | string | Sí | No | n/a | client |
index | integer | Sí | No | 0 | 1 / 2 / 3 ... |
name | string | Sí | No | n/a | client |
type | string | Sí | No | FIRMANTE | FIRMANTE / REMITENTE |
signers | |||||
string | Sí | Sí | n/a | [email protected] | |
firstName | string | Sí | Sí | n/a | Ernesto |
lastName | string | Sí | Sí | n/a | Puente |
id | string | Sí | No | n/a | client |
Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en esta guía puede encontrarse aquí.
Los anclajes de texto le permiten colocar un campo o una firma en función del texto en el documento.
Parámetros de delimitadores de texto
La siguiente tabla proporciona una breve descripción de cada parámetro que se puede pasar al construir los anclajes de texto. Tenga en cuenta lo siguiente:
-
Los anclajes de texto distinguen entre mayúsculas y minúsculas y, por lo tanto, cuando se utiliza el anclaje de texto, la búsqueda se realiza de forma que distinga entre mayúsculas y minúsculas.
-
Si no se especifica un parámetro, se utilizará el valor predeterminado a continuación.
Parámetro | Descripción | Obligatorio | Valor predeterminado |
---|---|---|---|
Texto del delimitador |
La cadena exacta que se buscará en el documento. |
Sí |
No se aplica |
Punto de delimitador |
La esquina del carácter especificado que se utilizará como base para calcular la posición. Valores disponibles: TOPLEFT, TOPRIGHT, BOTTOMLEFT y BOTTOMRIGHT. |
No |
TOPLEFT |
Índice |
La ocurrencia de la cadena. Por ejemplo, un valor de 1 omitirá la primera aparición y usará la segunda instancia para calcular la posición. |
No |
0 |
Índice de caracteres |
El índice del carácter del texto del delimitador que se utilizará para calcular la posición. |
No |
0 |
Desplazamiento a la izquierda |
El desplazamiento aplicado a la coordenada x final. |
No |
0 |
Desplazamiento superior |
El desplazamiento aplicado a la coordenada y final. |
No |
0 |
Altura |
La altura del campo o la firma. |
Sí |
No se aplica |
Anchura |
La anchura del campo o de la firma. |
Sí |
No se aplica |
Prácticas recomendadas para el uso de anclajes de texto
Si tiene problemas para colocar los anclajes de texto en su ubicación correcta, intente usar el atributo offset.
Agregar anclajes de texto
En este ejemplo, los anclajes de texto se utilizan para agregar una firma, fecha de firma y nombre de firmante para cada firmante.
Si necesita una comparación con el procedimiento básico de creación de objetos o si es la primera vez que crea una transacción, consulte Crear y enviar una transacción.
//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
Resultados
Una vez que haya ejecutado su código, los campos de firma aparecerán en sus documentos, en las ubicaciones especificadas por los anclajes de texto.