Saludos y gracias,
Víctor Glez.
Open "lpt1" For Output As #1
Print #1, "Hola"
Print #1, Chr(13)
Print #1, "¿Qué tal?"
Close #1
No recuerdo si tienes que ponerlo los dos puntos a "Lpt1", prueba a ver
Espero que te sirva,
Mindeye
Víctor Glez. <v...@ll.iac.es> escribió en el mensaje de noticias
3a6ec...@news.ll.iac.es...
Saludos desde Azkaban
zoOM2
Víctor Glez. <v...@ll.iac.es> escribió en el mensaje de noticias
3a6ec...@news.ll.iac.es...
Te voy a dar una solucion, que ya esta probada. Al menos por aqui funciona.
Ya me las he tenido que ver con las impresoras de Tickets, Etiquetadoras, y
varios tipos de impresoras mas, en los que he usado estas funciones.
Las pruebas realizadas para enviar codigos ESC, desde el objeto Printer, no
me han funcionado. Por esta razon, me he remitido a las API Win32.
Otra cosa curiosa que me ha sucedido con las Impresoras de Tickets, es lo
siguiente:
Al imprimir con el objeto Printer, hasta que no se termine una pagina o el
documento, la impresora no comienza a imprimir. O sea, hasta que no ocurra
eso, Visual Basic no envia nada a la impresora.
Esto a veces tiene un gran problema, imaginemos una compra en un
supermercado, y que al final de la compra tengamos que esperar por la
impresion del Ticket. (Imaginemos ademas un ticket largo y que la impresora
sea de punto. Las termicas suelen ir como un tiro.)
Con las API no ocurre, cada linea se va enviando, por lo que la impresora
imprime a medida que se pasan productos por el Lector de Barras.
Hasta aqui el rollo. Te comentaba esto, porque me gustaria que expresaras
aqui tus experiencias y poder compartir criterios.
'//Declaraciones a nivel de modulo.
Public Type DOCINFO
pDocName As String
pOutputFile As String
pDatatype As String
End Type
'Win32 API external reference definitions
Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As
Long) As Long
Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As
Long) As Long
Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As
Long) As Long
Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA"
_
(ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As
Long
Public Declare Function StartDocPrinter Lib "winspool.drv" Alias
"StartDocPrinterA" _
(ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Public Declare Function StartPagePrinter Lib "winspool.drv" _
(ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As
Long, _
pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
'//Codigo para Imprimir.
Dim lhPrinter As Long
Dim lReturn As Long
Dim lpcWritten As Long
Dim lDoc As Long
Dim sWrittenData As String
Dim MyDocInfo As DOCINFO
lReturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
If lReturn = 0 Then MsgBox "Open Printer Error!"
MyDocInfo.pDocName = "SAMPLE"
MyDocInfo.pOutputFile = vbNullString
MyDocInfo.pDatatype = vbNullString
lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
Call StartPagePrinter(lhPrinter)
sWrittenData = Chr(27) & "@" & Chr(27) & Chr(33) & "49"
sWrittenData = sWrittenData & "SEIKO EPSON ESC/POS" & Chr(13) & Chr(10)
lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, Len(sWrittenData),
lpcWritten)
lReturn = EndPagePrinter(lhPrinter)
lReturn = EndDocPrinter(lhPrinter)
lReturn = ClosePrinter(lhPrinter)
Bueno, en este caso no digo "Espero que te sirva" porque realmente sirve.
Saludos desde España,
Jhosen.
Víctor Glez. <v...@ll.iac.es> escribió en el mensaje de noticias
3a6ec...@news.ll.iac.es...