Logo Xoborg

Blog > Integración de firmadoras wacom con c#

Desarrollo

1 febrero 2017

Integración de firmadoras wacom con c#

En este artículo descubriremos como implantar la firma digital, con firmadoras wacom en .net

Integración de firmadoras wacom con c# imagen

Bienvenidos a un nuevo artículo técnico de Xoborg. En esta ocasión vamos a comentar el proceso para la integración de firmadoras de la marca wacom con nuestras aplicaciones, en este caso, wpf con c#.

No es un proceso complicado, y los resultados son excelentes, ya que las firmas quedan con una calidad muy buena.

Debemos tener en cuenta, que la integración más sencilla supondrá abrir un cuadro de diálogo por encima de nuestra aplicación con el diseño (un tanto anticuado) de wacom, y seguidamente, tras la firma, su exportado a una imagen .png

Para conseguir todo esto, debemos ponernos en contacto con wacom para que nos faciliten el sdk de firmadoras. El link es el siguiente:

SDK-Wacom

Se nos entregará un acceso a un portal privado en el que podemos descargar documentación, ejemplos… pero lo que más nos interesa son estas tres dlls

(y el instalador del sdk de wacom.)

Lo primero será instalar el sdk teniendo en cuenta seleccionar las opciones avanzadas de instalación de las herramientas compatibles con .net, de lo contrario, solo se instalarán las de java.

Seguidamente, en nuestro proyecto wpf, incluiremos las dlls anteriormente citadas como recursos incrustados.

Finalmente, para lanzar el proceso de firmadora, usaremos un código como el siguiente:

class ManejadorFirmas
{
    private static event EventHandler<EventArgs> eventoGuardadoDone;

    public static void MuestraFirmadora(String UrlFirma, int Width, int Heigth)
    {
        SigCtl sigCtl = new SigCtl()
        {
            Licence = "YOUR PRODUCTION LICENCE" //Ask wacom for it
        };
        
        DynamicCapture dc = new DynamicCaptureClass();
        
        DynamicCaptureResult res = dc.Capture(sigCtl, "Name of the person", "Title", null, null);
        
        if (res == DynamicCaptureResult.DynCaptOK)
        {
            SigObj sigObj = (SigObj)sigCtl.Signature;
            sigObj.set_ExtraData("AdditionalData", "C# test: Additional data");

            try
            {
                // Establecer url de salida de la imagen, el ancho, el alto, formato, e incluso grosor de pluma y color...
                sigObj.RenderBitmap(UrlFirma, Width, Heigth, "image/png", 0.5f, 0x000000, 0xffffff, 10.0f, 10.0f, RBFlags.RenderOutputFilename | RBFlags.RenderColor32BPP | RBFlags.RenderEncodeData);

                SignedDone();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        else if (res == DynamicCaptureResult.DynCaptPadError)
        {
            MessageBox.Show("No dispones de una tableta firmadora conectada al sistema.");
        }
        else
        {
            if (res != DynamicCaptureResult.DynCaptCancel)
                MessageBox.Show("Ha ocurrido un error al conectarse a la firmadora.");
        }
    }

    private static void SignedDone()
    {
        if (eventoGuardadoDone != null)
        {
            eventoGuardadoDone(null, new EventArgs());
            eventoGuardadoDone = null;
        }
    }

    public static void SubscribeToSignedDone(EventHandler<EventArgs> metodoEjecutar)
    {
        eventoGuardadoDone -= metodoEjecutar;
        eventoGuardadoDone += metodoEjecutar;
    }

}

Recuerda añadir un using a Florentis para que lo anterior vaya como la seda.

Finalmente, pongo un link a amazon.es con la firmadora concreta que hemos usado en nuestro desarrollo, y que sabemos que funciona perfectamente con el código anterior, por si te es de ayuda.

STU-430 + SIGN PRO PD

¡Que el código os acompañe!

Made with in Spain

Logo Xoborg Oscuro

© 2013 - 2022 Xoborg Technologies S.L. Todos los derechos reservados. Paseo Canalejas, 57-61 entre planta, oficina Num5, Salamanca 37001, Castilla y León, España.