Visual Basic - Velosidad en Impresora Fiscal

Life is soft - evento anual de software empresarial
 
Vista:

Velosidad en Impresora Fiscal

Publicado por Lunnaticoo (5 intervenciones) el 22/11/2010 21:43:31
Hola..

Estoy desarrollando una aplicación q usa una impresora fiscal ( NCR ), el problema que tengo es que es muy lenta para imprimir, ya que debe esperar la respuesta de cada comando. Alguien me podría decir como evitar las pausas al momento de imprimir, he visto la misma impresora y al momento de imprimir no demora nada.

Gracias..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Velosidad en Impresora Fiscal

Publicado por ChidUng35 (18 intervenciones) el 23/11/2010 05:50:24
Hola lunatico;

Como es uqe imprimes?

Si usas el comando printer es mucho más veloz.

Yo he programado impresoras fiscales y con el objeto printer logras controlar totalmente estas impresoras.

Ejemplo:

Printer.CurrentY = 10
Printer.CurrentX = 0.5
Printer.Print "NOMBRE DEL TICKET"

Printer.CurrentY = 20
Printer.CurrentX = 2.2
Printer.Print "CAFE PURO: " & format(importe ,"###,##0.00")

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Velosidad en Impresora Fiscal

Publicado por Lunnaticoo (5 intervenciones) el 23/11/2010 13:31:05
hola..

el problema que tengo es con la impresión de la boleta, ya que a esta se le envían los comandos correspondientes para poder estructurarla.

La comunicación la realizo con el objeto MSCOM32, una ves que abro la conexión le envió los comandos fiscales.

ejemplo.

Public Function OpenPrint(ByVal Puerto As Integer, ByVal Velocidad As String) As Integer
On Error GoTo ex
If conexion.PortOpen = True Then
OpenPrint = 0
Sleep (300)
Else
conexion.CommPort = Puerto
conexion.Settings = Velocidad & ",N,8,1"
conexion.InputMode = MSCommLib.InputModeConstants.comInputModeText
OpenPrint = 0
conexion.PortOpen = True
Sleep (300)
'Respuesta (conexion.Input)
End If
Exit Function
ex:
MsgBox ("Impresora no conectada")
OpenPrint = 1

End Function

Function OpenBoleta()
P.WritePrint ("000")
P.WritePrint ("12")
End Function


Function CloseBoleta(ByVal CortarPapel_S_N)
If CortarPapel_S_N = "S" Then
P.WritePrint ("99")
Else
P.WritePrint ("98")
End If
End Function

Public Function WritePrint(ByVal Comando As Long, Data As String) As String
Dim Instruccion As String, xxx As Long, yyy As String
Instruccion = Chr(255) & Chr(Comando) & "000"
conexion.Output = Instruccion & Chr(215) '& Chr(136)
WritePrint = ReadPrint
End Function

Public Function ReadPrint() As String
Sleep (300) ' esperar respuesta
ReadPrint = conexion.Input
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar