Spanish Imprimir tiquete desde b4a en impresora Bluetooth portatil

Discussion in 'Spanish Forum' started by jmorales, Jul 3, 2015.

  1. jmorales

    jmorales Member Licensed User

    Muy buenos dias, ante todo gracias por su tiempo

    Estamos desarrollando un programa de toma de pedidos en b4a y necesitamos imprimir el pedido o tiquete, la aplicacion trabaja desconectada y es muy posible que al momento de imprimir NO se tenga internet.

    Si me pudieran ayudar con dos cosas porque puedo escoger el modelo a usar

    1. Alguna printer que me recomienden que no de muchos problemas.

    2. Me pueden recomentar alguna libreria, que no dependa de tener internet.

    Muchas gracias y saludos desde Costa Rica
     
  2. dar2o3

    dar2o3 Active Member Licensed User

    Hola, yo te recomendaría que uses pdfjet, es una librería con la que puedes crear archarchivos pdf al tamaño que quieras, una vez creado el pdf cada marca de impresora suele tener su propia app en el market para imprimir, seleccionas el pdf creado y listo, una vez que controlas pdfjet resulta mucho más fácil que intentar imprimir en la impresora directamente.
     
  3. jmorales

    jmorales Member Licensed User

    Muchas Gracias dar2o3 lo voy a probar, pero tengo una duda, yo armo el archivo pdf en eso estoy claro pero puedo desde la aplicacion mandarlo a imprimir ? algo parecido a un shell o como ?


    Muy buen dia
     
  4. dar2o3

    dar2o3 Active Member Licensed User

    No estoy en casa y escribo desde el móvil pero te dejo el Link, bajate el ejemplo y ahí puedes ver como abrir el pdf desde la aplicación una vez creado.
     
  5. dar2o3

    dar2o3 Active Member Licensed User

  6. jmorales

    jmorales Member Licensed User

    Muchisimas gracias, feliz semana
     
  7. benji

    benji Active Member Licensed User

    yo uso una impresora termica bluetooth, si te interesa avisame, te paso el modelo y el codigo que uso para imprimir.
     
  8. Manuel Eras Larios

    Manuel Eras Larios Member Licensed User

    AYUDA, quien puede ayudarme, tengo una aplicación para facturar. El problema es que en algunas ocasiones la impresión del ticket sale desordenada. por ejemplo se imprime en la primer linea el monto facturado, y luego salen los encabezados, pero en otras ocasiones sale bien. les dejo aqui el código que uso

    Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    End Sub

    Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.

    Private btAdmin As BluetoothAdmin
    Private cmp20 As Serial
    Private PrintBuffer As String
    'Private ast As AsyncStreamsText
    Private Toggla As Toggle
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("ConsFacturas")
    Activity.Title = "Consulta de Facturas"

    btAdmin.Initialize("admin")
    cmp20.Initialize("printer")
    Toggla.TurnBluetoothOn
    End Sub

    Sub Activity_Resume
    Toggla.TurnBluetoothOn
    End Sub

    Sub Activity_Pause (UserClosed As Boolean)
    Toggla.TurnBluetoothOff
    End Sub

    Sub Activity_KeyPress(KeyCode As Int) As Boolean
    If KeyCode = KeyCodes.KEYCODE_BACK Then
    cmp20.Disconnect
    Toggla.TurnBluetoothOff

    Activity.Finish
    End If
    End Sub

    Sub btnImprimir_Click
    StartPrinter
    End Sub

    Sub StartPrinter
    Dim PairedDevices As Map
    Dim L As List
    Dim Res As Int

    ToastMessageShow("Imprimiendo ...",True)

    PairedDevices.Initialize

    Try
    PairedDevices = cmp20.GetPairedDevices
    Catch
    Msgbox("Emparejando con la impresora ...","Error de Impresora")
    cmp20.Disconnect
    End Try

    If PairedDevices.Size = 0 Then
    Msgbox("Error Conectando con la impresora - No encontrada ...","")
    Return
    End If

    If PairedDevices.Size = 1 Then
    Try
    cmp20.ConnectInsecure(btAdmin,PairedDevices.Get(PairedDevices.GetKeyAt(0)),1)
    Catch
    Msgbox("Conectando ...","Error de Impresora")

    cmp20.Disconnect
    End Try
    Else
    L.Initialize

    For i = 0 To PairedDevices.Size - 1
    L.Add(PairedDevices.GetKeyAt(i))
    Next

    Res = InputList(L, "Seleccione un Dispositivo", -1)

    If Res <> DialogResponse.CANCEL Then
    cmp20.Connect(PairedDevices.Get(L.Get(Res)))
    End If
    End If
    End Sub

    Sub Printer_Connected (Success As Boolean)
    If Success Then

    CreaTxT
    ImprimirTxT

    Msgbox("Impresión finalizada!","")

    cmp20.Disconnect
    Else
    If Msgbox2("", "Error de Impresora ","ReImprimir","Cancelar","",Null) = DialogResponse.POSITIVE Then
    StartPrinter
    End If
    End If
    End Sub


    Sub ImprimirTxT
    Private ast As AsyncStreamsText

    ast.Initialize(Me, "ast", cmp20.InputStream, cmp20.OutputStream)

    Private TextReader1 As TextReader
    TextReader1.Initialize(File.OpenInput(Modulo.ruta, "ConsFacturas.txt"))

    Private Linea As String
    Linea = TextReader1.ReadLine

    Do While Linea <> Null
    Log(Linea) 'write the line to LogCat
    Linea = TextReader1.ReadLine

    If Linea <> Null Then
    ast.Write(Linea & Modulo.cr) ' Print 1 row for each tablerow
    End If
    Loop

    TextReader1.Close
    ast.Close
    End Sub

    Sub ast_Error
    ToastMessageShow("Conexión perdida.", True)
    End Sub

    Sub ast_Terminated
    Log("Conexión terminada.")
    End Sub
     
  9. aviario

    aviario Active Member Licensed User

    Te paso el código que yo uso para los autoventas y que funciona bien normalmente los autoventas usan una impresora start matricial ya que permite papel con copias en el veras que hay comandos diferentes si es para una start o otra impresora que no sea matricial
     

    Attached Files:

Loading...