Visual Basic Foro
General => General => Mensaje iniciado por: YAcosta en Febrero 11, 2011, 02:03:01 am
-
Hola a todos, volviendo de vacaciones.
Tengo un problema.
Un cliente tiene papel continuo no troquelado, tiene una impresora matricial Epson FX-500 creo, similar a la clasica LX-300 II pero mas rapida, pero similar.
El asunto es que deseamos imprimir pedidos de venta, estos pueden tener 2 o 3 lineas (7cm de alto) o 20 a 30 lineas (70cm de alto), queremos que imprima y que la impresora se detenga cuando imprimió la ultima linea, que no avance mas, o que en todo caso avance un poco para cortar.
La bronca es que la impresora me exige un tamaño de papel fijo, y no puedo darle un tamaño fijo porque no sabemos cuanto se va a consumir por pedido. Esto si lo tengo resuelto en la impresora ticketera porque la impresora es la que controla este tema pero la Epson Lx-300 y similares no.
Para hacerlo mas facil puedo manejar el tema con el objeto Print
¿Es posible resolver esto?
¿Es posible hacer que se mande a imprimir y el papel se detenga donde acabo de imprimir sea el tamaño que sea? que no me haga saltos de linea.... dicho en frances: Que la impresora FX-500 o LX-300 se porte como una tiketera ya esta.
Gracias.
-
Hola Ivan no tengo experiencia con el uso de impresoras, pero fijate esto puede que te sirva
Printer.PaperSize = vbPRPSUser
y despues pones
Printer.Height = Printer.TextHeight("el texto que imprimis")
Printer.Print "el texto que imprimis"
Printer.EndDoc
puede que tengas que ajustar las escalas
no estoy seguro pero bueno es una opcion para probar.
yo lo probe con la impresora virtual Enviar a OneNote 2007 pero no funciona capas que con esa impresora si.
-
Voy a probarlo, pero en la parte de:
Printer.Height = Printer.TextHeight("el texto que imprimis")
que pasa si tengo que imprimir 20 lineas?
Voy a probar y les cuento
-
No funco.
En esta linea Printer.PaperSize = vbPRPSUser se cae: "El valor de la propiedad no es valido"
E investigado sobre esa linea y en todos los foros se da el mismo error sin solución. Al parecer esto no va a funcionar.
-
Bueno y convenci al cliente que se compre su impresora ticketera y que no joda y ya accedio.
Igual me queda la duda o el reto de como poder simular una impresora "normal" como impresora ticketera.
Lo que sucede es que a la impresaora "normal" hay que definirle su tamaño de papel previamente, luego uno manda la impresion a la impresora quien ya tiene su tamaño predefinido, por ello cuando madno una impresion que ocupa mas alto del tamaño predeterminado esta hace el salto de pagina e imprime en la siguiente hoja, con el consiguiente problema que tambien la informacion de pie de pagina se repite en ambas, un despelote total.
Pero se me ocurre algo que probare recien en los siguiente dias que tengo tiempo y que en todo caso si alguien tuvo la experiencia me la pueda platicar.
Lo que pretendo es hacer lo siguiente:
- Se manda la impresion
- Determino por la cantidad de lineas el tamaño de papel que requeriria esa impresion
- Envio la orden de cambiar el tamaño de papel en la impresora predeterminada
- Envio la impresion.
- Fin
Y eso se haria por cada impresion nueva.
¿Que opinan? Lo ven factible? sera lento? existe otra mejor forma?
-
No se si venga al caso pero podrias intentarlo con vb2005 ya que el .framework 2.0 actualmente casi todos los tienen, nose mucho de .net y no he visto con mis propios ojos pero dicen que algunos crean dll en .net con soporte para vb6 y las utilizan desde vb6, creo que si realmente en tu caso es necesario reutilizar las impresoras como ticketeras podria ser esta una opcion, solo es una idea para tomar en cuenta en ratos de ocio, ademas podrias sacar algo de dinero extra ya que le estarias ahorrando gastos al cliente.
Saludos
-
gracias fx700, pero creo que me queda grande ese saco y no entendí mucho porque ir hasta VB2005 para hacer dll si con VB6 también se puede hacer y lo del framework que onda para con las impresoras?, pero ya para mi eso es tinieblas, mientras tanto que el cliente compre su ticketera jeje.
Gracias de verdad.
-
Bueno te explico un poco de .net como conocimiento general jeje, el framework de .net contiene todas las librerias de visual studio por lo tanto el instalador del C-sharp, Visualbasic u otro solo pesan unos cuantos MB por lo tanto el framework es un pre-requisito para su instalacion.
Lo de hacerlo con vb2005 lo coloque como ultima opcion en caso nose pueda con vb6 digamos que seria una ultima opcion
saludos
-
Me quedo claro, muchas gracias.