La Document Extraction busca firmas y campos con nombres apropiados en un documento PDF cargado, y para cada uno, crea una firma o campo OneSpan Sign. Las posiciones y tamaños de las firmas y campos del PDF se conservan automáticamente en OneSpan Sign.

Las siguientes limitaciones afectan la extracción de documentos:

  • La extracción de documentos solo está disponible en la llamada a la API que carga el documento. No está disponible en llamadas posteriores.

  • Los campos de botones de radio no se admiten al usar la extracción de documentos.

La información necesaria para crear cada OneSpan Sign firma o campo se toma del nombre de la firma o campo PDF.

Convenciones de nomenclatura

Para crear un campo de firma de OneSpan Sign, el campo PDF debe tener un nombre del formulario [Signer.SigStyle#], en el cual:

  • Signer: De forma predeterminada, los valores utilizados para el rol de la etiqueta de extracción/fieldName son Signer1, Signer2 y así sucesivamente. Si desea incluir al remitente de la transacción como firmante, utilice la etiqueta Owner. Si especifica un ID de rol personalizado para sus destinatarios, usaría ese valor en sus etiquetas.
  • SigStyle#: Un estilo de firma (Capture, Initials o Fullname) combinado con un número entero para obtener un carácter único. Por ejemplo: Capture1 o Fullname09.

Si desea que el campo de firma sea opcional, simplemente utilice el siguiente formato: [Signer.SigStyle#.Optional].

Para crear un campo de OneSpan Sign no vinculado, el campo PDF debe tener un nombre del formulario [Signer.SigStyle#.FieldStyle#], en el cual:

  • Signer.SigStyle# identifica la firma asociada a este campo.
  • FieldStyle# es un estilo de campo (Textfieldo Checkbox) combinado con un número entero para hacerlo único. Por ejemplo: Textfield2 o Checkbox6.

Para crear un campo vinculado de OneSpan Sign , el campo PDF debe tener un nombre del formulario [Signer.SigStyle#.label#.Binding], en el cual:

  • Signer.SigStyle# identifica la firma asociada a este campo.
  • label# es un identificador del campo, que consiste en la palabra label combinada con un número entero para hacerlo único.
  • Binding es un estilo de campo. Los valores posibles son Dateo {approval.signed}, Name o {signer.name}, Titleo {signer.title} y Company o {signer.company}. Ambos miembros de cada par significan el mismo estilo de campo.

Todas las partes de un nombre de campo PDF coinciden utilizando coincidencias que no distinguen entre mayúsculas y minúsculas. Por ejemplo, un campo llamado [Signer1.Fullname1.label1.Date] es el mismo que el campo llamado [Signer1.FULLNAME1.LABEL1.DATE]. Los nombres de los campos son alfanuméricos. No pueden contener caracteres especiales, excepto el guion bajo (_).

Ejemplo

Aquí hay un ejemplo. Supongamos que un paquete tiene dos firmantes cuyos ID personalizados son Signer1 y Owner. Además, supongamos que la extracción está habilitada y que se carga un PDF que tiene campos con los siguientes nombres:

  [Owner.Fullname1]   [Owner.Fullname1.label1.Date]   [Owner.Fullname1.Textfield1]   [Owner.Fullname1.Checkbox1]   [Owner.Fullname2.Optional]  
[Signer1.Capture1][Signer1.Capture1.label1.Name][Signer1.Capture1.label2.Date][Signer1.Capture1.label3.Title][Signer1.Initials1][Signer1.Initials2]

Antes de firmar, Owner debe completar dos campos:

[Owner.Fullname1.Textfield1][Owner.Fullname1.Checkbox1]

Una vez que esos campos estén completos, [Owner.Fullname1] puede firmar Owner y [Owner.Fullname1.label1.Date] se completará automáticamente con la fecha de firma.

Signer1 necesita firmar en tres lugares:

[Signer1.Initials1][Signer1.Initials2][Signer1.Capture1]

Una vez que todos estos estén firmados, se rellenarán los campos restantes:

[Signer1.Capture1.label1.Name][Signer1.Capture1.label2.Date][Signer1.Capture1.label3.Title]

Si ha especificado identificadores personalizados para el remitente y el firmante (por ejemplo, Agent1 y Client1), utilice nombres de campo de formulario similares a los siguientes y el flujo de firma seguirá siendo el mismo:

[Agent1.Fullname1]   [Client1.Initials1]

Otros métodos de extracción

También pueden interesarle nuestros otros tipos de extracción:

Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en este tema se puede encontrar aquí.

La función de extracción de documentos crea automáticamente todas las firmas y campos que existen en un archivo PDF cargado. Las posiciones y los tamaños de las firmas, y los campos en el archivo PDF se conservan automáticamente en OneSpan Sign.

Las siguientes limitaciones afectan la extracción de documentos:

  • La extracción de documentos solo está disponible en la llamada a la API que carga el documento. No está disponible en llamadas posteriores.

  • Los campos de botones de radio no se admiten al usar la extracción de documentos.

Configurar campos de formulario de PDF

En primer lugar, necesitará un PDF con campos de formulario, nombrados de manera que OneSpan Sign pueda reconocerlos. Para obtener más información sobre el formato adecuado de los nombres de los campos de formulario, consulte la descripción general de la función. Los nombres de los campos de formulario se muestran en la imagen siguiente.

Como puede ver, los dos firmantes del documento serán el Firmante1 y el Propietario. Estos serán los ID personalizados utilizados en la sección de código siguiente para que OneSpan Sign sepa qué campos asociar con cada firmante.

Configuración de la extracción de documentos

El siguiente código de ejemplo muestra cómo configurar su transacción para la extracción de documentos. En cada llamada withSigner, verá que los ID personalizados coinciden con los de la imagen del formulario PDF que se muestra arriba.

Dado que el remitente de la transacción se agregará de forma predeterminada a la lista de firmantes con el nombre del rol de Owner, no tiene que especificar explícitamente la información del remitente en la llamada withSigner.

El .withDocument también tiene una llamada a enableExtraction.

De este modo, no es necesario definir los lugares de firma ni quién debe firmar el documento. Esto ya se soluciona con los ID y los nombres de campo de formulario asociados del PDF.

Use el siguiente código para hacerlo:

 DocumentPackage superDuperPackage = PackageBuilder.newPackageNamed("Test Document Extraction")
            	.withSigner(SignerBuilder.newSignerWithEmail("[email protected]" )
                    	.withCustomId("Signer1")
                    	.withFirstName("John")
                    	.withLastName("Smith"))
            	.withDocument(DocumentBuilder.newDocumentWithName("testDocumentExtraction")
                    	.fromFile("path_to_pdf")
                    	.enableExtraction())
            	.build();
		
		PackageId packageId = eslClient.createPackageOneStep(superDuperPackage);
		eslClient.sendPackage(packageId);
 

Resultados

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

formFieldPDFPackageSignerView

Como puede ver, los campos obligatorios están resaltados para que el usuario los complete. El campo Nombre se rellenará automáticamente con OneSpan Sign cuando se complete la firma. Del mismo modo, el propietario ve esto:

formFieldPDFPackagePreparerView

Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en este tema se puede encontrar aquí.

La función de extracción de documentos crea automáticamente todas las firmas y campos que existen en un archivo PDF cargado. Las posiciones y los tamaños de las firmas, y los campos en el archivo PDF se conservan automáticamente en OneSpan Sign.

Las siguientes limitaciones afectan la extracción de documentos:

  • La extracción de documentos solo está disponible en la llamada a la API que carga el documento. No está disponible en llamadas posteriores.

  • Los campos de botones de radio no se admiten al usar la extracción de documentos.

Configurar campos de formulario de PDF

En primer lugar, necesitará un PDF con campos de formulario, nombrados de manera que OneSpan Sign pueda reconocerlos. Para obtener más información sobre el formato adecuado de los nombres de los campos de formulario, consulte la descripción general de la función. Los nombres de los campos de formulario se muestran en la imagen siguiente.

Como puede ver, los dos firmantes del documento serán el Firmante1 y el Propietario. Estos serán los ID personalizados utilizados en la sección de código siguiente para que OneSpan Sign sepa qué campos asociar con cada firmante.

Configuración de la extracción de documentos

El siguiente código de ejemplo muestra cómo configurar su transacción para la extracción de documentos. En cada llamada withSigner, verá que los ID personalizados coinciden con los de la imagen del formulario PDF que se muestra arriba. El .withDocument también tiene una llamada a enableExtraction.

De este modo, no es necesario definir los lugares de firma ni quién debe firmar el documento. Esto ya se soluciona con los ID y los nombres de campo de formulario asociados del PDF.

Use el siguiente código para hacerlo:

            DocumentPackage superDuperPackage = PackageBuilder.NewPackageNamed("Test Document Extraction")
                    .WithSigner(SignerBuilder.NewSignerWithEmail("[email protected]")
                            .WithCustomId("Signer1")
                            .WithFirstName("John")
                            .WithLastName("Smith"))
                    .WithDocument(DocumentBuilder.NewDocumentNamed("testDocumentExtraction")
                            .FromFile("C:\\Users\\liangdu1\\Desktop\\work\\documents\\610\\test_document_extraction.pdf")
                            .EnableExtraction())
                    .Build();

            PackageId packageId = eslClient.CreatePackageOneStep(superDuperPackage);
            eslClient.SendPackage(packageId);

 

Resultados

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

formFieldPDFPackageSignerView

Como puede ver, los campos obligatorios están resaltados para que el usuario los complete. El campo Nombre se rellenará automáticamente con OneSpan Sign cuando se complete la firma. Del mismo modo, el propietario ve esto:

formFieldPDFPackagePreparerView

Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en este tema se puede encontrar aquí.

La función de extracción de documentos crea automáticamente todas las firmas y campos que existen en un archivo PDF cargado. Las posiciones y los tamaños de las firmas, y los campos en el archivo PDF se conservan automáticamente en OneSpan Sign.

Las siguientes limitaciones afectan la extracción de documentos:

  • La extracción de documentos solo está disponible en la llamada a la API que carga el documento. No está disponible en llamadas posteriores.

  • Los campos de botones de radio no se admiten al usar la extracción de documentos.

Configurar campos de formulario de PDF

En primer lugar, necesitará un PDF con campos de formulario, nombrados de manera que OneSpan Sign pueda reconocerlos. Para obtener más información sobre el formato adecuado de los nombres de los campos de formulario, consulte la descripción general de la función. Los nombres de los campos de formulario se muestran en la imagen siguiente.

Como puede ver, los dos firmantes del documento serán el Firmante1 y el Propietario. Estos serán los ID personalizados utilizados en la sección de código siguiente para que OneSpan Sign sepa qué campos asociar con cada firmante. De forma predeterminada, los valores utilizados para el rol de la etiqueta de extracción/fieldName son Signer1, Signer2 y así sucesivamente. Si desea incluir al remitente de la transacción como firmante, utilice la etiqueta Proprietario.

Configuración de la extracción de documentos

Por lo general, construirá su cadena JSON dinámicamente en lugar de tener una cadena estática gigante como esta. Le permite ofrecer una buena representación de la estructura de JSON que necesitará para crear su paquete correctamente.

El JSON que aparece a continuación está formateado para su legibilidad. En cada objeto de roles, verá que los ID personalizados coinciden con los de la imagen del formulario PDF que se muestra arriba. El objeto de los documentos también tiene extract a true.

De este modo, no es necesario definir los lugares de firma ni quién debe firmar el documento. Esto ya se soluciona con los ID y los nombres de campo de formulario asociados del PDF.

Solicitud HTTP

 POST /api/packages 

Encabezados HTTP

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

Carga útil de solicitud

------WebKitFormBoundary1bNO60n7FqP5WO4t
Content-Disposition: form-data; name="file"; filename="testDocumentExtraction.pdf"
Content-Type: application/pdf
%PDF-1.5
%µµµµ
1 0 obj
<>>>
endobj.... 
------WebKitFormBoundary1bNO60n7FqP5WO4t
Content-Disposition: form-data; name="payload"	
{
  "roles": [
    {
      "id": "Signer1",
      "type": "SIGNER",
      "signers": [
        {
          "firstName": "John",
          "lastName": "Smith",
          "email": "[email protected]",
          "id": "Signer1"
        }
      ],
      "name": "Signer1"
    }
  ],
  "documents": [
    {
      "name": "testDocumentExtraction",
      "extract": true
    }
  ],
  "name": "Test Document Extraction",
  "type": "PACKAGE",
  "autoComplete": true,
  "status": "SENT"
}
------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.

formFieldPDFPackageSignerView

Resultados

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

formFieldPDFPackagePreparerView

Tabla de carga útil de solicitud

PropiedadTipoEditableObligatorioPredeterminadoValores de ejemplo
statusstringNoBORRADORBORRADOR / ENVIADO / COMPLETADO / ARCHIVADO / RECHAZADO / ELEGIR_NO_HACERLO / CADUCÓ
autoCompletebooleanNotruetrue / false
typestringNoPAQUETEPAQUETE / FORMULARIO / FORMATO
namestringn/aExtracción de documentos de prueba
documents
namestringNon/atestDocumentExtraction
extractbooleanNofalsetrue / false
roles
idstringNon/aPreparer1
namestringNon/aRemitente
typestringNoFIRMANTEFIRMANTE / REMITENTE
signers
emailstringn/a[email protected]
firstNamestringn/aMichael
lastNamestringn/aWilliams
phonestringNon/a514-555-8888
idstringNon/aPreparer1
delivery
emailbooleanNofalsetrue / false
providerbooleanNofalsetrue / false
downloadbooleanNofalsetrue / false

Para descargar la muestra de código completa, consulte nuestro sitio Code Share. El PDF utilizado en este tema se puede encontrar aquí.

La función de extracción de documentos crea automáticamente todas las firmas y campos que existen en un archivo PDF cargado. Las posiciones y los tamaños de las firmas, y los campos en el archivo PDF se conservan automáticamente en OneSpan Sign.

Las siguientes limitaciones afectan la extracción de documentos:

  • La extracción de documentos solo está disponible en la llamada a la API que carga el documento. No está disponible en llamadas posteriores.

  • Los campos de botones de radio no se admiten al usar la extracción de documentos.

Configurar campos de formulario de PDF

En primer lugar, necesitará un PDF con campos de formulario, nombrados de manera que OneSpan Sign pueda reconocerlos. Para obtener más información sobre el formato adecuado de los nombres de los campos de formulario, consulte la descripción general de la función. Los nombres de los campos de formulario se muestran en la imagen siguiente.

Como puede ver, los dos firmantes del documento serán el Firmante1 y el Propietario. Estos serán los ID personalizados utilizados en la sección de código siguiente para que OneSpan Sign sepa qué campos asociar con cada firmante.

Configuración de la extracción de documentos

El siguiente código de ejemplo muestra cómo configurar su transacción para la extracción de documentos. En cada objeto Role , verá que los atributos de nombre coinciden con los de la imagen del formulario PDF que se muestra arriba.

Dado que el remitente de la transacción se agregará de forma predeterminada a la lista de firmantes con el nombre del rol de Propietario, no tiene que construir explícitamente el objeto del Role del remitente.

En el objeto Document , el atributo extract también se establece en true.

De este modo, no es necesario definir los lugares de firma ni quién debe firmar el documento. Esto ya se soluciona con los ID y los nombres de campo de formulario asociados del PDF.

  ESignLiveSDK sdk = new ESignLiveSDK();
         
        //Create package
        ESignLiveAPIObjects.Package_x pkg = new ESignLiveAPIObjects.Package_x();
        pkg.name = 'Test Document Extraction - ' + Datetime.now().format();
        pkg.status = ESignLiveAPIObjects.PackageStatus.DRAFT;
        
        //Create Roles
        String roleId1 = 'Signer1';
        ESignLiveAPIObjects.Role role1 = new ESignLiveAPIObjects.Role();
        role1.signers = sdk.createRolesSigner('sigenr1_firstname', 'signer1_lastname', '[email protected]', 'CEO', 'ABC Bank');
        role1.id = roleId1;
        role1.name = roleId1;
        
        pkg.roles = new List<ESignLiveAPIObjects.Role>{role1};    //add role

        
        //Prepare Documents Blob
        String document1Name = 'Sample_Document_Extraction';
        StaticResource sr = [SELECT Id, Body FROM StaticResource WHERE Name = 'test_document_extraction' 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;
        
        pkg.documents = new List<ESignLiveAPIObjects.Document>{document1};    //add document
        
    	//Send package One Step
        String packageId = sdk.createPackage(pkg,documentBlobMap);
        System.debug('PackageId: ' + packageId);
 

Resultados

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

formFieldPDFPackageSignerView

Como puede ver, los campos obligatorios están resaltados para que el usuario los complete. El campo Nombre se rellenará automáticamente con OneSpan Sign cuando se complete la firma. Del mismo modo, el propietario ve esto:

formFieldPDFPackagePreparerView