Visual Basic.NET - Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

 
Vista:
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt dante_cs@yahoo.com (45 intervenciones) el 27/09/2019 01:51:08
Hola Buenas tardes!

Tengo una cajon de dinero conectado a una impresora termica, la impresora esta conectada a mi PC via USB. puedo imprimir tickets y el cajon se abre automáticamente despues de imprimir el ticket. A mi proyecto punto de venta (en VB.NET) le agregue un boton para entradas y salidas de dinero, por lo tanto nesecito abrir el cajón del dinero sin imprimir nada. No proporciono ni marca ni modelo de mi cajon porque quiero que el codigo sea universal para cualquier tipo y marca de cajon. he probado varios codigos de apertura de cajones de dinero, pero no funcionan debido a que estos codigos son especificos para un modelo de cajon en particular, como por ejemplo este:

1
2
3
Open "lpt1" For Output As #1
Print #1, Chr(27) + Chr(112) + Chr(0) + Chr(60) + Chr(240);
Close #1

yo quisiera algo standard ("Universal").

Es posible esto?

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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 27/09/2019 10:11:30
Hola,

Creo que el problema major es que tu codigo no es VB.Net.

"... puedo imprimir tickets y el cajon se abre automáticamente despues de imprimir el ticket. "

Quizá puedes enviar un caracter NULL a la impresora, hacer como si imprimir pero sin ticket ?, ejemplo : LineaAImprimir = Char.ConvertFromUtf32(0)

O enviar tus caracteres por este metodo : LineaAImprimir = Char.ConvertFromUtf32(27) & Char.ConvertFromUtf32(112) & Char.ConvertFromUtf32(0) & Char.ConvertFromUtf32(60) & Char.ConvertFromUtf32(240)

Que tenga un buen dias ...
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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 28/09/2019 19:27:28
Hola Sr. Phil.

Quizá puedes enviar un caracter NULL a la impresora, hacer como si imprimir pero sin ticket ?

- De echo agregue un documento en blanco a la forma, y sin agregar una sola linea de codigo, el cajon de dinero se abre y no imprime ningun ticket, solo avanza el papel como un centimetro y es todo.

Este es el codigo que, abre el cajon, deja una trabajo pendiente en la cola de impresion y avanza el papel.

1
2
Private Sub Abrir_Cajon_PrintPage(sender As Object, e As PrintPageEventArgs) Handles Abrir_Cajon.PrintPage
End Sub

El problema aqui, es que cada vez que se abre el cajón, el papel avanza y vuelve a avanzar.

Tambien probé sus codigos :
1
2
3
4
Dim LineaAImprimir As String
LineaAImprimir = Char.ConvertFromUtf32(0)
 
LineaAImprimir = Char.ConvertFromUtf32(27) & Char.ConvertFromUtf32(112) & Char.ConvertFromUtf32(0) & Char.ConvertFromUtf32(60) & Char.ConvertFromUtf32(240)
Pero ocurre lo mismo, abre el cajon, el papel avanza y deja un trabajo pendiente en la cola de impresion.

nesecito que solo abra el cajon sin avanzar el papel, ni dejar trabajos pendientes en la cola de impresion.
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 28/09/2019 22:37:45
" el cajon de dinero se abre y no imprime ningun ticket "

Este es bien lo que quiere, no ? (sin avanzar el papel de 1 cm.). En este caso, el problema es casi solucionado.

En el procedimiento Abrir_Cajon_PrintPage, debes escribir todo el codigo que utilizas para imprimir el caractere NULL. Los codigos para imprimir se terminan por :
1
e.HasMorePages = True
Creo que si reemplazas True por False, el papel no avanzara más.
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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 30/09/2019 03:29:31
Hola Sr. Phil!

Creo que si reemplazas True por False, el papel no avanzara más.

- Ya he includo esta linea: e.HasMorePages = False y el papel sigue avanzando.
Creo que por el hecho de agregar un evento "Abrir_Cajon_PrintPage" la impresora siempre va a avanzar el papel, nescesitaria NO agregar un evento "Abrir_Cajon_PrintPage" y enviar el codigo de apertura desde la misma Forma o desde un modulo, quizas asi la impresora no intervenga en la apertura del cajón.
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 30/09/2019 12:16:11
Hola Matt,

Si " quizas asi la impresora no intervenga en la apertura del cajón.", entonces que es que abre el cajón cuando imprimas un ticket ?
Si encuentras esta, encuentras la solución.

Ahora, miro tu otro mensaje.

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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 02/10/2019 05:26:16
Hola Sr. Phil!

Es que no quiero imprimir un ticket solo quiero abrir el cajón.
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 02/10/2019 19:00:21
Comprendo, pero en tu primero mensaje, dices "puedo imprimir tickets y el cajon se abre automáticamente después de imprimir el ticket".
Este es la razón que creo que el cajón es abierto por la impresora. Si no es como este, dices me que es el código que envías con el ticket para imprimar ...
Dices que la impresora es conectada a USB. ¿Dónde es conectado el cajón ?

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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 03/10/2019 06:31:12
Hola Sr. Phil, muchas gracias por responder.

El Cajón esta conectado a la impresora, eso quiere decir que forzosamente tengo que abrir el cajón atravez de la impresora?
Es decir que solo imprimiendo un documento, la impresora activará la secuencia de escape para abrir el cajón?
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 03/10/2019 09:21:43
Hola Matt,

Este es exactamente como dices !
Este la razon porque tienes que probor de enviar una linea vacia y sin "FormFeed". Tienes que probar los caracteres ASCII 0 y 255.

Quizá puedes aceptar que el paper avanza de solamente una linea ...

Que tenga un buen dias ...
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 03/10/2019 13:29:02
Envias me las detalles de la impresora (Marca, tipo, nombre, ...)
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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 05/10/2019 17:02:35
Hola Sr. Phil!

Creo yo que no necesito enviar una linea vacía y sin "FormFeed", ni probar los caracteres ASCII 0 y 255.

con este código, la impresora ya avanza el papel una linea:
1
2
Private Sub Abrir_Cajon_PrintPage(sender As Object, e As PrintPageEventArgs) Handles Abrir_Cajon.PrintPage
End Sub
y es lo que precisamente quiero evitar.

No quiero enviar marcas, ni modelos de impresoras, por que el usuario final podría tener cualquiera, y no quiero programar para un modelo en
especifico
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 05/10/2019 18:28:13
El cajón se abre con este código ?

1
2
3
Private Sub Abrir_Cajon_PrintPage(sender As Object, e As PrintPageEventArgs) Handles Abrir_Cajon.PrintPage
 
End Sub

Y también el cajón se abre cuando imprimas un ticket ?
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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 05/10/2019 18:53:05
Si el cajón se abre con ese código y también cuando imprimo un ticket, esto es porque en la propiedades de la impresora (en windows) especifique que abra el cajón después de imprimir el ticket. Y con el código anterior se envía un documento en blanco, pues entonces el papel avanza una linea y se abre el cajón.
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 06/10/2019 14:26:20
Comprendo ...

Este es la razón porque debes aceptar una línea inútil de papel. Esta sera en el ticket siguiente, solo un poco de margen en más.

Quizá puedes buscar en los detalles de evento PrintPage ( e. ...). Para ejemplo, puedes probar :

1
2
3
4
5
Private Sub Abrir_Cajon_PrintPage(sender As Object, e As PrintPageEventArgs) Handles Abrir_Cajon.PrintPage
 
e.cancel = True
 
End Sub

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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 08/10/2019 04:39:48
Hola Sr. Phil!

Agregar:
1
e.cancel = True
cancela la impresión y no abre el cajón.

busque en la propiedades del evento "PrintPage" y encontré la propiedad [PrintAction]
PrintAction
pero no se como hacerla funcionar, para que envié solo un "PrintToPreview" y de esa manera se complete la impresión y se abra el cajón.

También encontré en las propiedades de la impresora algo llamado: "Feed distance after printing" estaba en: 12mm y lo cambie a la opción mínima disponible que es de: 3mm. Ahora mando un documento vació y solo avanza 3mm en lugar de 12mm y abre el cajón.
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 08/10/2019 11:39:02
Hola,

" ... envié solo un "PrintToPreview" y de esa manera se complete la impresión y se abra el cajón ..." así que, el problema es solucionado ?
Y no es necesario de cambiar "Feed distance after printing" ? Atención, si cambiar "Feed distance after printing", tienes que re-cambiar antes imprimir realmente un ticket (3 mm entre dos tickets es un poco corto).

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
Imágen de perfil de Matt
Val: 134
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Matt (45 intervenciones) el 09/10/2019 02:35:43
No el problema aun no se ha solucionado, como implemento PrintAction.PrintToPreview ?
no tengo idea, ya le intente de varias maneras y no encuentro como hacerlo funcionar.
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
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como abrir un cajón de dinero sin imprimir ticket desde VB.NET?

Publicado por Phil Rob (441 intervenciones) el 09/10/2019 15:32:47
Hola Matt,

La propiedad PrintAction, que toma los valores PrintPreview, PrintToFile y PrintToPrinter, es (yo penso) destinado por un nivel más primitivo de programacion. Notamente, permite la creación de las herramientas PrintPreviewDialog y PrintDialog. Cuando tengo estas herramientas, no programo con PrintAction. Penso que no puedes utilisar PrintAction en tu programa.

Para tu problema, creo que si ningun comando de imprimir arriba a la impresora, el cajón no vaya se abrir.

Puede probar con mi programa de imprecion (ya enviado ImpresionES.zip, pero todavía adjunto a este mensaje).
Propongo que testar en primero con elección de la impresora para tickets, y segundo con “checked” “Imprimer dans un fichier” (o imprimir en archivo), y también que cancela el “Preview” sin imprimir.

Creo que el cajón se abre cuando imprimas en la impresora Ticket, y no se abre cuando imprimas en un archivo ni cuando cancelas el “Preview”.

Algunas imagenes ...

No necesario de escribir datos, el botón "Imprimir" es suficiente.
Imprimir1

En el PrintDialog, puedes seleccionar la impresora o seleccionar "Imprimir en archivo".
Imprimir2

Puedes imprimir de PrintPreviewDialog, pero también puedes cerrar sin imprimar.
Imprimir3

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