Spanish Libreria Epson TM-T900FA Fiscal .aar

elsanto

Member
Licensed User
Longtime User
Buenas Gente : les cuento un poco del tema , en la Argentina se utiliza para facturar impresoras termicas de distintas marcas , en este caso Epson proporciona librerias tanto para Windows (dll-ocx), para Linux (static lib y dynamic lib) y ademas proporciona una para Android que se llama EpsonFiscalDriver.aar , estoy utilizando para mi aplicacion de facturacion la de windows , la pregunta concreta es como puedo utilizar la libreria que proveen que es .aar en un proyecto B4A , se puede hacer esto ?
Desde ya muchas gracias
Cualquier ayuda es bienvenida
 
Last edited:

drgottjr

Expert
Licensed User
Longtime User
primero, a ver si epson mantiene una app en play para tu impresora. (he visto un monton de apps para epson termica pero no son de epson. en fin, puede que no importe la fuente.) esto te permitiria pasar un documento desde tu proyecto a la impresora mediante un intent. la solucion mas facil.

ahora, si pretendes controlar la impresora programandola tu mismo, sube la presion :). en teoria, drivers .aar para android se portan bien con b4a. lo incluyes en tu proyecto, estableces una comunicacion con el, pasa parametros, y ya esta. esta comunicion se establece o bien con una "envoltura" o bien con un llamado "java object". la envoltura es un proyecto distinto y precisa mucho conocimiento de java. en cambio, el java objecto podria resultar exitoso, segun la complejidad del .aar. es posible que, aun sin conocimientos de java, logres imprimir con un java object y algunos parametros. cuanto mas hace el driver, menos tienes que hacer tu. se supone - y se espera - que el driver se ocupa de lo dificil. asi se venden mas impresoras, no? sin conocer el .aar, no puedo decir mas al respecto. acabo de buscar el .aar un poco, pero no lo he encontrado.

otra cosa: si la impresora es un servidor, entonces seria facil comunicarse con aparatos android mediante wifi sin necesidad del driver.
 
Last edited:

elsanto

Member
Licensed User
Longtime User
Gracias por tu respuesta @drgottjr , estare subiendo mas info del driver he visto que junto con la libreria tiene algun ejemplo en java
 

drgottjr

Expert
Licensed User
Longtime User
para que sepas, puedes facilmente incluir codigo java en to proyecto b4a. el enlace es un java objeto. visto desde arriba, tendras el codigo b4a, el codigo java, el archivo .aar, y un java objeto para reuinirlo todo. no tienes que hacer nada con el .aar a parte de guardarlo con las demas librerias y hacer una referencia a el en el proyecto. el java objeto y el codigo java (si fuese necesario) hablan con el .aar. en el mejor de los casos, el java objeto comunica directamente con el .aar desde b4a. pero a veces hacen falta algunas lineas de codigo java para facilitar. depende... depende de los errores que se lanzan šŸ˜­
 

elsanto

Member
Licensed User
Longtime User
Buenas Gente : estoy retomando el tema de poder usar una libreria de epson (aar) para conectar una app al impresor fiscal via usb
He podido conectar con libreria y obtener por lo menos la version de esta con la ayuda de un ejemplo de demostracion que entrega epson
Este es el ejemplo de lectura en java de la version de la libreria

B4X:
 // -----------------------------------------------------------------------------
    // Obtiene la verion de la libreria
    // -----------------------------------------------------------------------------
    public String ConsultarVersion(){
        byte Version[] = new byte[16];

        EpsonFP.GetAPIVersion(Version);
        String sVersion = new String(Version);

        return sVersion;
    }
y este es el codigo b4a
B4X:
Sub btnVersionDll_Click
    '*******************************
    ' Version libreria
    '*******************************
    Public versiondll(16)      As Byte
    EpsonFP.RunMethod("GetAPIVersion", Array(versiondll))
    Log("version libreria" & versiondll(1))

    Dim cXML As String = BytesToString(versiondll, 0, versiondll.Length, "UTF8")
    Log("resultado" & cXML)
    Label2.Text = cXML
    
End Sub
El Error se produce cuando quiero setear el protocolo de comunicacion y usar el setfield me da error
Estas son las lineas en java
B4X:
// -----------------------------------------------------------------------------
    // Permite conectarse al equipo y definir el modelo para ajustar los comandos
    // y extensiones que serƔn usados posteriormente
    // -----------------------------------------------------------------------------
    public int Conectar() {
        int retorno;

        EpsonFP.setProtocolType(myProtocolo);
        EpsonFP.setComPort(myPortnumber);
       // EpsonFP.setBaudRate(myBaudRate);
        EpsonFP.OpenPort();

        retorno = EpsonFP.getLastError();
        EpsonFP.Purge();

        return retorno;
    }
y este es mi codigo en b4a
B4X:
Sub  Conectar() As Int
    Dim retorno As Int
    
    ' -------------------------------------------------------
    '               Variables usadas en la clase
    '--------------------------------------------------------
    myPortnumber = 0      ' USB
    myBaudRate   = 9600
    myProtocolo  = ProtocoloExtendido
    
    EpsonFP.SetField("setProtocolType", Array(myProtocolo))
    'EpsonFP.SetField("setBaudRate", Array(myBaudRate))
    EpsonFP.SetField("setComPort", Array(myPortnumber))
    
    EpsonFP.RunMethod("OpenPort",Null)
    
    retorno = EpsonFP.RunMethod("getLastError",Null)
    EpsonFP.RunMethod("Purge",Null)
    
    Log("Retorno -> " & retorno)
    
    Return retorno
    
 End Sub
y el error que me da es :
java.lang.RuntimeException: Field: setProtocolType not found in: epson.epsonfiscaldriver.EpsonFiscalDriver
 

elsanto

Member
Licensed User
Longtime User
Los he pasado como metodos , pero no logro recibir una respuesta del impresor ....
 
Top