Manual de ecoSignatureJWS Desktop

Introducción #

Este documento tiene el objetivo de describir técnicamente la configuración de la solución ecoSignature Java Web Start (JWS de ahora en adelante) Desktop (en escritorio) desarrollada por edatalia.

El documento muestra:

  • los requerimientos mínimos de funcionamiento.
  • las características del producto.
  • la instalación de la solución.
  • la configuración general de la solución, a través de un fichero de texto de configuración de parámetros denominado ecoSignature.ini, donde se describen todas las posibles opciones de configuración, englobadas en secciones, que permiten adecuar el comportamiento de la solución.

Requerimientos #

Los requisitos mínimos del funcionamiento de ecoSignature JWS Desktop son:

  • puesto cliente: PC de eFirma
    • Dispositivos hardware para captura biométrica:
      • Wacom STU (430, 520, 530, 540).
      • Wacom DTU (1031, 1141 (solo Windows)).
      • Pencil-Stylus (solo Windows).
      • Signotec (Delta y Gamma) (solo Windows).
    • Puesto PC:
      • Sistema operativo Windows 7 o superior.
      • Sistema operativo Linux Ubuntu 14.04 32 ó 64 bits o superior. (Recomendable 16.04+ 64 bits).
    • Versión de Java:
      • Oracle 1.8+.
      • Azul Zulú 8+.
    • Instalación de plugin IcedTea Web (para versión de Java Azul Zulú).
    • Recomendamos la instalación de drivers Wacom o Signotec.

Para el correcto funcionamiento de la solución, para tabletas STU, DTU y Signotec es necesario instalar los correspondientes drivers (bajo Windows, en Linux seguir el manual de instalación correspondiente en el Apartado 1.2. SO Linux).

Características de producto #

La solución ecoSignature JWS Desktop cuenta con una amplia colección de opciones de configuración que le aportan gran flexibilidad y le permiten ajustarse a cualquier flujo de trabajo:

  • Permite el firmado en PC local de cualquier documento pdf.
  • Más de 100 parámetros configurables para realizar el firmado.
  • Necesidad de licenciamiento para su uso.
  • Posibilidad de trabajar con el documento pdf en binario o en base 64.
  • Visualización del documento a firmar y del documento firmado.
  • Introducción de n firmas en un documento a través de interface (Datasheet).
  • Firmado de documentos de gran tamaño (el caso de uso permite hasta un tamaño de 100 Mb (en binario). El límite de tamaño del documento pdf a firmar es configuración de la máquina virtual de java (JVM).

En base 64 la limitación la impone la tecnología JNLP (Java Network Launching Protocol) y es de 1Mb para el fichero generado. (Tamaño del pdf binario aproximadamente de tamaño máximo de 750Kb).

  • Firmado en diferentes dispositivos de captura biométrica como tabletas Wacom o Pencil-Stylus sobre dispositivos Windows.

Se permite firmar con el ratón. De esta forma se puede probar la funcionalidad sin necesidad de tabletas específicas.

  • Se permiten dos tipos de firmado:
    • Firma digital manuscrita.
    • Firma digital convencional, mediante certificado electrónico, sin captura de rúbrica.

Por defecto, la firma se realiza mediante un certificado embebido en el propio JWS. En una instalación real se recomendaría introducir un certificado de la Entidad.

  • El documento es firmado electrónicamente, en ambos tipos de firmado, mediante certificado (en software o hardware). Sigue el estándar PAdES, desde básico hasta firma longeva PAdES- XL.
    • Sellado de tiempo en el momento de la firma.
    • Validación del estado de revocación del certificado en el momento de la firma.
  • Produce firmas digitales con algoritmo de resumen (hash) SHA2-512.
  • Configuración de certificados de firma y cifrado de datos (archivo estático o en base 64).
  • Posibilidad de firmado con un certificado local (instalado en CryptoAPI en Windows).
  • Posibilidad de certificar la firma.
  • Posibilidad de firmar documentos pdf con contraseña.
  • Personalización de la ventana de captura de firma de ecoSignature JWS en el PC.
  • Segunda ventana de captura de firma opcional para modo multimonitor.
  • Configuración y personalización de plantillas (denominadas EBP’s), a nivel de PC y de tableta, para presentación de datos al usuario antes del firmado.

Comunicación entre ecoSignature JWS y plantillas EBP’s mediante variables configurables.

  • Configuración de la dimensión de la rúbrica.
  • Configuración de ubicación de la rúbrica. Se presentan tres tipos de posicionamiento:
    • Posicionamiento manual: solo para integraciones con previsualización de documentos a firmar. El usuario puede mover/trasladar y redimensionar el widget o ventana de firma por la página del documento pdf.
    • Posicionamiento fijo: definición de posición de coordenadas X e Y fija y del número de página de la firma en el documento pdf, cuando sabemos el lugar concreto en el que queremos que se firme.
    • Posicionamiento flotante: definición de posición del widget por búsqueda de una cadena de caracteres, pudiendo introducirse un desfase en las coordenadas X e Y.
    • Posicionamiento en campos vacíos predefinidos.
  • Introducción de texto personalizado en la rúbrica.
  • Descarga y ejecución en local del documento pdf firmado.
  • Descarga de JPG del grafo en local del documento pdf firmado.
  • Integración con Virtual Channel Citrix (en Windows).
  • Validación de documento firmado.
  • Posibilidad de lanzamiento externo de la solución desde otras aplicaciones.
  • Posibilidad de lanzamiento por protocolo con o sin intermediario.
  • Posibilidad de uso de certificados autofirmados.

Entrega #

La solución ecoSignature JWS Desktop se entrega en un fichero zip (Windows) o tar.gz (Linux) que presenta el siguiente formato en su nombre:

www_ecoSignatureJWS_Desktop_SO_vy.y.y_xxxxxxxx

siendo:

  • SO: sistema operativo.
  • vy.y.y: versión.
  • xxxxxxxx: fecha de lanzamiento.

Instalación #

SO Windows #

Para la instalación de la solución ecoSignature JWS Desktop en un entorno Windows se deben realizar los siguientes pasos:

  1. Descomprimir el archivo .zip entregado.

Dentro de la carpeta “ecoSignatureJWS” podemos observar los siguientes ficheros, estructurados de la siguiente forma:

  • módulo de aplicación: contiene los ficheros de lanzamiento de la solución, de configuración y de log, este último optativo.
    • ecoSignatureJWS_Desktop.exe: fichero de lanzamiento de la solución.
    • ecoSignatureJWS.ini: fichero de configuración de la solución.

Nota: El fichero ecoSignatureJWS.ini presenta una configuración por defecto para poder lanzar un proceso de firmado sin necesidad de saber configurar la solución.

  • logbackJWS_ejemplo.xml: fichero de configuración de log para usuarios avanzados. Se comenta posteriormente.
  • carpeta “config”: carpeta de configuración para introducción de todo tipo de ficheros relacionados/necesarios para una personalización de un proceso de firmado (plantillas de firmado o ebp’s, ficheros de configuración .ini, ficheros de configuración de interface,…..).
  • carpeta “log”: donde se genera el log de la solución.
  • carpeta “Documentación técnica”: contiene a su vez:
    • carpeta “Configuraciones completas”: contiene las configuraciones completas de los ficheros de configuración por defecto y de los ficheros asociados con el datasheet o panel del terminalista.
    • documentación de la solución.
  • módulo de firmado: contiene todo lo relacionado con el firmado.
    • carpeta “ecobiometricJWS”:  ficheros .jar y librerías de firmado.
  • módulo de ejemplo: contiene todo lo relacionado con el lanzamiento de ejemplos de la solución.
    • carpeta “ejemplos”: contiene a su vez:
      • carpeta “datasheet”: ejemplos de configuración para el lanzamiento de la solución en modo datasheet o panel del terminalista a través de dispositivos de captura biométrica STU y DTU.

IMPORTANTE: Sobrescribir el fichero ecoSignatureJWS.ini de la raíz para el lanzamiento de datsheet.

  • carpeta “pdf”: contiene documentos ejemplo para firmado.
  • carpeta “Firmados”: donde se dejan los documentos firmados.
  1. Copiar carpeta “ecoSignatureJWS” en la ruta “C:/”.
  2. Si se desea ejecutar inicialmente la solución con la configuración por defecto, ejecutar el archivo ecoSignatureJWS_Desktop.exe.

IMPORTANTE: Para el correcto funcionamiento de la solución se debe tener instalado una versión de Java (Oracle o Azul Zulú), además si se opta por la versión Azul Zulú se debe tener instalado el plugin IcedTea Web.

SO Linux #

Para la instalación de la solución ecoSignature JWS Desktop en un entorno Linux se deben realizar los siguientes pasos:

  1. Descomprimir el archivo .tar.gz entregado.

Dentro de la carpeta “ecoSignatureJWS” podemos observar los siguientes ficheros, estructurados de la siguiente forma:

  • módulo de aplicación: contiene los archivo de lanzamiento de la solución, de configuración y de log, este último optativo.
    • ecoSignatureJWS_Desktop.sh: archivo de lanzamiento de la solución.

Nota: Modificar la segunda línea, introduciendo el usuario correspondiente:

cd /home/[user]/ecoSignatureJWS

  • ecoSignatureJWS_Desktop.jar: jar de la solución invocado en el archivo de lanzamiento anterior.

Nota: Se puede lanzar la solución a través de este archivo.

  • ecoSignatureJWS.ini y ecoSignatureJWS_completo.ini: archivos de configuración de la solución.

Nota: El archivo ecoSignatureJWS.ini presenta una configuración por defecto para poder lanzar un proceso de firmado sin necesidad de saber configurar la solución.

  • log4jJWS_ejemplo.properties: archivo de configuración de log para usuarios avanzados. Se comenta posteriormente.
  • módulo de firmado: contiene todo lo relacionado con el firmado.
    • carpeta “ecobiometricJWS”:  ficheros .jar y librerías de firmado.
    • ecoSignatureJWS.pdf: documento ejemplo de firmado.
    • archivos .ebp: plantillas de firmado de ejemplo de la aplicación. 
  1. Copiar carpeta “ecoSignatureJWS” en la ruta “home/[user]/”, modificando el usuario correspondiente.
  2. Si se desea ejecutar inicialmente la solución con la configuración por defecto, ejecutar el archivo ecoSignatureJWS_Desktop.sh o en su defecto el archivo jar ecoSignatureJWS_Desktop.jar.

IMPORTANTE: Modificar en el archivo de configuración ecoSignatureJWS.ini en el parámetro saveInLocalPath=/home/[user]/ecoSignatureJWS/Firmados/ por el usuario correspondiente antes de lanzar la solución.

Requerimientos SO Linux #

El firmado con ecoSignature JWS Desktop en Linux presenta unos requerimientos mínimos de instalación.

Instalación de Java #

La opción más fácil para la instalación de Java es utilizar la versión empaquetada con Ubuntu. En concreto, se instala OpenJDK 8, la última versión recomendada.

En primer lugar, actualizamos el índice de paquetes:

  • sudo apt-get update

A continuación, instalamos Java. Este comando instalará el entorno de ejecución de Java (JRE).

  • sudo apt-get install default-jre

Hay otra instalación por defecto de Java llamada JDK (Java Development Kit). El JDK por lo general sólo se necesita si va a compilar programas Java o si el software que va a utilizar Java lo requiere específicamente.

El JDK contiene el JRE, así que no hay inconvenientes si se instala el JDK en lugar de la JRE, excepto por el tamaño del archivo.

Puede instalar el JDK con el siguiente comando:

  • sudo apt-get install default-jdk

Instalación del JDK de Oracle

Si desea instalar el JDK de Oracle, que es la versión oficial distribuida por Oracle, tendrá que seguir unos pasos más. 

En primer lugar, agregue PPA de Oracle, a continuación, luego actualice el repositorio de paquetes:

  • sudo add-apt-repository ppa:webupd8team/java
  • sudo apt-get update

Luego, dependiendo de la versión que desee instalar, ejecutaremos uno de los siguientes comandos:

Oracle JDK 7: 

  • sudo apt-get install oracle-java7-installer

Oracle JDK 8:

  • sudo apt-get install oracle-java8-installer

IMPORTANTE: Recomendamos la instalación de Oracle JDK 8.

Instalación de entorno Wacom

Ejecutar los siguientes comandos:

sudo apt-get -y install libusb-1.0.0-dev

(Opcional, soporte Openssl):

sudo apt-get -y install libssl-dev

Reglas udev para permitir acceder al dispositivo desde la cuenta local (desenchufar y volver a conectar la STU o reiniciar ordenador):

sudo su -
cat <<EOF >> /etc/udev/rules.d/60-stu.rules
SUBSYSTEM=="usb",ATTR{idVendor}=="056a",MODE:="0666"
SUBSYSTEM=="usb_device",ATTR{idVendor}=="056a",MODE:="0666"
EOF
udevadm control --reload-rules
logout
Instalación Boots para Wacom #

Ejecutar el siguiente comando, si su sistema operativo es de 32 bits o su distribución es Linux <16.04:

wget --no-check-certificate https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download && tar -zxvf download && cd boost_1_63_0 && ./bootstrap.sh --prefix=/usr && ./b2; sudo ./b2 install

Nota: Para ambos sistemas operativos, una vez que se tenga soltura con la configuración de los parámetros de la solución se puede presentar otra arquitectura o distribución de los dos módulos presentados anteriormente (módulos de aplicación y de firmado), los cuales pueden estar definidos en diferentes directorios.

IMPORTANTE: La solución ecoSignature JWS Desktop inicialmente levanta un web socket en local por defecto en el puerto 8181 para el proceso de firmado. Asegúrese de que dicho puerto no se encuentre ocupado. Se puede configurar un web socket externo, como su host y puerto o el puerto del web socket interno en el archivo de configuración. (Ver apartado 2.1. Parámetros de configuración).

Configuración general #

La configuración general de la solución se realiza a través del fichero de configuración ecoSignatureJWS.ini, el cual por defecto se debe encontrar en la carpeta donde se encuentra el .exe de lanzamiento.

Se puede invocar a ecoSignature JWS Desktop con el fichero de configuración por defecto y/o seleccionando otro fichero de configuración pasado como parámetro.

Todas las opciones que podemos modificar de la solución se encuentran en el fichero ecoSignatureJWS_completo.ini. A continuación se presentan todos los parámetros configurables a través de este archivo.

Parámetros de configuración #

El firmado con ecoSignature JWS Desktop necesita la configuración de una serie de parámetros para adecuarlo a cada escenario específico en el que se desee implementar. A continuación se muestran los diferentes parámetros de configuración con los que contamos para realizar un proceso de firmado.

Estos parámetros se dividen en dos grupos:

  • Parámetros generales de la solución.
  • Parámetros de configuración de firma (parámetros JNLP): Los parámetros JNLP son los que parametrizan un proceso de firmado.

IMPORTANTE: Los parámetros con url como “remotePdf-url”, “pfx-url”, “ebp-url“, “ebp-initial-url“,… permiten direccionamiento:

  • absoluto:  “file:/ruta”

Ejemplo:

remotePdf-url=file:/C:/ecoSignatureJWS/ecoSignatureJWS.pdf (Windows)

remotePdf-url=file:/home/[user]/ecoSignatureJWS/ecoSignatureJWS.pdf (Linux)

  • relativo: desde donde se encuentra el archivo ecobiometric.jar.

Ejemplo:

ebp-url=../edatalia_initial.ebp

  • url: “http(s)://…” solamente para “remotePdf-url”.

No aplica a los parámetros “tsp-url” y “ocsp-url”, éstos tienen una estructura de “http(s)://….”.

Los parámetros “signatures-input-xml” e “interface-window” permiten direccionamiento:

  • absoluto: “file:/ruta”

Ejemplo:

signatures-input-xml=file:/C:/ecoSignatureJWS/datasheet.xml (Windows)

interface-window=file:/home/[user]/ecoSignatureJWS/datasheet.ini (Linux)

  • relativo: desde donde se encuentra el .exe de la solución.

Ejemplo:

interface-window=datasheet.ini

  • url: “http(s)://…” solamente para “signatures-input-xml”.
Parámetros generales de la solución #

A continuación se describen los parámetros generales de la solución.

Param NameValorValor por defectoComportamiento
javaTypeEntero0Versión de Java:0: Oracle.1: Azul Zulú.
path-ecoSignatureJWSStringRuta del .exeRuta absoluta de despliegue del módulo de firmado ecoSignature JWS.
alwaysOnTopBooleano1ecoSignatureJWS Desktop siempre visible en pantalla.
justOneLockBooleano1Solo permitir la ejecución de una instancia de la solución.
showAlertBooleano1Mostrar alertas en la solución.
showEventsBooleano0Visualización de la ventana de eventos.
toastBooleano1Visualización de ayuda.
DocumentoDocumento de la aplicación
showPDFBooleano0Visualización de documento antes de ser firmado.
showPDFMonitorNumEntero0Número de monitor donde se visualiza el documento antes de ser firmado.
showPDFSignedBooleano0Visualización del documento después de ser firmado.
showPDFSignedMonitorNumEntero0Número de monitor donde se visualiza el documento después de ser firmado.
validateWidgetInPageBooleano1Validación de que el widget de firma seencuentre dentro de los límites de la página del documento.Solo aplica para modo panel terminalista y con modo normal con showPDFSigned=1.
fullScreenBooleanoWindows = 1Linux = 0Visualización en modo full screen. Solo aplica con showPDF o showPDFSigned activados.
zoomEnteroAncho del documentoZoom inicial del documento a firmar.Rango [50%-400%].Solo aplica con showPDF o showPDFSigned activados.
self-signed-certificateBooleano0Permitir el uso de certificados autofirmados.
Web SocketWeb socket de conexión de la aplicación
externalWebSocketBooleano0Conexión a web socket externo.
externalWebSocket-urlStringUrl de conexión externa. Solo aplica para externalWebSocket activado.
portWebSocketEntero8181Puerto del web socket. Solo aplica para externalWebSocket desactivado.


IMPORTANTE: En el parámetro “externalWebSocket-url” se permiten los protocolos web (http y https) y web socket (ws y wss).

LogLog de la aplicación
log-activateBooleano0Activación de log.
log-fileStringRuta del .exe/ ecoSignatureJWS.logRuta absoluta de log de la solución.
levelLogStringINFONivel de log de la solución.

Nota: La generación de log se realiza a través de Logback que es una biblioteca open source desarrollada en Java por la Apache Software Foundation que permite a los desarrolladores de software escribir mensajes de registro, cuyo propósito es dejar constancia de una determinada transacción en tiempo de ejecución. Logback permite filtrar los mensajes en función de su importancia. La configuración de salida y granularidad de los mensajes es realizada en tiempo de ejecución mediante el uso de archivos de configuración externos.

Se presentan los siguientes niveles de log (parámetro “levelLog”):

  • TRACE: Se usa para información más detallada que el nivel debug.
  • DEBUG: Se utiliza para mensajes de información detallada que son útiles para depuración de la aplicación.
  • INFO: Se utiliza para mensajes de información que resaltan el progreso de la aplicación de una forma general.
  • WARN: Se utiliza para situaciones de aviso.
  • ERROR: Se usa para eventos de error.

IMPORTANTE: Los parámetros «log-activate», «log-file» y «levelLog» no se tienen en cuenta si tenemos un archivo de configuración de logs llamado «logbackJWS.xml» en la ruta donde se encuentre el .exe de la solución.

Datasheet o Panel de Terminalista
signatures-input-xml-b64StringEntrada de firmantes a través de xml en Base64.
signatures-input-xmlStringEntrada de firmantes a través de xml.
interface-windowStringArchivo de configuración de panel de terminalista (interface).

IMPORTANTE: Para la activación del panel de terminalista «signatures-input-xml-b64» o «signatures-input-xml» deben ser informados.

Cuando se activa el panel de terminalista no se tienen en cuenta los parámetros:

  • “alwaysOnTop”
  • “showAlert”
  • “toast”
  • “showPDF”
  • “showPDFMonitorNum”
  • “showPDFSigned”
  • “showPDFSignedMonitorNum”
  • “fullScreen”
  • “zoom”

Además se anulan los valores que presenten los parámetros JNLP:

  • “Pdf-Content”
  • “remotePdf-url”
  • “pdfPassword”
  • “certificatePDF”
  • “saveInLocalPath”
  • “saveInLocalName”
  • “executeInLocal”
Lanzamiento Java Web Start
jws-launch-typeEntero0Tipo de lanzamiento de jnlp:0: Runtime (línea de comandos).1: Desktop (programa predeterminado).
jws-verboseBooleano0Activación del modo verbose. Solo aplica parajws-launch-type=0.
jws-launch-timeEntero10Tiempo en segundos de espera para ellanzamiento del jnlp. Valor mínimo=5.
Detección automática de DTU
dtu-automatic-detectionBooleano0Activación de detección automática de DTU.Solo aplica para typeTablet=2 y en Windows.
path-ETIStringRuta del .exeRuta absoluta de despliegue de la solución ETI.

IMPORTANTE: Con la activación de la detección automática de DTU “dtu-automatic-detection” (solo aplica para typeTablet=2) se actualizan diferentes parámetros dependiendo del modo de funcionamiento de la aplicación, con el valor del número de monitor obtenido:

  • Modo normal:
    • “showPDFMonitorNum” de la configuración general.
    • “showPDFSignedMonitorNum” de la configuración general.
    • “jwsForzarNumMonitor” de la configuración de parámetros JNLP.
  • Modo panel de terminalista:
    • «dtu-num-monitor» de la configuración de panel datasheet.
    • “jwsForzarNumMonitor” de los diferentes firmantes.
Envío de datos a servicio
send-activateBooleano0Activación de envío de datos a servicio (documento firmado, xml, …)
send-urlStringUrl donde se envían los datos a servicio mediante un POST.Solo aplica si send-activate=1.
send-extra-b64StringParámetros extras en base 64 que se envíanjunto a los datos a servicio mediante un POST.Solo aplica si send-activate=1.

IMPORTANTE: La activación del envío de datos a servicio se realiza mediante POST a la url configurada (parámetro “send-url”).

En dicho POST se envían los siguientes parámetros:

  • Modo normal:
    • pdf”: documento firmado.
    • extra”: parámetros extras en base 64.
    • code”: código de salida de aplicación, (Ver Apartado 7.3. Códigos de salida).
    • id”: identificador de intermediario.

Solo se envían datos al servicio cuando el documento se ha firmado correctamente (código de salida 0).

  • Modo panel de terminalista:
    • “pdf”: documento resultante.
    • “xml”: fichero de configuración XML resultante.
    • “extra”: parámetros extras en base 64.
    • “code”: código de salida de aplicación (Ver Apartado 7.3. Códigos de salida).
    • “id”: identificador de intermediario.

Solo se envían datos al servicio cuando:

  • se finaliza el proceso de firmado (código de salida 40).
  • se imprime el documento (código de salida 41).
  • se pospone el proceso de firmado (código de salida 42).
  • se sale forzosamente cuando no existen participantes pendientes de firma al entrar (código de salida -46) y está activado el parámetro “send-data-event-not-signers” de la configuración de interface del terminalista.

Es responsabilidad del integrador la lógica de tratamiento de los datos que son recibidos en el servicio.

Con la activación del envío de datos a servicio mediante POST (send-activate=1) se anulan los parámetros:

  • Modo normal:
    • “executeInLocal”, “saveInLocalPath” y “saveInLocalName” de la configuración de parámetros JNLP.
  • Modo panel de terminalista:
    • «savePDFPath”, “savePDFName”, “saveXMLPath” y “saveXMLName” de la configuración general del xml. Estos tag’s junto a “pdfB64” y “pdfUrl” son anulados en el envío de xml a servicio.

IMPORTANTE: Si se produce algún error en el envío de datos al servicio (documento firmado y xml (en dependencia del modo de funcionamiento de la solución)) es mostrado por pantalla, permitiendo al usuario la selección de reintentar o cancelar.

IntermediarioComunicación entre página web y solución ecoSignatureJWS Desktop
desktop-urlStringUrl de despliegue del intermediario.

IMPORTANTE: El intermediario se activa si en el lanzamiento por protocolo se informa del parámetro “id” (Ver Apartado 8. Llamada por protocolo).

IMPORTANTE: En el parámetro “desktop-url” se permiten los protocolos web (http y https).

IMPORTANTE: Si se produce algún error en el intermediario se muestra por pantalla un warning en la finalización del proceso de firma. El proceso de firmado siempre finaliza aunque no se notifique el código de salida de la solución a través del intermediario.

Parámetros JNLP (Configuración de firma) #

A continuación se describen los parámetros de configuración de firma (parámetros JNLP).

Entrada y salidas del documento PDF #
Param NameValorValor por defectoComportamiento
Pdf-ContentPDF en B64Documento PDF a firmar en B64.
remotePdf-urltest.pdfURL de entrada de donde se coge el PDF.Si se informa Pdf-Content, este parámetro remotePdf-url no se tiene en cuenta.
widget-TextcustomStringTexto custom del widget en B64.
authorStringAutor de la firma (propiedad de un pdf firmado).
reasonStringRazón de la firma (propiedad de un pdf firmado).
contactStringInfo de contacto de la firma (propiedad de un pdf firmado).
locationStringInfo de localización de la firma (propiedad de un pdf firmado).
pdfPasswordStringContraseña del documento PDF de entrada si la tiene.

IMPORTANTE: La sintaxis del parámetro “widget-Textcustom” se construye a partir de un

xml de formato <Line Size=”[Tamaño_Fuente_Línea]”>[Texto línea]</Line>.

Se disponen de las variables:

  • nombre de firmador: ##CERT_COMMON_NAME##
  • propiedades básicas del certificado: ##CERT_COMMON_PROPS##
  • info clave pública: ##CERT_PUBLIC_INFO##
  • fecha/Hora del sello de tiempo: ##TIMESTAMP##

Ejemplo:

<?xml version="1.0" encoding="ISO-8859-1" ?><Line Size="8">Firmado electrónicamente el: ##TIMESTAMP##</Line>" en base 64

Usar http://www.motobit.com/util/base64-decoder-encoder.asp u otra solución para transformar ese XML en un Base 64.

Certificados de firma y cifrado #

El certificado de firma y de encriptación se pueden informar de varias formas. Por defecto, se utilizarían los certificados embebidos en el JWS. También se puede informar de la ubicación del fichero físico.

En el caso del certificado de firma electrónica, también se puede obtener del almacén estándar de certificados de Windows (CryptoAPI).

Param NameValorValor por defectoComportamiento
cert-originBooleano0Si se activa (1) buscará el certificado en el almacén interno de windows (CryptoAPI).No aplica en Linux.
cert-origin-caPermite identificar la CA del certificado desde el CryptoAPI.Sólo funciona si cert-origin=1.No aplica en Linux.
pfx-b64Base64 del contenido del PFXPermite informar el certificado de firma.
pfx-urlEs la url al fichero pfx si no se usa «pfx-b64» ni otros orígenes de certificados.
pfx-pwEn Base64Password para activar el certificado.
Chain-CA-b64En Base64Cadena de validación completa del certificado.
enc-key-b64Base64 del contenido del .cerClave pública del cert de encriptación(el cifrado no requiere pss).
certificatePDFBooleanoFirma PDF Certificada (MDP).
TIME STAMPSellado de tiempo en el momento de la firma
tsp-activateBooleano0Si se activa (1) activa la consulta TSP.
tsp-url
tsp-user
tsp-password
OCSPValidación del estado de revocación del certificado en el momento de la firma
ocsp-activateBooleano0Si se activa (1) activa la consulta OCSP.
ocsp-url
ocsp-user
ocsp-password
setValidateErrorContinueBooleano0Si se activa (1) la firma no se para aunque haya un error de validación OCSP
forceValidateBooleano0Si se activa (1) fuerza la validación del certificado firmante,se especifique o no el uso de OCSP.
bufferLTVEntero0Tamaño en Bytes de reserva en caso de querer realizar un PAdES-LTV (TSP+OCSP).Debe dejarse un 2x de la cantidad estimada. Típicamente con 100000 funciona.

IMPORTANTE: Si está activada la validación del estado de revocación del certificado en el momento de la firma y no se ha introducido la URL del OCSP, se toma automáticamente en la comprobación la URL del OCSP del certificado.

// Certificado de firma: (cert-origin=1 se toma el certificado de CryptoAPI en base a que la CA del certificado sea la apuntada por cert-origin-ca)

cert-origin=1

Si se indica cert-origin=1, se accede al cryptoapi y no se tiene en cuenta el pfx.

Para indicar la CA, hay que mirar el parámetro «Organization» del «Emisor» del certificado (técnicamente el Organization del IssuerRDN del certificado final).

(cert-origin=1):

  • Si no se especifica la CA, es decir, que se le pasa vacío, entonces se muestra una pantalla de selección de certificados con todos los certificados en el almacén personal del usuario de Windows que disponen de llave privada.
  • Si se especifica la CA:
    • Si solo existe 1 certificado, se usa ese certificado automáticamente sin pantalla de selección de certificado.
    • Si existe más de 1 certificado que cumple la regla del Issuer-RDN-CN, aparece la pantalla de selección de certificados con la lista de certificados que cumplen esa regla.
Ubicación del área de firma en el documento #

Los siguientes parámetros permiten configurar el tamaño del área de firma y ubicarlo en el documento PDF.

Param NameValorValor por defectoComportamiento
Ubicación fija del área de firmaEl JWS ubica la firma en una página y coordenadas determinadas
widget-PageEntero10 la firma se muestra en todas las páginas.Si cualquier otro número, indicaría el número de página.4 la firma se muestra en la página 49999 un número suficientemente grande puede servir para indicar la última página del documento.
widget-XEntero0Desplazamiento del widget en horizontal, desde el vértice inferior izquierdo del documento PDF.
widget-YEntero0Desplazamiento del widget en vertical, desde el vértice inferior izquierdo del documento PDF.Un documento PDF estándar, tamaño DIN-A4, tiene una altura de 842 puntos.
widget-Transparent-activateBooleano1Widget transparente o no.
Ubicación relativa a cadena de caracteresEl JWS busca una frase en el documento y ubica la firma en relación al primer carácter. Por ejemplo «Firmado por:»
widget-autoPos-activateBooleano0Si se activa (1) el JWS busca una cadena de caracteres para ubicar la firma
widget-autoPos-textStringTexto a buscar. La firma se ubica de forma relativa al primer carácter.Por ejemplo «Firmado por:».
widget-autoPos-desfaseXEntero0Desplazamiento relativo en horizontal.
widget-autoPos-desfaseYEntero0Desplazamiento relativo en vertical.
Tamaño del área de firmaAtención: de cara a mantener la proporcionalidad de los trazados de la rúbrica, es muy relevante mantener el ratio de aspecto del área de firma en el EBP
widget-AnchoEntero120Ancho del widget.
widget-AltoEntero30Alto del widget.
Ubicación en campo vacío de firma
PDFEmptySig_enableBooleano0Activación de posicionamiento en campo vacío de firma.
PDFEmptySig_fieldnameStringNombre de campo de firma.

IMPORTANTE: Una vez configurados los parámetros de firmado, el posicionamiento del widget de firma depende de si se ha optado por la visualización del documento a firmar o no (activación de parámetro “showPDF”):

  1. Si showPDF=1:
    1. Si widget-autoPos-activate=1 activación de posicionamiento flotante.

Búsqueda de texto introducido en el parámetro widget-autoPos-text.

A tener en cuenta:

  • Si no se encuentra el texto seleccionado se activa el posicionamiento manual.
  • Si se ha encontrado el texto seleccionado y el widget no se encuentra dentro de las coordenadas de la página del documento se activa el posicionamiento manual.
  1. Si widget-Page o widget-X o widget-Y presentan algún valor activación de posicionamiento fijo.

A tener en cuenta:

  • Si el widget no se encuentra dentro de las coordenadas de la página del documento se activa el posicionamiento manual.
  1. En caso contrario, es decir, si no se presenta posicionamiento flotante ni fijo activación de posicionamiento manual.

Los parámetros widget-Acho, widget-Alto, widget-Page, widget-X, widget-Y, widget-autoPos-desfaseX y widget-autoPos-desfaseY presentan valores por defecto si no han sido pasados por configuración y son necesarios para el posicionamiento.

  1. Si showPDF=0:

¿Qué ocurre si no encuentra la cadena? 

Si la cadena de caracteres especificada no se encuentra por algún motivo se usan los parámetros X,Y por defecto del widget especificados por parámetros del JWS.

Si se encuentra la secuencia, en la consola de Java aparecería: “FOUND text for auto widget positioning”.

IMPORTANTE: El posicionamiento en campo vacío de firma solo aplica al datasheet o panel del terminalista.

IMPORTANTE: En el uso de datasheet o panel del terminalista, el orden de posicionamiento en dependencia con la configuración, es el siguiente:

  1. Posicionamiento en campo vacío de firma.
  2. Posicionamiento flotante o por búsqueda de texto.
  3. Posicionamiento fijo.
Dispositivo de captura biométrica #

La firma manuscrita se puede recoger de una tableta Wacom STU o bien desde la propia pantalla del PC (dispositivos con pantalla táctil).

Estos parámetros nos permiten seleccionar el tipo de tableta con la que estamos trabajando y configurar el comportamiento del dispositivo de captura de datos biométricos.

Param NameValorValor por defectoComportamiento
Modo mouseNos permite probar la funcionalidad del JWS sin necesidad de tabletas de captura biométrica. Recabar la firma desde la pantalla de dispositivos con pantalla táctil.
mouseModeBooleano0Si se activa, la firma se recoge desde el monitor del dispositivo.No requiere tableta de firma (Wacom/Stylus).
mouseSpeedBooleano0Permite configurar la presión relativa a la velocidad.
typeTabletEntero0Tipo de dispositivo de captura biométrica:0: tabletas STU en color STU-520,STU-530.1: tabletas STU monocromo STU-430.2: Stylus (No aplica en Linux). Aplica a tabletas con SO Windows y Wacom DTU.
Min_PointsEntero100Mínimo de puntos para que se acepte la firma, si se deja a 0 acepta firmas sin puntos.Las tabletas Wacom capturan 200 puntos por segundo
max-sig-timeEntero60Segundos por defecto máximo para aceptación de la firma (recomendable no cambiarlo).
Empleo de plantillas EBPLas plantillas EBP permiten definir la visualización de la tableta
ebp-activateBooleano1Activa el uso de plantilla.
ebp-use-internalBooleano0Utiliza el EBP embebido en el JWS
ebp-urlsi ebp-use-internal está a 0, url de donde se coge el EBP.
showEBPBooleano11: Muestra al operador, en la pantalla del PC, lo que se está visualizando en la tableta Wacom.
noButtonEBPBooleano0si showEBP=1, elige si se muestran los botones de la plantilla EBP (0) o si se ocultan (1).Recomendado a 1 ya que los botones van en el HTML y no en el JWS.
ebp-variablesStringVariables a mostrar en la plantilla EBP.ATENCIÓN: el valor de estas variables se guardan junto a la información biométrica de la firma.Es muy relevante que estos valores se asocien de forma unívoca al acto de firma (el contenido del documento).
STUBackLightEntero-1Solo para dispositivos Wacom STU.0 (mínima intensidad) a 3 (máxima intensidad).Valor por defecto -1 (no cambia el brillo).
driver430InstalledBooleano1Parámetro por defecto a verdadero (1). Si se pone desactivado (0), se supondrá que no existen los drivers de la Wacom STU430 instalados en el ordenador local, y se usará una estrategia de inicialización especial para que no se produzcan «parpadeos”  en la inicialización de la STU430.
ebp-initial-activateBooleano0Activar o no (por defecto) el uso de la pantalla inicial.Se trata de una pantalla que puede mostrar un texto previo a la pantalla donde se recoge la firma.
ebp-initial-urlStringLa url del EBP a usar para pantalla inicial, éste EBP al menos ha de contener 1 área marcada como botón aceptar. Se recomienda un botón para cancelar.
ebp-initial-variablesStringLas variables que se le pasan al EBP inicial, y también serán incluidas con  la información biométrica cifrada. Por ejemplo para poner un texto de LOPD.
Modo solo firma biometría #

El JWS permite realizar la firma electrónica del documento sin asociarlo a una firma manuscrita. Sería la firma electrónica convencional basada en certificado digital.

Param NameValorValor por defectoComportamiento
jsigModeBooleano0Si se activa (1), sólo se realiza firma usando el certificado digital, desactivado (0) se usa la firma biométrica.
jsigJPGJPEG en BASE64Permite pasar un JPEG como imagen para la firma digital del PDF
Específicos de JWS #

A continuación se describen los parámetros relacionados con la edición de la aplicación JWS:

Param NameValorValor por defectoComportamiento
jwsWidthEnteroAnchura en píxeles de la ventana de la aplicación.
jwsHeightEnteroAltura en píxeles de la ventana de la aplicación.
jwsTxtBtnResetStringTexto en el botón de reinicio de la aplicación.
jwsTxtBtnCancelStringTexto en el botón de cancelación de la aplicación.
jwsTxtBtnSgnStringTexto en el botón de firma de la aplicación.
jwsBtnResetBooleano1Visibilidad de botón de reinicio de la aplicación.
jwsBtnCancelBooleano1Visibilidad de botón de cancelación de la aplicación.
jwsBtnSgnBooleano1Visibilidad de botón de firma de la aplicación.
jwsBtnResetImageStringImagen en botón de reinicio de aplicación.
jwsBtnResetImageRolloverStringImagen en botón de reinicio de aplicación (mouse over).
jwsBtnCancelImageStringImagen en botón de cancelación de la aplicación.
jwsBtnCancelImageRolloverStringImagen en botón de cancelación de la aplicación (mouse over).
jwsBtnSignImageStringImagen en botón de firma de la aplicación.
jwsBtnSignImageRolloverStringImagen en botón de firma de la aplicación (mouse over).
jwsCommentBoolean0Activación de comentarios de la aplicación.
jwsTxtLblCommentStringLabel de comentarios.
jwsTxtCommentStringPosibles comentarios predefinidos separados por “;”.
jwsPosXEnteroCentradoCoordenada X de inicio de la aplicación en pantalla.
jwsPosYEnteroCentradoCoordenada Y de inicio de la aplicación en pantalla.
jwsForzarNumMonitorEntero0Número de monitor donde se muestra el JWS.
jwsShowBorderCloseBooleano1Si está activo mostrará la ventana de captura de firma con estilo “diálogo” (bordes + cruz para cerrar/cancelar ventana), sino será una ventana sin bordes.
Eventos de tecladoCTRL+carácter
jwsKeyboardAcceptEntero65 (=A)Evento de teclado en botón de aceptar firma. CTRL+carácter, donde caracter es el valor en decimal del ASCII (carácter).
jwsKeyboardCancelEntero67 (=C)Evento de teclado en botón de aceptar firma. CTRL+carácter, donde caracter es el valor en decimal del ASCII (carácter).
jwsKeyboardResetEntero82 (=R)Evento de teclado en botón de aceptar firma. CTRL+carácter, donde caracter es el valor en decimal del ASCII (carácter).

IMPORTANTE: Los parámetros de posicionamiento de la ventana de firma “jwsPosX” y “jwsPosY” presentan el siguiente comportamiento:

  • Para ambas coordenadas si el valor es -1 o “center” se centra la coordenada en pantalla.
  • Para la coordenada X:
    • Si el valor es 9999 o “right” la ventana de firma se coloca a la derecha en pantalla.
    • Si el valor es 0 o “left” la ventana de firma se coloca a la izquierda en pantalla.
    • Cualquier otro valor significa posición absoluta de la ventana de firma establecida por el usuario.
  • Para la coordenada Y:
    • Si el valor es 9999 o “bottom” la ventana de firma se coloca en la parte inferior en pantalla.
    • Si el valor es 0 o “top” la ventana de firma se coloca en la parte superior en pantalla.
    • Cualquier otro valor significa posición absoluta de la ventana de firma establecida por el usuario.

IMPORTANTE: Los parámetros de dimensión de la ventana de firma “jwsWidth” y “jwsHeight” presentan valores por defecto, que dependen del tipo de dispositivo de captura biométrica seleccionado:

  • Para STU-430: 640 x 400 (typeTablet=1).
  • Para STU-530, DTU y Stylus: 800 x 480 (typeTablet=0 ó 2).

IMPORTANTE: El valor decimal del carácter para los eventos de teclado puede obtenerse en www.asciitable.com.

Ventana “Controller” #

Estos parámetros controlan la aparición de una segunda ventana copia de la de captura de firma para en casos multimonitor (como las DTU) para que tanto el firmante como el controlador de la firma puedan ver y operar sobre el funcionamiento y/o aceptación de la firma:

Param NameValorValor por defectoComportamiento
jwsControllerEnableBooleano0Activa o desactiva la ventana “controller”.
jwsControllerShowBorderCloseBooleano1Si está activo mostrará la ventana controller con estilo “diálogo” (bordes + cruz para cerrar/cancelar ventana), sino será una ventana sin bordes.
jwsControllerCaptionStringTítulo de la ventana controller. Solo aplica si jwsControllerShowBorderClose=1.
jwsControllerWidthEnteroAnchura en píxeles de la ventana de la ventana controller.
jwsControllerHeightEnteroAltura en píxeles de la ventana de la ventana controller.
jwsControllerTxtBtnResetStringReiniciarTexto en el botón de reinicio de la ventana controller.
jwsControllerTxtBtnCancelStringCancelarTexto en el botón de cancelación de la ventana controller.
jwsControllerTxtBtnSignStringFirmarTexto en el botón de firma de la ventana controller.
jwsControllerBtnResetBooleano1Visibilidad de botón de reinicio de la ventana controller.
jwsControllerBtnCancelBooleano1Visibilidad de botón de cancelación de la ventana controller.
jwsControllerBtnSignBooleano1Visibilidad de botón de firma de la ventana controller.
jwsControllerBtnResetImageStringImagen en botón de reinicio de la ventana controller .
jwsControllerBtnResetImageRolloverStringImagen en botón de reinicio de la ventana controller (mouse over).
jwsControllerBtnCancelImageStringImagen en botón de cancelación de la ventana controller.
jwsControllerBtnCancelImageRolloverStringImagen en botón de cancelación de la ventana controller (mouse over).
jwsControllerBtnSignImageStringImagen en botón de firma de la ventana controller.
jwsControllerBtnSignImageRolloverStringImagen en botón de firma de la ventana controller (mouse over).
jwsControllerCommentBoolean0Activación de comentarios de la ventana controller.
jwsControllerTxtLblCommentStringComentario de la firma: Label de comentarios para la ventana controller.
jwsControllerTxtCommentStringPosibles comentarios para la ventana controller predefinidos separados por “;”.
jwsControllerStayOnTopBoolean0Si se activa(1) la ventana controller estará siempre visible en pantalla.
jwsControllerPosXEnteroCentradoCoordenada X de inicio de la ventana controller en pantalla.
jwsControllerPosYEnteroCentradoCoordenada Y de inicio de la ventana controller en pantalla.

IMPORTANTE: Los parámetros de posicionamiento de la ventana controller de firma “jwsControllerPosX” y “jwsControllerPosY” presentan el siguiente comportamiento:

  • Para ambas coordenadas si el valor es -1 o “center” se centra la ventana controller de firma en pantalla.
  • Para la coordenada X:
    • Si el valor es 9999 o “right” la ventana controller de firma se coloca a la derecha en pantalla.
    • Si el valor es 0 o “left” la ventana controller de firma se coloca a la izquierda en pantalla.
    • Cualquier otro valor significa posición absoluta de la ventana controller de firma establecida por el usuario.
  • Para la coordenada Y:
    • Si el valor es 9999 o “bottom” la ventana de firma controller se coloca en la parte inferior en pantalla.
    • Si el valor es 0 o “top” la ventana controller de firma se coloca en la parte superior en pantalla.
    • Cualquier otro valor significa posición absoluta de la ventana controller de firma establecida por el usuario.

IMPORTANTE: Los parámetros de dimensión de la ventana de firma “jwsControllerWidth” y “jwsControllerHeight” presentan valores por defecto, que dependen del tipo de dispositivo de captura biométrica seleccionado:

  • Para STU-430: 640 x 400 (typeTablet=1).
  • Para STU-530, DTU y Stylus: 800 x 480 (typeTablet=0 ó 2).
Descarga y ejecución en local del documento firmado #

A continuación se describen los parámetros relacionados con la descarga y ejecución en local del documento firmado:

Param NameValorValor por defectoComportamiento
saveInLocalPathStringRuta donde se guarda en local el documento pdf firmado.
saveInLocalNameStringJWS_PDF_Signed.pdfNombre (incluyendo la extensión .pdf) para el fichero que se va a generar/guardar en local.
executeInLocalBooleano0Ejecuta o no el documento pdf con la aplicación que esté asociada para ello.Solo aplica si showPDFSigned=0.

IMPORTANTE: Los parámetros “saveInLocalPath” y “saveInLocalName” componen la ruta donde se guarda en local el documento pdf firmado.

A tener en cuenta:

.- si está vacío, se descarga el documento a temporales.

.- si éste es inexistente, mal formado, no accesible, se descarga el documento a temporales.

.- la ruta debe existir, se usan «/» en lugar de «\». Ejemplo: «C:/Temp/».

Descarga de JPG del grafo en local del documento firmado #

A continuación se describen los parámetros relacionados con la descarga de JPG del grafo

en local del documento firmado:

Param NameValorValor por defectoComportamiento
saveImgInLocalBooleano0Guarda el JPG del grafo del documento firmado en local.
saveImgInLocalPathStringJWS_Img_Signature.jpgRuta donde se guarda en local el JPG del grafo del documento pdf firmado.Solo aplica si saveImgInLocal=1.
saveImgInLocalNameString0Nombre (incluyendo la extensión .jpg) para el fichero que se va a generar/guardar en local.Solo aplica si saveImgInLocal=1.

IMPORTANTE: Los parámetros “saveImgInLocalPath” y “saveImgInLocalName” componen la ruta donde se guarda en local el documento pdf firmado.

A tener en cuenta:

.- si está vacío, se descarga el documento a temporales.

.- si éste es inexistente, mal formado, no accesible, se descarga el documento a temporales.

.- la ruta debe existir, se usan «/» en lugar de «\». Ejemplo: «C:/Temp/».

Otros parámetros #

A continuación se describen otros parámetros que pueden ser relevantes.

Param NameValorValor por defectoComportamiento
checkInstancesBooleano1Detectar múltiples instancias del JWS. No deben existir varias instancias simultáneas del JWS, con este check si se encuentra una instancia previa del JWS la instancia que está comenzando a iniciarse es automáticamente parada y terminada.
disabledWMIBooleano0Permite desactivar WMI, WMI consigue información del hardware del equipo firmante que incrusta en la firma. Puede desactivar la incrustación de datos WMI con disabledWMI=1.
StylusSleepEntero40milisegundos usando Stylus para el procesado de puntos. NO DEBIERA SER CAMBIADO.
max_penEntero5Ancho de la línea del grafo para la presión máxima en píxeles.
penColorEntero255 (Azul)Color del trazo de la firma manuscrita.
Para obtener el valor correspondiente a un color:https://www.littlewebhut.com/css/value_color/
Columna RGB 6 digit: pasar el hexadecimal a decimal. Ejemplos:negro=0azúl=255rojo=32768
time_new_tEntero100Milisegundos para detectar un nuevo trazo. NO DEBIERA SER CAMBIADO.
forceCloseJavabooleano0Si está activado (=1) fuerza al terminar el JWS la salida de Java, previene problemas en determinados escenarios en los que la máquina virtual de Java se queda colgada.
licenseStringOBLIGATORIO. Licencia necesaria para el correcto funcionamiento de JWS. Le será suministrada por su proveedor.
ess-log-fileStringRuta del log.
Citrix (solo Windows) #

El JWS permite su uso a través de citrix de dispositivos de recogida de firma. STU y Stylus soportados a través de canales virtuales en el ICA Client (debe instalar el .msi que le proporcionará edatalia en los clientes previamente).

Param NameValorValor por defectoComportamiento
useCitrixVCBooleano0Activar o no el uso de canales virtuales. Si no está en un entorno Citrix no active esta opción.
CitrixVCSleepEntero10milisegundos usando Citrix para el procesado de puntos. NO DEBIERA SER CAMBIADO.
CitrixVCSleepClearEntero1000milisegundos usando Citrix para espera a limpiado de pantalla. NO DEBIERA SER CAMBIADO.
CitrixVCsWndEntero0Usando Citrix + Stylus, tipo de ventana de captura de firma creada en el cliente. Disponibles tipos 0,1,2,3.
CitrixVCsWnd3XEntero0Si CitrixVCsWnd=3, X de la ventana de captura de firma.
CitrixVCsWnd3YEntero0Si CitrixVCsWnd=3, Y de la ventana de captura de firma.
CitrixVCsWnd3WidthEntero0Si CitrixVCsWnd=3, Ancho de la ventana de captura de firma.
CitrixVCsWnd3HeightEntero0Si CitrixVCsWnd=3, Alto de la ventana de captura de firma.
Signotec (solo Windows) #

A continuación se describen los parámetros relacionados con los dispositivos de captura de datos biométricos Signotec (solo aplica para typeTablet=10).

Param NameValorValor por defectoComportamiento
signotecShowPDFEntero2Muestra de documento PDF en Signotec:0: no mostrar.1: mostrar siempre.2: automático (en la Delta se muestra y en la Gamma no).
signotecShowPanelBtnBooleano0Mostrar botonera en la ventana de Signotec.
signotecScrollToSignPosBooleano1Mover el documento PDF hasta la posición de la firma.
signotecDeltaShowSignBtnBooleano1Mostrar botón de firmar en el propio documento PDF.
signotecAutoStartCaptureBooleano0Lanzar captura de firma automáticamente.
signotecMultiSignatureOptimizeBooleano1Activar el sistema de optimización para multi-firmas.

IMPORTANTE: El parámetro “signotecMultiSignatureOptimize” solo tiene sentido cuando se activa el panel terminalista, sin panel el parámetro es desactivado.

Parámetros mínimos de configuración #

El firmado con ecoSignature JWS Desktop necesita la configuración mínima de una serie de parámetros para la realización de un proceso de firmado inicial y básico:

  • Si el módulo de firmado no se encuentra en la ruta del .exe de la solución parámetro ‘path-ecoSignatureJWS’.
  • Activación de log’s:
    • Parámetros ‘log-activate’, ‘log-file’ y ‘levelLog’.
    • Mediante archivo de configuración ‘log4jJWS.properties’ externo.
  • Parámetros generales de configuración del proceso de firma:
    • Web socket ‘externalWebSocket’, ‘externalWebSocket-url’ y ‘portWebSocket’.
    • Alerta, eventos y ayuda ‘showAlert’, ‘showEvents’ y ‘toast’.
    • Visualización de documento a firmar y firmado ‘showPDF’ y ‘showPDFSigned’.
    • Pantalla completa y zoom ‘fullScreen’ y ‘zoom’.
  • Licencia parámetro ‘license’.
  • Paso del documento PDF a firmar seleccionado:
    • desde ruta local parámetro ‘remotePdf-url’.
    • en Base64 parámetro ‘Pdf-Content’.
  • Parámetros relacionados con la firma ’author’, ’reason’, ’contact’ y ‘location’.
  • Tipo de tableta parámetro ‘typeTablet’.
  • Modo de firma con o sin biometría parámetro ‘jsigMode’.
  • Tamaño de widget parámetros ‘widget-Ancho’ y ‘widget-Alto’.
  • Tipo de posicionamiento seleccionado parámetro ‘widget-autoPos-activate’:
    • si widget-autoPos-activate=0 parámetros ‘widget-Page’, ‘widget-X’ y ‘widget-Y’. (Posicionamiento fijo).
    • si widget-autoPos-activate=1 parámetros ‘widget-autoPos-text’, ‘widget-autoPos-desfaseX’ y ‘widget-autoPos-desfaseY’.

(Posicionamiento por texto).

  • Texto personalizado parámetro ‘widget-Textcustom’.
  • Uso de EBP’s parámetros ‘ebp-activate’, ‘showEBP’, ‘ebp-use-internal’, ‘ebp-url’ y ‘ebp-variables’.
  • Parámetros relacionados con la ventana de firmado en el PC parámetros ‘jwsWidth’, ‘jwsHeight’, ‘jwsPosX’ y ‘jwsPosY’.
  • Ejecutar en local el documento pdf firmado parámetro ‘executeInLocal’.

Nota: El archivo ecoSignatureJWS.ini presenta una configuración por defecto para poder lanzar un proceso de firmado.

Visualizador de documentos #

La solución ecoSignature JWS Desktop permite la visualización tanto del documento a firmar como del documento firmado a pantalla completa o no, configurable a través de los parámetros expuestos anteriormente.

El visualizador presenta la siguiente estructura:

Se puede observar:

  • Botones de incremento/decremento de página                   
  • Selección manual de página.
  • Botones de incremento/decremento de zoom 
  • Selección manual de zoom: presenta las siguientes escalas:
    • Tamaño real del documento.
    • Ajuste al tamaño de la página del documento.
    • Ajuste a la anchura de la página del documento.
    • Valores específicos de zoom: 50, 75, 100, 125, 150, 200, 300 y 400%.
  • Botón de lanzamiento de firma con diferente comportamiento dependiendo del tipo de posicionamiento seleccionado.

El visualizador presenta los siguientes eventos de teclado:

  • Zoom:
  • Zoom más: CTRL y tecla +.
  • Zoom menos: CTRL y tecla -.
  • Zoom: CTRL y ruleta del ratón.
  • Scroll de página:
    • Botón izquierdo del ratón y movimiento del ratón.
    • Ruleta del ratón.
    • En la dirección seleccionada: flechas de dirección y teclado numérico 2,4,6 y 8.
  • Carga de página del documento:
    • Primera página: tecla de inicio de documento (inicio) y tecla numérica 7.
    • Última página: tecla de fin de documento (fin) y tecla numérica 1.
    • Siguiente página: tecla de avanzar página (avpág) y tecla numérica 3.
    • Anterior página: tecla de retroceder página (repág) y tecla numérica 9.
  • Lanzamiento o finalización de firma dependiendo del comportamiento del visualizador (firmador o visor):
    • Enter o retorno de carro.
  • Salida de la aplicación: tecla escape.
  • Eliminación de modo de solución siempre visible en pantalla (Always on top):
    • CTRL+Q.

El visualizador trabaja en dos modos:

  • Firmador: permite la visualización del documento a firmar y lanzar el proceso de firmado.

Nota: En un posicionamiento manual, la ventana de firma inicialmente se posiciona en el centro de la página del documento.

  • Visor: permite la visualización del documento firmado y confirma el firmado correcto del documento.

Nota: Al iniciar el visor, se visualiza el documento en la página firmada (centrado en pantalla y con el mismo zoom, siempre que se pueda, es decir, si se ha pasado anteriormente por el modo “Firmador”), en caso contrario se visualiza la primera página del documento.

Funcionamiento #

Una vez configurados los diferentes parámetros de firmado en el archivo de configuración, se debe ejecutar el fichero ecoSignatureJWS_Desktop.exe en SO Windows.

A continuación se muestra el proceso general de firmado que depende de la activación o no de una serie de parámetros en el archivo de configuración.

  1. Si showPDF=1 activación de visualización de documento a firmar.

El visor nos permite interactuar con el posicionamiento y el lanzamiento de la firma. Así, el usuario lanza la firma a través de un botón posicionado en la parte superior izquierda de la pantalla en la visualización del documento, que al ser pulsado, crea la ventana de firma:

  • la ventana de firma puede ser redimensionada y desplazada por la página del documento seleccionada si el posicionamiento seleccionado es manual, y al clicar sobre la ella se lanza la firma,
  • en caso contrario, no se podrá realizar ninguna acción sobre ella.

Para los posicionamientos fijo y flotante el usuario lanza la firma pulsando sobre el botón mencionado anteriormente.

IMPORTANTE: Si se ha seleccionado un posicionamiento manual, al activar el posicionamiento del widget o ventana de firma se deshabilitan los cambios de página y de zoom.

  1. Aparición de la ventana de espera de firmado (con showEvents=1) y la ventana de introducción de firma de la aplicación ecoSignature JWS, ésta última puede mostrarse en diferentes tamaños/formatos dependiendo de los parámetros de configuración seleccionados anteriormente.


En la imagen, se muestra la ventana de espera, que permanece activa mientras se realiza el proceso de firmado, previamente configurada.
La ventana de espera de firmado muestra los eventos de firmado recibidos por parte de la aplicación ecoSignature JWS, es decir, el estado en el que se encuentra el proceso de firma en todo momento. Estos eventos son observados en el bloque de “Eventos recibidos”.

En la siguiente imagen podemos observar la ventana de introducción de firma de la aplicación:
captura_ventana_firma.jpg

En la ventana de introducción de firma se pueden realizar las siguientes operaciones:

  • Reiniciar: reinicio de la firma.
  • Cancelar: cancelación de la firma.
  • Firmar: firma del documento.

Los botones presentan eventos de teclado:

  • CTRL+R: reiniciar.
  • CTRL+C: cancelar
  • CTRL+A: firmar.

Nota: Éste es el comportamiento por defecto. Se permiten configurar las teclas en el archivo de configuración por defecto.

  1. Visualización del documento firmado: una vez realizada la firma se puede observar el documento pdf firmado en la ubicación seleccionada como descarga.

Además se puede visualizar el documento pdf firmado de dos maneras:

  • Si showPDFSigned=1: se abre el documento pdf firmado con el visualizador de la solución.
  • Si executeInLocal=1: se abre el documento con la con la aplicación asociada para ello (Adobe Acrobat Reader, Foxit Reader,…).

Nota: Este último parámetro es deshabilitado si se ha activado el anterior parámetro.

Datasheet o Panel de Terminalista #

La solución ecoSignature JWS Desktop puede presentar el funcionamiento como datasheet o panel de terminalista, es decir, se puede realizar la firma de un documento con n participantes o firmantes, gestionando dicho proceso un usuario o terminalista a través de una interface en pantalla previamente configurada.

La activación del datasheet por parte de la solución se consigue informando al menos uno de los parámetros “signatures-input-xml-b64” y “signatures-input-xml” expuestos anteriormente en la definición del archivo de configuración general (Ver Apartado 2.1.1. Parámetros generales de la solución).

El archivo de parametrización de la interface del terminalista es informada en el parámetro “interface-window” (Ver Apartado 2.1.1. Parámetros generales de la solución).

El panel de terminalista presenta la siguiente estructura (por defecto):

Se puede observar los siguientes elementos:

  • Título:
    • Introducción de un texto en el panel.
    • Configurable a través del archivo de configuración de interface.
  • Listado de firmantes:
    • Siempre visible en el panel.
    • Presenta una lista con los firmantes que intervienen en el proceso de firmado definidos en el archivo de configuración XML.

Dichos firmantes pueden ser:

  • Procesables por la solución.
  • Externos a la solución, solo se visualizan en la lista de firmantes.

Nota: El tag “signed” de un firmante controla si es procesable o externo a la solución.

  • Configurable a través del archivo de configuración de interface.
  • Visor de documento a firmar:
    • Presenta el documento a firmar definido en el archivo de configuración XML.
    • Visualización del documento a página completa.
    • Se actualiza el documento tras la aceptación de las diferentes firmas..
    • Configurable a través del archivo de configuración de interface.
  • Imágenes:
    • Visualización de imágenes en el panel definidas en el archivo de configuración XML.
    • Relacionadas con cada ítem del listado (usuario firmante) seleccionado.
    • Configurable a través del archivo de configuración de interface.

Nota: En el ejemplo se muestran dos imágenes (imagen facial y de la rúbrica) asociadas a cada usuario firmante seleccionado de la lista de firmantes.

  • Botones:
    • Suprimir Operación:
      • Cancelación del proceso de firmado.
      • Configurable a través del archivo de configuración XML.
      • Cuando es pulsado se muestra un aviso preguntando si se quiere cancelar la operación.
    • Firmar en papel:
      • Impresión en papel.
      • Configurable a través del archivo de configuración XML.
      • Cuando es pulsado se muestra un aviso indicando que todos los firmantes deben firmar en papel preguntando si se desea continuar.
    • Ver PDF:
      • Visualiza el documento en el visor por defecto instalado en el PC.
      • Configurable a través del archivo de configuración XML.
      • Cuando es pulsado se visualiza el documento temporal presente en el panel.
  • Posponer/Terminar:
    • Posposición o finalización del proceso de firmado.
    • Configurable a través del archivo de configuración XML.

Nota

  • Siempre está visible y habilitado en el panel una vez que todos los firmantes han firmado (teniendo en cuenta tanto a firmantes procesables como a firmantes externos a la solución).

Nota:

  • Cuando un usuario ha firmado se representa en el panel con el siguiente icono:
  • Cuando un usuario debe firmar obligatoriamente se representa en el panel con el siguiente icono:

El panel del terminalista presenta los siguientes eventos de teclado:

  • Selección de firmante de la lista de firmantes:
    • A través de las teclas de desplazamiento de arriba y abajo.
  • Lanzamiento de firma:
    • Enter o retorno de carro.
  • Botones:
    • Suprimir Operación: SHIFT+A.
    • Firmar en papel: SHIFT+P.
    • Ver PDF: SHIFT+V.
    • Posponer/Terminar: SHIFT+F.

Nota: Éste es el comportamiento por defecto. Se permiten configurar las teclas en el archivo de configuración de la interface.

Nota: Los eventos de botones solamente están habilitados cuando el botón correspondiente es visible en el panel y está habilitado.

  • Salida de la aplicación:
    • Tecla escape.

Nota: Mismo comportamiento que si se pulsa el botón de “Suprimir Operación”.

  • Forzado de salida de la aplicación:
    • CTRL+SHIFT+Q.
  • Eliminación de modo de solución siempre visible en pantalla (Always on top):
    • CTRL+Q.
  • Centrado del puntero de mouse en la pantalla principal:
    • Barra espaciadora.

Nota: Este comportamiento solo aplica cuando el proceso de firmado se realiza sobre una Stylus y el modo mouse está activado.

Nota: En el panel terminalista se pueden presentar ventanas de diálogos donde se muestran los errores obtenidos en un proceso de firmado.

IMPORTANTE: A tener en cuenta:

  • Se puede seleccionar un usuario firmante de la lista de firmantes con un click.
  • Se puede lanzar la firma haciendo un doble click en el usuario firmante seleccionado de la lista de firmantes.
  • Para el lanzamiento de una firma el usuario firmante seleccionado de la lista de firmantes no ha debido firmar y ser procesable por la solución (no externo).

Si se ha optado por realizar un proceso de firmado a través de un dispositivo de captura biométrica DTU, se visualiza en dicho dispositivo el documento a firmar.

En el dispositivo de captura biométrica DTU se puede realizar las siguientes funciones a través de su barra de herramientas (parte inferior de la pantalla):

  • Lanzamiento de firma o finalización de proceso de firmado:
    • Configurable a través del archivo de configuración de interface.
  • Navegación por las diferentes páginas del documento a firmar:
  • Zoom del documento a firmar:
    • Configurable a través del archivo de configuración de interface.

Nota: El valor mínimo de zoom siempre es el ajuste de página.

El valor máximo de zoom siempre es dos veces el ancho de página.

IMPORTANTE: Para comprobar el funcionamiento del datasheet o panel del terminalista, basta con sustituir el fichero “datasheet/ecoSignatureJWS.ini” por el de la raíz. Para probar con un dispositivo u otro modificar el parámetro “signatures-input-xml” de dicho fichero.

Fichero de configuración Interface #

El fichero de configuración de interface del terminalista es informado a través del parámetro “interface-window” en el archivo de configuración general.

IMPORTANTE: Si el parámetro “interface-window” no es informado en el archivo de configuración general, la interface se genera con unos valores por defecto.

El fichero de configuración de interface debe estar codificado en UTF-8 y presentar la siguiente estructura:

paramName1=value1
paramName2=value2
….
….
paramNameN=valueN

IMPORTANTE: Un parámetro por línea.

A continuación se presentan todos los parámetros configurables a través de este archivo.

IMPORTANTE: Para parámetros relacionados con el color, es decir, parámetros con «-background», «-foreground» y «-border-color» el valor debe ser «#RRGGBB» siendo RGB un número hexadecimal.

Para parámetros booleanos, usar «1» para activar y «0» para desactivar.

Para parámetros relacionados con tamaños, es decir, parámetros con «-x», «-y», «-width», «-height» y «-border-thickness», el valor puede expresarse como:

  • valor entero (en pixeles):

Ejemplo:

title-x=120
title-border-thickness=3
  • en porcentaje (en relación al tamaño de la pantalla):

Ejemplo:

title-width=30%
title-height=10%

Para parámetros relacionados con fuentes de texto («-font»):

  • Nombre de fuente («-font-name»): nombre de la fuente a utilizar
  • Estilo de fuente («-font-style»): valor entero cuyo valor puede ser:
    • 0: PLAIN
    • 1: BOLD
    • 2: ITALIC
    • 3: BOLD+ITALIC
  • Tamaño de fuente («-font-size»): valor entero
Parámetros generales #

A continuación se describen los parámetros generales de la interface.

Param NameValorValor por defectoComportamiento
always-on-topBooleano0Ficha siempre visible en pantalla..
fullscreenBooleano0Visualización en modo full screen.
general-backgroundString#FFFFFFColor de fondo del panel de datasheet.
Parámetros título #

Estos parámetros controlan la aparición y formato de un texto en la pantalla del terminalista.

Param NameValorValor por defectoComportamiento
title-activateBooleano1Activar título en panel.
title-xEntero3%Posición x en pantalla.
title-yEntero4%Posición y en pantalla.
title-widthEntero25%Ancho en pantalla.
title-heightEntero15%Alto en pantalla.
title-border-colorString#33E9FFColor del borde.
title-border-thicknessEntero0Ancho del borde.
title-font-labelStringFirma en tabletaTexto.
title-font-nameStringArial BlackNombre de fuente.
title-font-styleEntero2Estilo de fuente.
title-font-sizeEntero34Tamaño de fuente.
title-backgroundString#FFFFFFColor de fondo.
title-foregroundString#E34040Color de texto.
Parámetros de listado de firmantes #

Estos parámetros controlan el formato del listado de firmantes en la pantalla del terminalista.

Param NameValorValor por defectoComportamiento
Listado
list-xEntero2%Posición x en pantalla.
list-yEntero30%Posición y en pantalla.
list-widthEntero25%Ancho en pantalla.
list-heightEntero40%Alto en pantalla.
list-border-colorString#33E9FFColor del borde.
list-border-thicknessEntero2Ancho del borde.
list-backgroundString#FFFFFFColor de fondo.
Cabecera (head)
list-head-backgroundString#373737Color de fondo.
list-head-foregroundString#FFFFFFColor de texto.
list-head-font-nameStringArial BlackNombre de fuente.
list-head-font-styleEntero1Estilo de fuente.
list-head-font-sizeEntero14Tamaño de fuente.
list-head-heightEntero24Alto.
list-head-labelStringFirmanteTexto.
Celda de listado (item)
list-item-heightEntero25Alto.
list-item-label-to-upper-caseBooleano1Texto en mayúsculas
list-item-font-nameStringArialNombre de fuente.
list-item-font-styleEntero0Estilo de fuente.
list-item-font-sizeEntero12Tamaño de fuente.
list-item-selected-backgroundString#3447CE5Color de fondo de ítem seleccionado.
list-item-selected-foregroundString#FFFFFFColor de texto de ítem seleccionado.
list-item-background-oddString#E6E6E6Color de fondo de ítem par no seleccionado.
list-item-background-evenString#F0F0F0Color de fondo de ítem impar no seleccionado.
list-item-foregroundString#000000Color de texto de ítem no seleccionado.
list-item-signed-backgroundString#BBBBBBColor de fondo de ítem firmado.
list-item-signed-foregroundString#FFFFFFColor de texto de ítem firmado.
list-item-extern-backgroundString#EC7063Color de fondo de ítem externo.
list-item-extern-foregroundString#FFFFFFColor de texto de ítem externo.
Parámetros de visor de documento a firmar #

Estos parámetros controlan la aparición y formato del visualizador de documento en la pantalla del terminalista.

Param NameValorValor por defectoComportamiento
pdf-activateBooleano1Activar visor de documento a firmar en panel.
pdf-xEntero30%Posición x en pantalla.
pdf-yEntero7%Posición y en pantalla.
pdf-widthEntero38%Ancho en pantalla.
pdf-heightEntero80%Alto en pantalla.
pdf-border-colorString#33E9FFColor del borde.
pdf-border-thicknessEntero2Ancho del borde.
pdf-backgroundString#EEEEEEColor de fondo.
pdf-load-foregroundString#FFFFFFColor de texto en recarga de página.
pdf-load-font-nameStringArialNombre de fuente en recarga de página.
pdf-load-font-styleEntero1Estilo de fuente en recarga de página.
pdf-load-font-sizeEntero16Tamaño de fuente en recarga de página.
Parámetros de imágenes #

Estos parámetros controlan la aparición y formato de imágenes en la pantalla del terminalista.

Param NameValorValor por defectoComportamiento
Imagen 1
img1-activateBooleano1Activar imagen 1 en panel.
img1-xEntero79%Posición x en pantalla.
img1-yEntero25%Posición y en pantalla.
img1-widthEntero120Ancho en pantalla.
img1-heightEntero180Alto en pantalla.
img1-border-colorString#33E9FFColor del borde.
img1-border-thicknessEntero1Ancho del borde.
img1-backgroundString#FFFFFFColor de fondo.
Imagen 2
img2-activateBooleano1Activar imagen 2 en panel.
img2-xEntero70%Posición x en pantalla.
img2-yEntero55%Posición y en pantalla.
img2-widthEntero360Ancho en pantalla.
img2-heightEntero90Alto en pantalla.
img2-border-colorString#33E9FFColor del borde.
img2-border-thicknessEntero1Ancho del borde.
img2-backgroundString#FFFFFFColor de fondo.
Parámetros de botones #

Estos parámetros controlan el formato de los botones en la pantalla del terminalista.

Param NameValorValor por defectoComportamiento
Botón cancelarCancelar operación
button-cancel-xEntero2%Posición x en pantalla.
button-cancel-yEntero90%Posición y en pantalla.
button-cancel-widthEntero14%Ancho en pantalla.
button-cancel-heightEntero5%Alto en pantalla.
button-cancel-padding-topEntero0Padding superior.
button-cancel-padding-leftEntero5Padding izquierdo.
button-cancel-padding-bottomEntero0Padding inferior.
button-cancel-padding-rightEntero0Padding derecho.
button-cancel-labelStringSuprimir OperaciónTexto en botón.
button-cancel-backgroundString#F7F7F7Color de fondo.
button-cancel-foregroundString#000000Color de texto.
button-cancel-font-nameStringArial BlackNombre de fuente.
button-cancel-font-styleEntero1Estilo de fuente.
button-cancel-font-sizeEntero12Tamaño de fuente.
button-cancel-border-colorString#33E9FFColor del borde.
button-cancel-border-thicknessEntero1Ancho del borde.
button-cancel-keyboardEntero65 (=A)Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter).
Botón ver PDFVer PDF
button-showpdf-xEntero86%Posición x en pantalla.
button-showpdf-yEntero84%Posición y en pantalla.
button-showpdf-widthEntero9%Ancho en pantalla.
button-showpdf-heightEntero5%Alto en pantalla.
button-showpdf-padding-topEntero0Padding superior.
button-showpdf-padding-leftEntero5Padding izquierdo.
button-showpdf-padding-bottomEntero0Padding inferior.
button-showpdf-padding-rightEntero0Padding derecho.
button-showpdf-labelStringVer PDFTexto en botón.
button-showpdf-backgroundString#F7F7F7Color de fondo.
button-showpdf-foregroundString#000000Color de texto.
button-showpdf-font-nameStringArial BlackNombre de fuente.
button-showpdf-font-styleEntero1Estilo de fuente.
button-showpdf-font-sizeEntero12Tamaño de fuente.
button-showpdf-border-colorString#33E9FFColor del borde.
button-showpdf-border-thicknessEntero1Ancho del borde.
button-showpdf-keyboardEntero86 (=V)Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter).
Botón firmar en papelFirmar en papel
button-signedpaper-xEntero20%Posición x en pantalla.
button-signedpaper-yEntero90%Posición y en pantalla.
button-signedpaper-widthEntero14%Ancho en pantalla.
button-signedpaper-heightEntero5%Alto en pantalla.
button-signedpaper-padding-topEntero0Padding superior.
button-signedpaper-padding-leftEntero5Padding izquierdo.
button-signedpaper-padding-bottomEntero0Padding inferior.
button-signedpaper-padding-rightEntero0Padding derecho.
button-signedpaper-labelStringFirmar en papelTexto en botón.
button-signedpaper-backgroundString#F7F7F7Color de fondo.
button-signedpaper-foregroundString#000000Color de texto.
button-signedpaper-font-nameStringArial BlackNombre de fuente.
button-signedpaper-font-styleEntero1Estilo de fuente.
button-signedpaper-font-sizeEntero12Tamaño de fuente.
button-signedpaper-border-colorString#33E9FFColor del borde.
button-signedpaper-border-thicknessEntero1Ancho del borde.
button-signedpaper-keyboardEntero80 (=P)Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter).
Botón terminarFinalizar operación
button-finish-xEntero86%Posición x en pantalla.
button-finish-yEntero90%Posición y en pantalla.
button-finish-widthEntero9%Ancho en pantalla.
button-finish-heightEntero5%Alto en pantalla.
button-finish-padding-topEntero0Padding superior.
button-finish-padding-leftEntero5Padding izquierdo.
button-finish-padding-bottomEntero0Padding inferior.
button-finish-padding-rightEntero0Padding derecho.
button-finish-labelStringPosponerTexto en botón.
button-finish-label-all-signaturesStringTerminarTexto en botón cuando se han introducido todas las firmas.
button-finish-backgroundString#F7F7F7Color de fondo.
button-finish-foregroundString#000000Color de texto.
button-finish-font-nameStringArial BlackNombre de fuente.
button-finish-font-styleEntero1Estilo de fuente.
button-finish-font-sizeEntero12Tamaño de fuente.
button-finish-border-colorString#33E9FFColor del borde.
button-finish-border-thicknessEntero1Ancho del borde.
button-finish-keyboardEntero70 (=F)Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter).

Nota: El valor decimal del carácter para los eventos de teclado puede obtenerse en www.asciitable.com.

Parámetros de eventos #

Estos parámetros controlan el comportamiento del panel del terminalista en un proceso de firmado.

Param NameValorValor por defectoComportamiento
list-event-first-item-not-signed-selectedBooleano1Seleccionar primer firmante del listado al iniciar la aplicación que no haya firmado.
list-event-just-a-signer-launch-signatureBooleano1Lanzar firma automáticamente al iniciar la aplicación cuando solo hay un firmante pendiente de firmar.
list-event-close-all-signaturesBooleano0Terminar proceso cuando se han introducido todas las firmas o han firmado todos los participantes.
button-signedpaper-event-launch-printer-defaultBooleano0Lanzar la impresora por defecto al pulsar el botón de imprimir en papel.
buttons-selected-backgroundString#B8E6FBColor de fondo de los botones cuando son seleccionados.
send-data-event-not-signersBooleano0Enviar o guardar datos (documento firmado, xml, …) en las diferentes salidas (estándar, servicio, …) cuando no existen participantes pendientes de firma al entrar en la aplicación.
Parámetros DTU #

Estos parámetros controlan el comportamiento del dispositivo de captura biométrica DTU en un proceso de firmado si se ha optado por dicho dispositivo.

Param NameValorValor por defectoComportamiento
dtu-num-monitorEntero1Número de monitor donde se encuentra la DTU.
dtu-view-zoomStringpage-widthZoom inicial del visor de documento en la DTU.
dtu-toolbar-heightEntero120Tamaño en pixeles de la barra de herramientas en la DTU.
dtu-toolbar-button-action-activateBooleano1Activación en la barra de herramientos del botón de acción (firmar o salir) en la DTU.
dtu-return-mouse-main-screen-keyboard32 (= Barra espaciadora)Evento de teclado carácter, donde carácter es el valor en decimal del ASCII (carácter).

Nota: El valor decimal del carácter para los eventos de teclado puede obtenerse en www.asciitable.com.

Nota: En el parámetro “dtu-view-zoom” se permite:

  • cualquier valor entero positivo.
  • las cadenas de texto:
    • page-width: anchura de la página
    • page-fit: ajuste de página
    • page-actual: tamaño real de la página

El valor mínimo de zoom siempre es el ajuste de página.

El valor máximo de zoom siempre es dos veces el ancho de página.

Fichero de configuración XML #

El fichero de configuración XML nos permite parametrizar el proceso de firma informando principalmente:

  • del documento a firmar.
  • de los participantes en dicho proceso.

El fichero de configuración XML debe estar codificado en UTF-8 y presentar la siguiente estructura:

<?xml version="1.0" encoding="UTF-8"?>
<Configuracion>
<General>
<param>value</param>
……...
</General>
<Firmantes>
<Firmante>
<param>value</param>
……...
</Firmante>
<Firmante>
<param>value</param>
……...
</Firmante>
……...
</Firmantes>
</Configuracion>

6.2.1. Tag General

En esta sección se configura el comportamiento general del proceso de firmado.

A continuación se enumeran los tag’s disponibles de configuración:

  • Entrada de documento:
    • <pdfB64> (String): Documento PDF a firmar en Base64.
    • <pdfUrl> (String): Path o url de entrada de donde se coge el documento PDF a firmar.

Nota: Tiene preferencia el tag <pdfB64> sobre el <pdfUrl>.

IMPORTANTE: Para el correcto lanzamiento del proceso de firma se debe informar  al menos de uno de los dos parámetros.

  • <password> (String): Contraseña de documento.
  • <certificate> (Booleano): Firma PDF Certificada (MDP) para el documento PDF de salida.
  • Guardado de documento PDF:
    • <savePDFPath> (String): Ruta donde se guarda en local el documento pdf firmado.

Nota: Si está vacío, la ruta por defecto será la de temporales.

  • <savePDFName> (String): Nombre (incluyendo la extensión .pdf) para el fichero que se va a generar/guardar en local.

Nota: Si no se incluye, el nombre por defecto será «PDF_Signed.pdf». 

IMPORTANTE: La ruta de guardado de PDF la componen los tag’s <savePDFPath> y <savePDFName>.

A tener en cuenta:

  • para la formación de la ruta de guardado de PDF se debe informar al menos uno de los dos parámetros.
  • si no se informa ningún parámetro se sobreescribe el fichero original.
  • <returnPDFB64> (Booleano): Devolución de PDF en Base64 a través de la salida estándar.
  • Guardado de XML:
    • <saveXMLPath> (String): Ruta donde se guarda en local el XML final del proceso de firma.

Nota: Si está vacío, la ruta por defecto será la de temporales.

  • <saveXMLName> (String): Nombre (incluyendo la extensión .xml) para el fichero que se va a generar/guardar en local.

Nota: Si no se incluye, el nombre por defecto será «XML_Signed.pdf». 

IMPORTANTE: La ruta de guardado de XML la componen los tag’s <saveXMLPath> y <saveXMLName>.

A tener en cuenta:

  • para la formación de la ruta de guardado de XML se debe informar al menos uno de los dos parámetros.
  • si no se informa ningún parámetro se sobreescribe el fichero original.  
  • <returnXMLB64> (Booleano): Devolución de XML en Base64 a través de la salida estándar.
  • Configuración de botones:
    • <showCancelButton> (Booleano): Botón de cancelación de proceso.
    • <showViewPDFButton> (Booleano): Botón ver PDF.
    • <showSignPaperButton> (Booleano): Botón de firmar en papel.
    • <showFinishButton> (Booleano): Botón de posponer/terminar.
  • <xml-date-format-signed> (String): Formato de tag «timeStamp». Uso de estilos de formatos o patrones proporcionados por la clase SimpleDateFormat de Java.
  • Relacionados con parámetros de configuración de la firma (parámetros JNLP).

Nota: Para crear el tag del archivo de configuración XML en relación a los parámetros del archivo de configuración del .ini se debe realizar la siguiente transformación:

parámetro JNLP    tag XML

   param=value        <param>value</param>

Ejemplo:

tsp-activate=0 <tsp-activate>0</tsp-activate>

Se permiten todos los parámetros definidos en el Apartado 2.1.2. Parámetros JNLP (Configuración de la firma) exceptuando:

  • Entrada y salidas del documento PDF (Apartado 2.1.2.1):
    • Pdf-Content
    • remotePdf-url
    • pdfPassword
  • Certificados de firma y cifrado (Apartado 2.1.2.2):
    • certificatePDF
  • Ningún parámetro de Descarga y ejecución en local del documento firmado (Apartado 2.1.2.8).
  • Ningún parámetro de Descarga de JPG del grafo en local del documento firmado (Apartado 2.1.2.9).
Tag Firmantes #

En esta sección se configura el comportamiento de cada firmante.

Se pueden introducir n firmantes con la estructura:

<Firmante>
<param>value</param>
<param>value</param>
<param>value</param>
……...
</Firmante>

A continuación se enumeran los tag’s disponibles de configuración para cada firmante:

  • <item> (String): Literal que aparece en el listado de firmantes para cada firmante.
  • <img1B64> (String): Imagen 1 que aparece en el panel del terminalista al seleccionar un item del listado de firmantes.
  • <img2B64> (String): Imagen 2 que aparece en el panel del terminalista al seleccionar un item del listado de firmantes.
  • <signed> (Entero): Indica si el usuario firmante ha firmado.

Nota: La solución solo procesa los firmantes cuya propiedad no esté definida, esté vacía o presente los valores 0 (no firmado) y 1 (firmado).

El resto de valores no son procesables por la solución (externos). Si el valor es externo y finaliza en “1” muestra el icono de firmado en el ítem de la lista de firmantes correspondiente.

  • <timeStamp> (String): Indica la fecha y hora en el que el usuario firmante ha firmado.

Nota: Se puede dar formato a través del tag “xml-date-format-signed”.

  • <idSignatory> (String): Identificador de firmante.

Nota: Debe ser único para cada firmante, por ejemplo el DNI. Si existe un usuario con más de una firma a introducir (mismo “idSignatory”), el proceso de firma no se puede posponer o finalizar hasta que el usuario haya introducido todas las firmas.

  • <mandatoryToPostpone> (Booleano): Indica si la firma de un usuario es obligatoria para posponer o finalizar el proceso de firmado.
  • Relacionados con parámetros de configuración de la firma (parámetros JNLP):

Se permiten exclusivamente los parámetros definidos en el Apartado 2.1.2. Parámetros JNLP (Configuración de la firma) siguientes:

  • Entrada y salidas del documento PDF (Apartado 2.1.2.1):
    • <widget-Textcustom>
    • <author>
    • <reason>
    • <contact>
    • <location>
  • Certificados de firma y cifrado (Apartado 2.1.2.2):
    • <cert-origin>
    • <cert-origin-ca>
    • <pfx-b64>
    • <pfx-url>
    • <pfx-pw>
    • <Chain-CA-b64>
    • <enc-key-b64>
    • <tsp-activate>
    • <tsp-url>
    • <tsp-user>
    • <tsp-password>
    • <ocsp-activate>
    • <ocsp-url>
    • <ocsp-user>
    • <ocsp-password>
  • Ubicación del área de firma en el documento (Apartado 2.1.2.3):
    • <widget-Ancho>
    • <widget-Alto>
    • <widget-Page>
    • <widget-X>
    • <widget-Y>
    • <widget-Transparent-activate>
    • <widget-autoPos-activate>
    • <widget-autoPos-text>
    • <widget-autoPos-desfaseX>
    • <widget-autoPos-desfaseY>
    • <PDFEmptySig_enable>
    • <PDFEmptySig_fieldname>
  • Dispositivo de captura biométrica (Apartado 2.1.2.4):
    • <ebp-activate>
    • <ebp-use-internal>
    • <ebp-url>
    • <showEBP>
    • <noButtonEBP>
    • <ebp-variables>
    • <ebp-initial-activate>
    • <ebp-initial-url>
    • <ebp-initial-variables>
  • Modo solo firma biometría (Apartado 2.1.2.5.):
    • <jsigMode>
    • <jsigJPG>
  • Para pasar variables a las plantillas o ebp’s se dispone de los tag’s <ebp-initial-textos> y <ebp-textos> con la siguiente estructura:
    • Plantilla o ebp inicial:
                                 <ebp-initial-textos>
    <nombreVariable>valorVariable</nombreVariable>
    <nombreVariable>valorVariable</nombreVariable>   
.....
    .....
    </ebp-initial-textos>
  • Plantilla o ebp de introducción de firma:
                                <ebp-textos>
    <nombreVariable>valorVariable</nombreVariable>
    <nombreVariable>valorVariable</nombreVariable>
    .....
    .....
    </ebp-textos>

Nota: Para los tags <ebp-textos> y <ebp-initial-textos>, se pueden añadir n tags hijos con la estructura <nombreVariable>valorVariable </nombreVariable> donde el nombreVariable debe coincidir con alguna de las variables definidas en los ebp’s o plantillas.

Si se informan estas tags es necesario ponerlos como última parte de cada firmante, ya que el xml se procesa secuencialmente de principio a fin y se ha podido introducir en un firmante parámetros jnlp relacionados con los ebp’s.

Generación de parametrización de firma #

Los parámetros JNLP expuestos a lo largo del documento son los que parametrizan un proceso de firmado.

Estos parámetros pueden informarse en el fichero de configuración por defecto (ecoSignatureJWS.ini) o en el archivo de configuración XML del panel del terminalista.

Así podemos definir una configuración de firma en tres niveles:

  • Nivel 0 o configuración general, a través del fichero de configuración por defecto (ecoSignatureJWS.ini).
  • Nivel 1 o configuración específica de firma, a través del fichero de configuración XML del panel del terminalista en el tag <General>.
  • Nivel 2 o configuración particular de firma (para cada firmante), a través del fichero de configuración XML del panel del terminalista en el tag <Firmante>.

A continuación se detalla el proceso de obtención de la parametrización resultante a partir de estos tres niveles:

  1. Se parte de la base de la configuración de nivel 0, es decir, de las parametrizaciones obtenidas del fichero de configuración por defecto (ecoSignatureJWS.ini).
  2. Se sobrescribe o se complementa la parametrización general con la parametrización específica de la firma configurada en el fichero de configuración XML del panel del terminalista en el tag <General>.
  3. Se sobrescribe o se complementa la parametrización resultante de las parametrizaciones general y específica con la parametrización particular de la firma (para cada firmante) configurada en el fichero de configuración XML del panel del terminalista en el tag <Firmante>.

Llamada externa #

La solución ecoSignature JWS Desktop puede ser llamada externamente desde consola o una aplicación tercera siguiendo el patrón:

ecoSignatureJWS_Desktop[.exe] argumento1 argumento2 ….  argumentoN

Los argumentos son opcionales y pueden presentarse n argumentos, éstos pueden ser:

  • La ruta absoluta de un nuevo fichero de configuración que contiene n parámetros de configuración precedido por “ini=”. (Ver Apartado 7.1. Fichero de configuración).

Ejemplo:

ecoSignatureJWS_Desktop[.exe] ini=nuevaConfiguracion.ini

  • Cualquier parámetro de configuración como argumento definido anteriormente   (Ver Apartado 2.1. Parámetros de configuración) siguiendo la siguiente estructura:

paramName=value

Ejemplo:

ecoSignatureJWS_Desktop[.exe] widget-Page=1 widget-X=300 widget-Y=175

Nota: Recordar que la solución ecoSignature JWS Desktop dispone de un fichero de configuración por defecto (ecoSignatureJWS.ini), que es leído y cargado al lanzar la solución.

IMPORTANTE: Si desde la llamada externa se informa de un nuevo fichero de configuración, éste es leído y cargado en la solución, sobreescribiendo o complementando al fichero de configuración por defecto. 

De la misma manera sucede con los argumentos pasados en la llamada, se procesan en el orden introducidos siempre de derecha a izquierda.

Los parámetros relacionados con el datasheet o panel del terminalista son los últimos en procesarse, independientemente del orden introducidos.

IMPORTANTE: A tener en cuenta:

  • Si se necesita pasar un espacio en blanco en algún argumento:

Windows:

  • se debe reemplazar éste por la secuencia %20:
ebp-variables=Titulo=Solicitud%20de%20Informe
  • poner el argumento entre comillas dobles:
“ebp-variables=Titulo=Solicitud de Informe”

Linux:

  • se debe reemplazar éste por la secuencia %20:
ebp-variables=Titulo=Solicitud%20de%20Informe
  • escapar con el caracter \:
ebp-variables=Titulo=Solicitud\ de\ Informe
  • poner el argumento entre comillas simples:
‘ebp-variables=Titulo=Solicitud de Informe’
  • Si se necesita escapar caracteres en línea de comandos de Windows:

En la línea de comandos de Windows hay ciertos caracteres que tienen un comportamiento especial:    \ & ^ | > <

Cuando se necesite escribirlos como texto simple debemos anteponer el carácter de escape ^. Entonces, cada uno de los especificados anteriormente, resultan: ^\ ^& ^^ ^| ^> ^<. También se pueden escapar poniendo el argumento entre comillas dobles.

  • Si se realiza el lanzamiento externo desde un archivo .bat (Windows) introducir como primera línea chcp 1252 (codificación a Windows 1252) y guardarlo con codificación ANSI para evitar posibles problemas de codificación en el visualizado de las plantillas o ebp’s tanto en la pantalla del PC como en la tableta.

Ejemplo:

chcp 1252

C:\ecoSignatureJWS\pecoSignatureJWS_Desktop[.exe] "ebp-variables=Titulo= LOPD Ley Orgánica de Protección de Datos|||Subtitulo=Firma de consentimiento de cesión de datos|||Nombre=Juan Rodriguez Blasco|||AreaFirma=Confirmo que los datos consignados en este formulario son ciertos y que tengo autorización bastante para la firma de esta solicitud. Acepto y firmo:|||LOPD=De acuerdo a la normativa vigente sobre LOPD, Ud. acepta que sus datos personales sean gestionados por nuestra organización para mejorar la calidad del servicio. Estos datos no serán facilitados a organizaciones fuera de nuestro grupo corporativo sin su aceptación expresa"

PAUSE

Fichero de configuración #

El fichero de configuración es un argumento opcional en la llamada externa a la solución ecoSignature JWS Desktop.

Si se pasa como argumento, este fichero de texto debe estar codificado en UTF-8 y presentar la siguiente estructura:

paramName1=value1
paramName2=value2
….
….
paramNameN=valueN

IMPORTANTE: Un parámetro por línea.

A continuación se muestra un ejemplo del contenido del fichero de configuración:

remotePdf-url=../ecoSignatureJWS.pdf
widget-Page=1
widget-X=300
widget-Y=175
typeTablet=1
ebp-activate=1
ebp-use-internal=0
ebp-url=../edatalia_sinBotones430.ebp
showEBP=1
noButtonEBP=1
ebp-variables=Titulo=Solicitud de Informe Sanitario|||Subtitulo=Nuevas instalaciones de abastecimiento|||Nombre=Juan Luis Rodríguez Blasco|||AreaFirma=Confirmo que los datos consignados en este formulario son ciertos y que tengo autorización bastante para la firma de esta solicitud. Acepto y firmo:|||LOPD=De acuerdo a la normativa vigente sobre LOPD….
jwsWidth=600
jwsHeight=360
jwsPosX=360
jwsPosY=184
executeInLocal=1

IMPORTANTE: Los diferentes parámetros a utilizar para la parametrización del proceso de firma se encuentran en el Apartado 2.1. Parámetros de configuración.

Salida de ecoSignature JWS Desktop #

La solución ecoSignature JWS Desktop presenta dos salidas en su proceso que pueden ser parseadas:

  • Salida estándar del proceso donde se muestra el log interno de la aplicación.
  • Salida de error donde se muestra el posible error al operar con la solución.

Códigos de salida #

La solución ecoSignature JWS Desktop devuelve una serie de códigos de respuesta a la llamada externa de la aplicación. A continuación se enumeran los posibles códigos devueltos:

  • 42: Salida de proceso de firmado correcto por posposición desde el datasheet o panel del terminalista.
  • 41: Salida de proceso de firmado por impresión de documento a firmar desde el datasheet o panel del terminalista.
  • 40: Salida de proceso de firmado correcto por finalización desde el datasheet o panel del terminalista.
  • 0: Documento firmado correctamente.
  • -1: Error al firmar documento. (Ver consola de Java, log de Java o log de la solución).
  • -2: El proceso de firma ha sido cancelado.
  • -3: Error en Web Socket.
  • -4: La solución ya se encuentra en ejecución.
  • -5: Error en configuración de parámetros antes de lanzar el proceso de firmado.
  • -6: El fichero jnlp generado para el lanzamiento de la solución excede de 1Mb.
  • -7: Error al lanzar el fichero jnlp generado.
  • -8: Sistema operativo no soportado.
  • -9: Error general de firmado.
  • -10: Error de licencia.
  • -11: No hay ningún dispositivo stylus conectado.
  • -12: Ha realizado una firma sin suficientes puntos (parámetro Min_Points).
  • -13: La introducción de la firma ha excedido su tiempo máximo (parámetro max-sig-time).
  • -14: No hay tableta wacom conectada.
  • -15: Ya existe una ventana de firma mostrándose en el lado cliente.
  • -16: No hay certificado de firma en Windows disponible.
  • -17: No se ha podido acceder a la llave privada del certificado de Windows.
  • -20: No se ha encontrado el fichero de firma ecobiometric.jar en la ruta indicada.
  • -21: No se ha detectado DTU automáticamente.
  • -30: El proceso de firma ha sido cancelado desde el visualizador.
  • -40: El proceso de firma se ha cancelado desde el datasheet o panel de terminalista.
  • -41: Error en lectura de fichero de configuración XML de datasheet o panel del terminalista.
  • -42: Error de configuración de fichero de configuración XML de datasheet o panel del terminalista.     
  • -43: Error general en procesamiento del fichero de configuración XML de datasheet o panel del terminalista.
  • -44: Error específico en procesamiento del fichero de configuración XML de datasheet o panel del terminalista.
  • -45: Error de salida forzada de datasheet o panel del terminalista.
  • -46: Error de salida forzada de datasheet o panel del terminalista cuando no existen participantes pendientes de firma al entrar en la aplicación.
  • -60: Error en llamada por protocolo.
  • -70: Error en descarga de fichero.

IMPORTANTE: Los códigos de error (valores negativos de salida) son devueltos en la salida de error del proceso.

Nota: En base 64 la limitación la impone la tecnología JNLP (Java Network Launching Protocol) y es de 1Mb para el fichero generado. (Tamaño del pdf binario aproximadamente de tamaño máximo de 750Kb).

Lanzamiento desde ecoSignature Launch From PC #

La solución ecoSignature JWS Desktop puede ser lanzada desde la solución ecoSignature Launch from PC. En este tipo de lanzamiento se debe tener en cuenta que la configuración presente en el archivo de configuración por defecto (ecoSignatureJWS.ini) es sobreescrita o complementada por la llamada externa realizada por la solución ecoSignature Launch from PC:

  • Se parametriza o se sobreescribe el parámetro relacionado con la comunicación entre el cliente (Desktop) y ecoSignatureJWS, la comunicación se realiza a través de un Web Socket (“externalWebSocket” y “externalWebSocket-url”). 
  • Se desactiva o sobreescribe el parámetro relacionado con mostrar las alertas en la aplicación (“showAlert”).
  • Se anulan o eliminan los valores presentes en los parámetros relacionados con el datasheet o panel del terminalista (“signatures-input-xml-b64” y “signatures-input-xml”).
  • Se parametriza o sobreescribe el parámetro relacionado con el documento a firmar (“remotePdf-url”).
  • Se anula el parámetro relacionado con el documento a firmar en base 64 (“Pdf-Content”).
  • Se parametrizan o se sobreescriben los parámetros relacionados con el guardado del documento a firmar (“saveInLocalPath” y “saveInLocalName”).
  • En el caso de devolución de imagen del grafo en base 64 se parametrizan o se sobreescriben los parámetros relacionados con la descarga de JPG del grafo del documento firmado (“saveImgInLocal”, “saveImgInLocalPath” y “saveImgInLocalName”).

Llamada por protocolo #

La solución ecoSignature JWS Desktop puede ser llamada por protocolo desde un

navegador web con esquema de url del tipo:

ecosignaturejwsdesktop://?param1=value1&param2=value2&….&paramN=valueN

Los parámetros permitidos en la llamada son:

  • “ini”: url de fichero de configuración .ini.

ecosignaturejwsdesktop://?ini=http(s)://…..(fichero ini en UTF-8)

  • “iniB64”: base 64l de fichero de configuración .ini.

ecosignaturejwsdesktop://?iniB64=Base64(fichero ini en UTF-8)

  • “id”: identificador único de proceso para comunicación.

ecosignaturejwsdesktop://?……..&id=……..

IMPORTANTE: Para realizar un lanzamiento por protocolo con intermediario (comunicación entre página web y solución) se debe informar un identificador de proceso (parámetro “id”) en la url.

Ejemplos:

ecosignaturejwsdesktop://ini=https://edatalia.com/configuration_protocolo.ini
ecosignaturejwsdesktop://iniB64=RWplbXBsbyBkZ…….SBiYXNlIDY0DQo=
ecosignaturejwsdesktop://ini=https://edatalia.com/config.ini&id=1ADF234GHGFF8AU

El fichero de configuración es del tipo de fichero expuesto anteriormente en la definición del archivo de configuración general (Ver Apartado 2. Configuración general).
Este fichero de texto debe estar codificado en UTF-8.
En el lanzamiento en base 64 hay que tener en cuenta que los navegadores poseen una longitud máxima de la dirección url:

  • Microsoft Internet Explorer: 2048 caracteres.
  • Microsoft Edge: 81578 caracteres.
  • Chrome: 64k caracteres.
  • Firefox: 65.536 caracteres.
  • Safari: 80.000 caracteres.
  • Opera: 190.000 caracteres.

IMPORTANTE: Para realizar un lanzamiento por protocolo se debe registrar dicho protocolo en el registro del PC.

Ante un problema con la solución JWS, compruebe primero el log de la solución, si está desactivado, se debe activar.

Resolución de errores #

A continuación, active la consola de Java, para ello vaya al panel de configuración de Java (https://www.java.com/en/download/help/win_controlpanel.xml) y en la pestaña Avanzado active los checks de “Activar Rastreo”, “Activar Registro”, “Mostrar excepciones del ciclo de vida del applet” y “Ver consola” como en la siguiente imagen:

Ante cualquier error, se muestra una traza tanto en la consola de Java, como se generan ficheros de traza por defecto en:

  • para Windows:
    C:\Users\[Usuario]\AppData\LocalLow\Sun\Java\Deployment\log
  • para Linux:
    /home/[Usuario]/.java/deployment/log

En esa traza podría identificar los siguientes eventos:

  • Started… version_date: XXX Es la primera instrucción del JWS, hasta que ocurra ésta línea el JWS aún no estará en ejecución. Java previamente al lanzamiento del JWS hace comprobaciones de seguridad al JWS entre otras cosas. Si ocurre un error previamente a ésta línea compruebe con su equipo de sistemas la seguridad de Java y los certificados de seguridad de Java. Es muy importante el XXX cuando comunique con soporte un problema para que sepamos si existe una actualización disponible.
  • Start signature result: 0 Se ha terminado de configurar el dispositivo que se hubiera seleccionado y el sistema está esperando para recoger la firma biométrica
  • Response message: OK (la firma ha sido exitosa) y se ha dejado el PDF correctamente al POST que ha respondido OK
  • Exiting… El JWS ha finalizado completamente

En caso de error, se puede ver por ejemplo:

...
Error EcoBioSign* ess.  code: -66701. API Exception: "PDFSignM": Signing failed: Invalid PDF File
ESS.d: Error signing pdf.  code: -66701
at ecobiometric.logic.d.a(Unknown Source)
at ecobiometric.services.PublicAPI.finishSignaturePdfInternal(Unknown Source)
at ecobiometric.services.PublicAPI.aceptSignaturePdfInternal(Unknown Source)
at ecobiometric.services.PublicAPI.access$2000(Unknown Source)
at ecobiometric.services.d.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
...

Comunicándonos los parámetros que ha usado y/o ficheros de entrada y ésta traza podremos resolver el problema.

Categoría: Errores en ESS
-1Error general. Revise su licencia y ficheros de entrada. La traza debiera dar más información
-2Revise su licencia
-66601Error al cargar certificado para cifrar datos biométricos.
-66602Error al cifrar datos biométricos.
-66603Error al cargar datos biométricos cifrados en el API.
-66610Error al añadir certificado firmador de PFX, no se ha encontrado, la contraseña no coincide.
-66611Error al añadir certificado firmador de PFX, no hay llave privada disponible.
-66612Se ha especificado validar el certificado firmante y éste no es válido por el motivo que sea, ocsp, expirado, etc…
-66600Error al cargar la imagen jpeg en memoria.
-66700+XError al FIRMAR EL PDF. No ha servido para nada, no se ha generado fichero.Res es un valor negativo también, es el resultado de llamar a la función de firmar un pdf, así que por ejemplo puede dar un -66701 que sería error general al firmar el pdf.

Control de versiones #

  • v1.0.0 (Abril 2017): Versión inicial de ecoSignature JWS Desktop.
  • v1.1.0 (Mayo 2017):
    • El archivo de configuración como argumento en la llamada externa debe ir precedido de “ini=”.
    • Se permite como argumento en la llamada externa cualquier parámetro de los definidos en el archivo de configuración.
    • Nuevos códigos de salida de la solución.
  • v1.1.1 (Mayo 2017):
    • Actualización de librería de firmado ecoSignatureJWS.
    • Actualización de librería de Web Socket (v.1.3).
    • Control de una o múltiples instancias (“justOneLock”).
    • Conexión a Web Socket externo (“externalWebSocket” y “hostWebSocket”).
    • Nuevo código de salida de la solución de error general.
    • Sincronización de procesos.
  • v1.2.0 (Agosto 2017):
    • Soporte para Linux.
    • Actualización de librería de firmado ecoSignatureJWS.
    • Actualización a nuevas dependencias de ecoSignatureJWS.
    • Visualización de documento a firmar (“showPDF”) y de documento firmado (“showPDFSigned”).
    • Pantalla completa (“fullScreen”) y zoom (“zoom”).
    • Muestra de alertas  (“showAlert”), eventos (“showEvents”) y ayudas (“toast”).
    • Solución siempre en pantalla (“alwaysOnTop”).
    • Nuevo código de salida de cancelación del proceso de firmado desde el visualizador de documentos.
  • v1.2.1 (Noviembre 2017):
    • Actualización de librería de firmado ecoSignatureJWS (19/10/2017).
    • Actualización de librería de Web Socket (v.1.3.5).
    • Adaptación de visualizador de documento a la librería de visualización ecoViewer (v.1.0.1):
      • Evento de teclado ENTER para lanzado de firma y salida de solución una vez visualizado el documento firmado.
      • Modificación de la transparencia y colores en la ayuda.
      • Combinación de teclado CTRL+Q para quitar el modo de siempre visible en pantalla de la solución (Always on top).
      • Cálculo de pantalla efectiva de número de monitor seleccionado.
    • Selección de número de monitor a mostrar el documento pdf a firmar (“showPDFMonitorNum”) y firmado (“showPDFSignedMonitorNum”).
    • Selección de número de monitor a mostrar la ventana de firma para el uso de una Stylus (“monitorNum”).
    • Comprobación “always” de nuevas versiones de jar’s en el lanzamiento de jnlp.
    • Mejoras en firma digital sin biometría:
      • No se valida la existencia de ebp o plantilla.
      • Cálculo automático de ventana de firma con tamaño mínimo y centrada en pantalla.
      • Se anula el tipo de tableta.
  • v1.3.0 (Abril 2018):
    • Actualización de librería de firmado ecoSignatureJWS (25/04/2018).
    • Actualización de librería de Web Socket (v.1.3.8).
    • Actualización de librerías relacionadas con la visualización de documentos (v.2.0.9).
    • Actualización de API de criptografía (v.159).
    • Introducción de librería ICU (International Components for Unicode) (v.61_1).
    • Introducción de librería JNA (Java Native Access) (v.4.5.1).
    • Introducción de mutex para dispositivos de captura biométrica Stylus.
    • Modo de funcionamiento a través de datasheet o panel del terminalista (“signatures-input-xml-b64” y “signatures-input-xml”).
    • Configuración de interface de datasheet o panel del terminalista (“interface-window”).
    • Nuevos parámetros de configuración de controller (segunda ventana de captura de firma para modo multimonitor).
    • Nuevos parámetros de la ventana de captura de firma JWS relacionados con el estilo de la ventana y con los eventos de teclado al realizar una firma.
    • Nuevos códigos de salida de la solución.
  • v1.3.1 (Julio 2018):
    • Actualización de licencia (034002).
    • Actualización de librería de firmado ecoSignatureJWS (26/06/2018).
    • Actualización de librerías relacionadas con la visualización de documentos (v.2.0.11).
    • Actualización de API de criptografía (v.160).
    • Nuevos parámetros JNLP para firma de documentos con campos vacíos a través de datasheet o panel del terminalista(“PDFEmptySig_enable” y “PDFEmptySig_fieldname”).
    • Soporte para lectura de imágenes JBIG2 en visualización de documentos.
    • Soporte para lectura de imágenes JPEG 2000 (JPX) en visualización de documentos.
    • Mayor trazabilidad de log’s.
  • v1.3.2 (Octubre 2018):
    • Adaptación a llamamiento externo desde la solución ecoSignature Launch from PC (proceso general de firma sin datasheet o panel del terminalista).
    • Eliminación de parámetro general de selección de número de monitor a mostrar la ventana de firma para el uso de una Stylus (“monitorNum”).
    • Parámetro general de visualización de ventana de eventos “showEvents” por defecto deshabilitado.
    • Actualización de librería de Web Socket (v.1.3.9).
    • Modificación en la trazabilidad de log’s.
  • v1.3.3 (Noviembre 2018):
    • Actualización de librerías firmadas para posicionamiento flotante (16/10/2018).
    • Lanzamiento de aplicación desde rutas con caracteres especiales.
    • Comprobación “background” de nuevas versiones de jar’s en el lanzamiento de jnlp.
    • Nuevo parámetro general para url de web socket de comunicación externo (“externalWebSocket-url”).
    • Eliminación de parámetro general de host de web socket de comunicación (“hostWebSocket”).
    • El parámetro “portWebSocket” solo aplica para el parámetro “externalWebSocket” desactivado.
    • En configuración con datasheet o panel del terminalista con Stylus, el documento siempre visible y encima en la tableta.
    • En configuración con datasheet o panel del terminalista con Stylus, el puntero del mouse siempre se encuentra en el monitor principal.
  • v1.3.4 (Diciembre 2018):
    • Nuevos parámetros de configuración (tag’s) en datasheet o panel del terminalista:
      • “showCancelButton”: visibilidad de botón de cancelación de proceso.
      • “timeStamp”: fecha y hora en la que el usuario ha firmado.
      • “xml-date-format-signed”: formato de tag “timeStamp”.
    • En configuración con datasheet o panel del terminalista cuando han firmado todos los firmantes se visualiza el botón de finalizar proceso.
    • Mejora en eventos de teclado para datasheet o panel del terminalista.
  • v1.3.5 (Enero 2019):
    • Nuevos códigos de salida de la solución:
      • 42: salida para la posposición de un proceso de firmado desde datasheet o panel del terminalista.
      • -45: salida forzada desde datasheet o panel del terminalista.
    • Nuevos parámetros de configuración para la interface del datasheet o panel del terminalista:
      • “list-item-extern-background” y “list-item-extern-foreground”: formato de ítem de firmantes externos a la solución.
      • “dtu-return-mouse-main-screen-keyboard”: evento de teclado.
    • En configuración con datasheet o panel del terminalista con Stylus, en modo mouse:
      • El puntero del mouse puede pasar a la Stylus.
      • Introducción de evento de teclado de centrado de puntero de mouse  en la pantalla principal al pulsar la barra espaciadora (por defecto).
      • Al volver de una firma el puntero del mouse se centra en la pantalla principal.
    • En configuración con datasheet o panel del terminalista, posibilidad de visualizar firmantes no procesables (externos) por la solución.
    • En configuración con datasheet o panel del terminalista, eliminación de procesado de configuración para firmas ya realizadas y firmas externas o no procesables por la solución.
    • En configuración con datasheet o panel del terminalista, mejora en el tratamiento de errores con salida forzada de la solución.
  • v1.3.6 (Mayo 2019):
    • Actualización de librería de Web Socket (v.1.4.0).
    • Actualización de librerías relacionadas con la visualización de documentos (v.2.0.15).
    • Actualización de API de criptografía (v.1.61).
    • Actualización de lectura de imágenes JBIG2 (v.3.0.2).
    • Actualización de librería ICU (International Components for Unicode) (v.64_2).
    • Nuevos parámetros de configuración (tag’s) en datasheet o panel del terminalista:
      • “idSignatory”: identificador de usuario firmante.
      • “mandatoryToPostpone”: obligatoriedad de firma de usuario.
    • Introducción de mutex para dispositivos de captura biométrica Stylus en modo normal.
  • v1.3.7 (Enero 2020):
    • Soporte a tabletas Signotec (Delta y Gamma).
    • Actualización de librería de firmado ecoSignatureJWS (05/12/2019).
    • Nuevos parámetro generales:
      • para lanzamiento de Java Web Start (“jws-launch-type”, “jws-verbose” y “jws-launch-time”).
      • para la detección automática de DTU (“dtu-automatic-detection” y “path-ETI”).
    • Nuevos parámetros de JNLP para tabletas Signotec (“signotecShowPDF”, “signotecShowPanelBtn”, “signotecScrollToSignPos” y “signotecDeltaShowSignBtn”).
    • Nuevo código de salida de la solución:
      • -21: no se ha detectado DTU automáticamente.
    • Mejora de sincronización en arranque de panel del terminalista.
    • Mejora en la carga de página en el documento en el panel del terminalista:
      • Introducción de barra de progreso.
      • Deshabilitamiento de botones en la DTU.
      • Introducción de reintentos de carga de página.
    • Mayor trazabilidad de log’s.
  • v1.4.0 (Abril 2020):
    • Actualización de licencia (034022).
    • Actualización de librería de Web Socket (v.1.4.1).
    • Actualización de librerías relacionadas con la visualización de documentos (v.2.0.19).
    • Actualización de API de criptografía (v.1.65).
    • Actualización de lectura de imágenes JBIG2 (v.3.0.3).
    • Actualización de librería ICU (International Components for Unicode) (v.66.1).
    • Actualización de librería de firmado ecoSignatureJWS (03/03/2020).
      • Nuevos certificados de cifrado y firmado.
    • Introducción de valor mínimo de 5 segundos para parámetro “jws-launch-time”.
    • Comprobación “always” de nuevas versiones de jar’s en el lanzamiento de jnlp.
    • En configuración con datasheet o panel del terminalista cuando han firmado todos los firmantes (procesables y externos) se visualiza el botón de finalizar proceso.
  • v1.4.1 (Noviembre 2020):
    • Actualización de librería de Web Socket (v.1.5.1).
    • Actualización de librerías relacionadas con la visualización de documentos (v.2.0.21).
    • Actualización de API de criptografía (v.1.66).
    • Actualización de librería ICU (International Components for Unicode) (v.67.1).
    • Introducción de librería de descarga y envío de archivos (v.4.5.13). 
    • Introducción de librería de formato de datos (v.2.8.6).
    • Envío de datos a servicio (documento firmado, xml, extra,…).
    • Lanzamiento por protocolo de la aplicación (ecosignaturejwsdesktop://).
    • Intermediario con tecnología REST.
    • Nuevos parámetros de configuración generales para:
      • envío de datos a servicio (“send-activate”, “send-url” y send-extra-b64”).
      • intermediario (“desktop-url”).
    • Nuevos códigos de salida de la solución:
      • -60: error en llamada de protocolo.
      • -70: error en descarga de fichero.
      • Se permite protocolo http(s):// en:
        • parámetros generales del archivo de configuración .ini “remotePdf-url” y “signatures-input-xml”.
        • tag general “pdfUrl” del archivo de configuración XML.
  • v1.4.2 (Mayo 2021):
    • Actualización de librería de firmado ecoSignatureJWS (28/04/2021) y dependencias.
    • Nuevos parámetro general para la validación de que el widget se encuentre posicionado dentro de una página del documento (“validateWidgetInPage”).
    • Nuevos parámetros de JNLP:
      • para tabletas Signotec (“signotecAutoStartCapture” y “signotecMultiSignatureOptimize”).
      • de forzado de validación del certificado firmante, se especifique o no el uso de OCSP (“forceValidate”).
    • Optimización multi-firma para tabletas Signotec en el modo de funcionamiento de panel de terminalista.
    • Introducción del identificador de intermediario en el envío de datos a servicio.
    • Introducción de ventana de error y salida forzada cuando se produce un error en la carga del documento en el panel de terminalista.
    • Nueva combinación de teclas para forzar la salida del panel
    • Introducción de traza general de log de versión de java.
  • v1.4.3 (Octubre 2021):
    • Se permite el uso de certificados autofirmados en el lanzamiento por protocolo.
  • v1.5.0 (Julio 2022):
    • Compatibilidad con Azul Zulu (8+).
    • Compatibilidad con plugin IcedTea Web en el lanzamiento de jnlp.
    • Soporte para certificados autofirmados.
    • Nueva librería Logback para generación de logs.
    • Nuevos parámetros de configuración generales para:
      • versión de Java (“javaType”).
      • permitir el uso certificados autofirmados (“self-signed-certificate”).
    • Nuevo código de salida de la solución:
      • -46: salida forzada desde datasheet o panel del terminalista cuando no existen participantes pendientes de firma al entrar en la aplicación.
    • Nuevo parámetro de configuración para la interface del datasheet o panel del terminalista:
      • “send-data-event-not-signers”: envío de datos al servicio (documento firmado, xml, …) cuando no existen participantes pendientes de firma al entrar en el datasheet o panel de terminalista.
    • En configuración con datasheet o panel del terminalista deshabilitamiento del botón de finalizar o posponer proceso una vez clicado.
    • Adaptación de la aplicación en windows al cambiar el tamaño de texto, las aplicaciones y otros elementos.
    • Eliminación de desplazamiento al cambiar de página o hacer zoom en página en el visualizador de documentos en el modo normal.
    • Mejora en la trazabilidad de logs:
      • versión de Java
      • empresa de Java.
      • envío de datos y descarga de ficheros con servicio.
      • comunicación con servicio de intermediario.
    • Actualización de librerías:
      • Web Socket (v.1.5.3).
      • relacionadas con la visualización de documentos (v.2.0.26).
      • API de criptografía (v.1.70).
      • lectura de imágenes JBIG2 (v.3.0.4).
      • ICU (International Components for Unicode) (v.71.1).
      • formato de datos (v.2.9.0).
      • cliente http (v.4.5.13).
      • acceso nativo de Java (v5.11.0).
    • Actualización de librería de firmado ecoSignatureJWS (20/06/2022) y dependencias.
    • Eliminación de licencia.
  • v1.5.1 (Octubre 2022):
    • Actualización de librería de firmado ecoSignatureJWS (07/10/2022) y dependencias.
  • v1.5.2 (Febrero 2023)
    • Nuevo parámetro para determinar el color del grafo (“penColor”)

Funciona con BetterDocs

Estamos deseando escucharte y ayudarte:



    En edatalia.com cumplimos con el RGPD de la UE por lo que tus datos están seguros. Además, debes aceptar nuestra política de privacidad al enviar un formulario:

    • Responsable: edatalia.com
    • Finalidad: poder gestionar tu petición.
    • Legitimación: tu consentimiento expreso.
    • Destinatario: tus datos se guardarán en nuestro proveedor de hosting -, que también cumple con el RGPD.
    • Derechos: podrás ejercer tus derechos de acceso, rectificación, limitación y supresión de datos en edatalia@edatalia.com