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.

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.

No se aplica

Anchura

La anchura del campo o de la firma.

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

A continuación, se muestra un ejemplo de lo que puede ver una vez que haya ejecutado su código.

Captura

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.

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.

No se aplica

Anchura

La anchura del campo o de la firma.

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

A continuación, se muestra un ejemplo de lo que puede ver una vez que haya ejecutado su código.

Captura

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.

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 se aplica

Índice de caracteres

El índice del carácter del texto del delimitador que se utilizará para calcular la posición.

A partir de 0

Desplazamiento a la izquierda

El desplazamiento aplicado a la coordenada x final.

Consulte el eje de desplazamiento

Desplazamiento superior

El desplazamiento aplicado a la coordenada y final.

Consulte el eje de desplazamiento

Altura

La altura del campo o la firma.

No se aplica

Anchura

La anchura del campo o de la firma.

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

A continuación, se muestra un ejemplo de lo que puede ver una vez que haya ejecutado su código.

Captura

Tabla de carga útil de solicitud

PropiedadTipoEditableObligatorioPredeterminadoValores de ejemplo
PropiedadTipoEditableObligatorioPredeterminadoValores de ejemplo
statusstringNoBORRADORBORRADOR / ENVIADO / COMPLETADO / ARCHIVADO / RECHAZADO / ELEGIR_NO_HACERLO / CADUCÓ
autoCompletebooleanNotruetrue / false
typestringNoPAQUETEPAQUETE / FORMULARIO / FORMATO
namestringn/aEjemplo de extracción de delimitadores de texto de la API REST
languagestringenen / fr / de ...
documents
namestringNon/aEjemplo de contrato
approvals
rolestringNon/aclient
fields
typestringn/aFIRMA / ENTRADA
extractbooleanNofalsetrue / false
subtypestringn/aNOMBRE COMPLETO / INICIALES / CAPTURA / CAPTURA_MÓVIL / ETIQUETA / CAMPO DE TEXTO / ÁREA DE TEXTO / CASILLA DE VERIFICACIÓN / FECHA / RADIO / LISTA
bindingstringNonullnull / {approval.signed} / {signer.title} / {signer.name} / {signer.company}
leftintegerNo00 / 10 / 20 ...
topintegerNo00 / 10 / 20 ...
extractAnchor
textstringn/aFirma del Cliente
anchorPointstringn/aTOPLEFT / TOPRIGHT / BOTTOMLEFT / BOTTOMRIGHT
indexintegerNo00 / 1 / 2 ...
widthintegerNo200150
characterIndexintegerNo00
heightintegerNo5040
leftOffsetintegerNo040
rightOffsetintegerNo0-10
roles
idstringNon/aclient
indexintegerNo01 / 2 / 3 ...
namestringNon/aclient
typestringNoFIRMANTEFIRMANTE / REMITENTE
signers
emailstringn/a[email protected]
firstNamestringn/aErnesto
lastNamestringn/aPuente
idstringNon/aclient

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.

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.

No se aplica

Anchura

La anchura del campo o de la firma.

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

A continuación, se muestra un ejemplo de lo que puede ver una vez que haya ejecutado su código.

Captura