Visual Basic.NET - Cajon portamonedas y display

 
Vista:

Cajon portamonedas y display

Publicado por HAF (2 intervenciones) el 26/10/2007 09:50:30
He hecho una aplicación en Visual FoxPro V 9.0 de tpv el cual funciona de mil maravillas.
pero he querido "Reescribirla" a VBnet 2005 ya que la corriente del mercado te obliga a ello.
Lo único que me ha frenado para hacerla en vbnet, es que no he conseguido como controlar la impresión directa en las impresoras matriciales de tpv, cajón portamonedas conectadas a ellas y displays para el cliente conectados en puertos serial.
A mi juicio VFP es bastante versátil en cuanto al manejo de esto , no así (creo) que sucede con VBNET.
¿Alguien tiene algún ejemplo de como imprimir directamente en una impresora de tickets (como por ejemplo :Epson series TMU) a fin de controlar la letra negrita, el que imprima en rojo o en negro, letra expandida etc ,(controles CHR); y a su vez abrir un cajón portamonedas conectada a esta ,y a su vez manejar un display para el cliente conectado en puerto serial?

Si lo consigo Rreescrtibiria el código en VBNet, de lo contrario me quedo con la aplicación hecha en VFP, lo cual aprovecho esta oportunidad para decir que VFP es un lenguaje de programación hermosísimo, muy amigable y el cual en lo personal a mí me ha dado mucho. Lástima que Bill lo haya excluido del Vstudio. (Para matar a Superman sus propios creadores al final utilizaron Criptonita, pero aún vemos series de Superman ¿o No? Lo mismo pasará con VFP.
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:Cajon portamonedas y display

Publicado por Rafael Ramis (1 intervención) el 27/09/2010 20:12:54
Hola:

Tres años después yo estoy en lo mismo. Estoy migrando de VB6 a VB.NET todos mis programas, entre otros el del TPV. En realidad ya lo tengo hecho y funciona todo a excepción de la apertura del cajón. En VB6 para abrir el cajón definía un tipo de letra ficticia para la impresora Printer.FontName="control" y mandaba a imprimir una latra "A", listo, se abría el cajón. Luego volvía a poner la fuenta en la que tocaba y listo. Pero en VB.NET resulta que al intentar definir una fuente "control", al no existir en el sistema simplemente ignora el comando y en lugar de abrirse el cajón sale una A en el ticket. Momentáneamente y dado que el TPV lo tengo sobre XP, lo que hice fue un ejecutable en VB6 que simplemente abriese el cajón y desde VB.NET hago un shell que lo ejecuta pero me parece una solución bastante chapucera, por lo que me gustaría hacer bien.

Para imprimir el Ticket tengo un PrintDocument1 y le creo un evento PrintDocument1.PrintPage que es donde se imprime realmente el ticket. Para invocar a este documento ejecuto PrintDocument1.Print(), tengo una variable pública que contiene el número del ticket a imprimir y dentro del evento se leen los datos del ticket, así como el archivo de definición del formato del ticket. Este evente viene con un argumento:

ByVal e As System.Drawing.Printing.PrintPageEventArgs

y para imprimir se imprime sobre e.Graphics. Por ejemplo, una línea de texto sería:

e.Graphics.DrawString(Texto, Letra, Brushes.Black, PosicionX, PosicionY)

donde texto es la línea a imprimir, Letra es el tipo de letra y aquí está el problema porque debo definir letra de la siguiente forma :

Dim Letra As New System.Drawing.Font(Fuente, Tamano, Estilo)

y cuando defino Fuente como "control" simplemente me lo rechaza al no existir ninguna fuente con ese nombre en el sistema.

Si tienes alguna idea de cómo hacerlo te lo agradezco.
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