Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Cajón portamonedas

Hola,

Estoy intentando abrir un cajón portamonedas que está conectado a una impresora en el com2, pero no lo consigo. Según el manual de la impresora, tengo que mandarle la siguiente línea hex:

1Bpmt1t2 (<ESC>pmt1t2). Supuestamente esto genera un impulso eléctrico para que abra el cajón. yo he hecho lo siguiente.

var
s : String;
p : TPrint;
begin
. //por aquí cargo la impresora con SeTprinter .
.
BeginDoc
s := #$1B + ........ (lo puesto todo en hex, en decimal y nada).
p.Canvas.TextOut(1,1,s); //Escribo en la printer.
EndDoc;
end;

El problema es que creo que la impresora (que la puedo poner en modo de prueba hexadecimal - Es decir, que lo que se le manda te los muestra el carácter y el código hex - para el escape (1B), interpreta 2E.

La impresora es de tickets.
El comando exacto es.

COMANDO HEX
<ESC>pmt1t2. 1Bpmt1t2 (está escrito así en el manual).

En la ayuda del windows "Control de la impresora", muestran unos códigos en hex comunes para las impresoras. Hace un comentario que es siguiente. Incluir también los corchetes.

<0D> Retorno de carro.

En el código anterior, he probado a poner el 1B con corchetes, con símbolos de mayor y menos, llaves, vamos, de todo y nada.
Responder Con Cita
  #2  
Antiguo 13-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
con impresoras de tickets Epson funciona esta secuencia (almenos las TM)

Código:
 s := #27 + 'p0' + #100 + #0;
Prueba a ver si hay suerte
Responder Con Cita
  #3  
Antiguo 13-08-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
En algunas existe la posibilidad de con el tipo de fuente control, realizar funciones de este tipo

ej: fuente Control y el Caracter 'A','B' o 'C' abre el cajón portamonedas (con diferentes tiempos de por medio)
Responder Con Cita
  #4  
Antiguo 14-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Ya he conseguido imprimir y abrir el cajón. Pero no consigo imprimir con las funciones que me habéis comentado. Cómo imprimo el buffer en la impresora?. Soy un poco inexperto en esto. Cuando me salgo de los reports, Me pierdoooo!!.


Gracias a todos.
Responder Con Cita
  #5  
Antiguo 14-08-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
Para poder utilizar el siguiente código, es necesario que la impresora que estas utilizando, sea capaz de entender estas "funciones de control", si no es así podras ver que imprime la letra 'A'

BeginDoc
....
P.Canvas.Font.Name:='Control';
P.Canvas.TextOut(x,y,'A');
EndDoc;
end;


Nota, yo lo he utilizado directamente con el Rave, poniendo directamente un cuadro de texto con la fuente y el texto específicos.
Responder Con Cita
  #6  
Antiguo 15-08-2003
REDCOM REDCOM is offline
Miembro
 
Registrado: may 2003
Ubicación: México, D.F.
Posts: 25
Poder: 0
REDCOM Va por buen camino
Hola,

Creo que necesitas escribir directamente en la impresora, prueba con el siguiente código:

unit Escribe_directo;

interface

uses printers, WinProcs, WinTypes, SysUtils;

Procedure Prueba_impresora;

implementation

Type
Tpasa_datos = Record
nLong : Integer;
Datos : Array[0..255] of byte;
end;

Procedure Impresion_directa(s : String);
var
CadenaB : TPasa_datos;
Begin
CadenaB.nLong := Length(s);
StrPCopy(@CadenaB.Datos,s);
Escape(printer.handle, PASSTHROUGH,0,@CadenaB,nil);
End;



Procedure Prueba_impresora;
Begin
Printer.BeginDoc;
Impresion_directa(CHR(27)+'&l1O'+'Hello, World!'); // Aqui va el caracter de escape que abre el cajon
Printer.EndDoc;
End;


end.
Responder Con Cita
  #7  
Antiguo 18-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Hola a todos,

En primer lugar quiero daros las gracias a todos por la ayuda que me estáis prestando.

Julià T.: Asignando la fuente control y enviándole una 'A' o 'B' se abre el cajón.

Lo que pasa, es que hay más funciones de la impresora que me gustaría utilizar, como por ejemplo: imprimir en negrita, rojo, etc.

Al final he probado a escribir directamente como dice REDCOM y también funciona.

Pero mi duda ahora es si utilizar el canvas o escribir directamente para escribir el texto, ya que no consigo de esta última manera, cambiar el tamaño de letra.


Una vez más,

GRACIAS A TODOS

Última edición por Motoboy fecha: 18-08-2003 a las 18:59:46.
Responder Con Cita
  #8  
Antiguo 19-08-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
Hola Motoboy:

Tal como indicas, la impresora deberia imprimir la fuente que tu elijas, ya sea negrita, +grande, ... según la fuente que pongas en el canvas.
Lo de imprimir en rojo, no sé que modelo usas, pero diria que tan sólo lo podras hacer si la impresora lo permite, ya sea por la tinta que tenga o con un papel especial.
Referente a las diversas opciones o "funciones" que permite la fuente control, deberias consultar el manual (que seguramente deberás bajar de internet).

Nota: la fuente de control es una fuente de la impresora (no de windows), por lo que si realizas algo para previsualizar con fuentes de impresora, windows no sabe como dibujarlo en pantalla.

Si quieres podrias probar con el TRichEdit que tiene un método que es print, que evitaria tener que ir posicionando cada línea y calculando su posición, admás de poder previsualizar como queda. Estoy casi seguro que con tu impresora debe funcionar correctamente, tan seguro que puedes hacer las pruebas de tamaño y color directamente con el worpad.
Responder Con Cita
  #9  
Antiguo 19-08-2003
REDCOM REDCOM is offline
Miembro
 
Registrado: may 2003
Ubicación: México, D.F.
Posts: 25
Poder: 0
REDCOM Va por buen camino
Hola,

Obviamente ya que tienes la posibilidad de enviar caracteres de
escape directamente a la impresora no debes tener ningun problema para imprimir lo que quieras con ella, la única dificultad es que se debe trabajar un poco más para lograrlo.

Para lograr expandr la fuente con la que se imprime el texto en la impresora, seguramente el manual informa de los caracteres de escape necesarios para ello, te sugiero que los consultes y si no lo consigues, dinos cual es el modelo y marca de impresora, tal vez tengamos algo que te ayude.

Hasta luego.
Responder Con Cita
  #10  
Antiguo 20-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Una vez más muchísimas gracias por vuestra valiosa ayuda.

Voy hacer unas pruebas y ya os comentaré.


Gracias
---------
Responder Con Cita
  #11  
Antiguo 29-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Hola a todos,

Comentaros que las pruebas han sido un éxito. Ya imprimo y el cajón se abre perfectamente.

Una vez más, daros las gracias por todo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:00:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi