Sí, esa demo sí funciona.este demo de la documentación que publicaste, funciona con tu impresora
Sí, esa demo sí funciona.este demo de la documentación que publicaste, funciona con tu impresora
Sí, también, y muestra texto pero no códigos de barras.probaste este demo?How to send ZPL commands through B4A
Hello fellows, I'm a Zebra Partner, and I want to know hoy to send ZPL printing language through B4A. I usually send this with Windows Mobile using vb.net (compact framework) making an Open COM1 device subrouting, sending ZPL language by Bluetooth. How can I do it with B4A? I'll appreciate...www.b4x.com
depende de la cantidad de impresoras y costo que quieran asumir sus cliente.y 3) cambiar la impresora
pero ahora me piden que también imprima códigos de barras y... esa es mi duda.
Las impresoras que van a usar son de esas chinas,
De esos 2 puntos que propones, el primero, no tengo ni la más mínima idea de cómo usar ese SDK .jarestimado he revisado el código de la demo con visual android, tiene 2 opciones:
1.- Usar el SDK CPCL_SDK_V1.11.jar en B4A puede revisar el manual CPCL SDK Manual V1.02
2.- Convertir a código B4A lo que necesita BARCODE, TEXT, etc.
Nota:
Solo convertir los código de impresión (BARCODE, TEXT, etc.), la conexión la tiene en los demos posteados anteriormente.
Saludos.
El cliente es una persona china que tiene varias tiendas de productos chinos, él ha escogido la impresora de su propio almacén y ha decidido usar esa.depende de la cantidad de impresoras y costo que quieran asumir sus cliente.
Pero:
no creo que sea la solución "cambiar la impresora", además convertir CPCL a B4A no costaría mucho tiempo en hacer una clase.
Depende del tiempo con que cuente para solucionar el requerimiento de sus clientes.
Saludos,
Mis conocimientos sobre B4A son de varios años de uso, pero no llegan como para hacer una clase de ese tipo.Actualmente tengo tres clases que como dije antes he desarrollado.
1.-Clase para conectividad Wifi, Bluetooth, USB, Red, etc.
2.-Clase para impresoras que emulan comandos ZPL
3- Clase para impresoras que emulan comandos ESC/POS
Las cuales utilizo según los requerimientos de los proyectos.
y ahora tengo en mente en desarrollar una clase, para impresoras que emulan comandos CPCL.
Saludos.
A lo mejor no se debe usar un string, o a lo mejor no es un CRLF al final sino un LF, o a lo mejor... a saber el motivo.
Private Sub PrintCodeBarCPCL
Printer1.WriteString("! 0 200 200 210 1" & Chr(13) & Chr(10))
Printer1.WriteString("BARCODE 128 1 1 50 150 10 HORIZ." & Chr(13) & Chr(10))
Printer1.WriteString("TEXT 7 0 210 60 HORIZ." & Chr(13) & Chr(10))
Printer1.WriteString("FORM" & Chr(13) & Chr(10))
Printer1.WriteString("PRINT" & Chr(13) & Chr(10))
End Sub
por cierto, es un EAN13 lo que necesito, la documentación dice que la impresora puede imprimirlos, pero en el demo se imprimen varios tipos menos el EAN13, curioso.
Saludos.
A lo mejor no se debe usar un string,
' Send the string to the printer in IBM437 encoding which is the original PC DOS codepage
' This is usually the default codepage for a printer and is CodePage = 0
' Beware of using WriteString with Chr() to send numeric values as they may be affected by Unicode to codepage translations
' Most character level operations are pre-defined as UPPERCASE string variables for easy concatenation with other string data
Public Sub WriteString(data As String)
WriteString2(data, "IBM437")
End Sub
' Send the string to the printer in the specified encoding
' You also need to set the printer to a matching encoding using the CodePage property
' Beware of using WriteString2 with Chr() to send numeric values as they may be affected by codepage substitutions
' Most character level operations are pre-defined as UPPERCASE string variables for easy concatenatipon with other string data
Public Sub WriteString2(data As String, encoding As String)
Try
If Connected Then
Astream.Write(data.GetBytes(encoding))
End If
Catch
Log("Printer error : " & LastException.Message)
AStream_Error
End Try
End Sub
Años usando CRLF pensando que era CR & LF (Retorno de Carro y Avance de Línea), no debería tener ese nombre tan confuso, debería ser simplemente LF.
prueba;
en la clase de @agraham
B4X:Private Sub PrintCodeBarCPCL Printer1.WriteString("! 0 200 200 210 1" & Chr(13) & Chr(10)) Printer1.WriteString("BARCODE 128 1 1 50 150 10 HORIZ." & Chr(13) & Chr(10)) Printer1.WriteString("TEXT 7 0 210 60 HORIZ." & Chr(13) & Chr(10)) Printer1.WriteString("FORM" & Chr(13) & Chr(10)) Printer1.WriteString("PRINT" & Chr(13) & Chr(10)) End Sub
Dim const mCRLF As String = Chr(13)&Chr(10)
Dim cLin As String
'
If Not(twOut.IsInitialized) Then
OutStream = BTconexSerial.OutputStream
twOut.Initialize2(OutStream,"windows-1252") '''twOut.Initialize2(BTconexSerial.OutputStream,"windows-1252")
End If
'
' --- TEST 1 ---
cLin = "! 0 200 200 210 1" & mCRLF
cLin = cLin & "TEXT 4 0 30 40 Prueba0123456789" & mCRLF
cLin = cLin & "FORM" & mCRLF
cLin = cLin & "PRINT" & mCRLF
twOut.Write( cLin )
twOut.Flush
' ---TEST 2 ---
cLin = $"! 0 200 200 210 1 ${mCRLF}
TEXT 4 0 30 40 Prueba0123456789 ${mCRLF}
FORM ${mCRLF}
PRINT ${mCRLF}"$
twOut.Write( cLin )
twOut.Flush
' ---TEST 3 ---
cLin = "! 0 200 200 210 1" &mCRLF
cLin = cLin & "JOURNAL" &mCRLF
cLin = cLin & "CENTER" &mCRLF
cLin = cLin & "BARCODE-TEXT 7 0 5" &mCRLF
cLin = cLin & "B EAN13 1 1 50 150 10 1234567890123" &mCRLF
cLin = cLin & "BARCODE-TEXT OFF" &mCRLF
cLin = cLin & "FORM" &mCRLF
cLin = cLin & "PRINT" &mCRLF
twOut.Write( cLin )
twOut.Flush