Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
imprimir ticket con logo y abrir cajon

Hola amigos,

No sabia si esta pregunta debia de venir en este subforo o bien en impresion .

Estoy intentando imprimir un ticket en una impresora ecs, con su logo y el ticket, y posteriormente abrir el cajon, pero este ultimo no abre.
Ya estuve dando vueltas por el subforo de impresion, pero no encontre nada que me sirviera asi que pongo la procedure donde hago todo el asunto a ver si hay algo que estoy haciendo mal.

Código Delphi [-]
procedure tfventas.imprimelinea;
const
  margin_left = 1;
  margin_top=70;
var
 i: Integer;
 MiMapadeBits : TBitMap;
begin
  MiMapadeBits := TBitMap.Create;
  { Creamos el objeto MiMapadeBits }
  MiMapadeBits.Width := PAGE.Width;   { Definimos su anchura }
  MiMapadeBits.Height := page.Height; { Definimos su altura }
  page.BorderStyle:=bsNone; { Definimos el estilo del borde a ninguno }
  page.PaintTo(MIMAPADEBITS.Canvas, 0, 0);
  page.BorderStyle:=bsSingle;


  with printer do
  try
    BeginDoc;
    Canvas.Font.Name := 'COURIER NEW';
    CANVAS.FONT.Style:=[FSbOLD];
    Canvas.Font.Size := 6;
    Canvas.Font.Color := clBlack;

     Canvas.CopyRect(Classes.Rect(1, 0, 365, 60),
      MiMapadeBits.Canvas, Classes.Rect(0, 0, MIMAPADEBITS.Width, mIMAPADEBITS.Height));

    for i := 0 to IMPRIMIR_ticket.Count - 1 do
     begin
    //   page.Height:=margin_top+ i*printer.Canvas.TextHeight(imprimir_ticket.Strings[i]);
    Canvas.TextOut(
      MARGIN_LEFT,
      MARGIN_TOP + i*printer.Canvas.TextHeight(imprimir_ticket.Strings[i]),
      imprimir_ticket.Strings[i]);

     end;
    canvas.TextOut(0,0,#27+#10+#13+#027+#112+#0+#100+#250+#10+#13);
   // canvas.Clear;
  finally
    EndDoc;

    mimapadebits.Free;
  end;

El ticket con logo si imprime, luego he dejado unos espacios para poder cortar el papel manualmente y finalmente me imprime " +p d" Lo pongo para que veais de donde viene y si se pueden combinar las dos cosas, porque en otro lado dice que tiene que imprimir como raw. Ando hecho un lio.

Gracias amigos.
Responder Con Cita
  #2  
Antiguo 23-10-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por anubis Ver Mensaje
canvas.TextOut(0,0,#27+#10+#13+#027+#112+#0+#100+#250+#10+#13);
Es '27,112,0,25,250', quita el escape de antes, y los 10 y 13.
Responder Con Cita
  #3  
Antiguo 24-10-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por contestar Casimiro Notevi

La verdad es que ya probe varias combinaciones, esta fue la ultima que deje.

Cita:
canvas.TextOut(0,0,#027+#112+#0+#100+#250+#10+#13);
Eso lo saque de la web de seoane, del programa printest y si me abria el cajon pero directamente con su programa.

voy a probar la que propones a ver si funciona .

Cita:
canvas.TextOut(0,0,#27+#112+#0+#25+#250);
Muchas gracias amigo, ya dire como fue .
Responder Con Cita
  #4  
Antiguo 25-10-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
No puedo editar , asi que tengo que responder de nuevo.

Ese codigo la verdad no hace nada, ni imprime nada . El cajon esta unido a la impresora por si sirve de algo.

Ya intente tambien meterlo como texto dentro de string.

Código Delphi [-]
imprimir_ticket.add(chr(27)+chr(112)+chr(0)+chr(25)+chr(250));

Ahi si me imprime una flecha y una "p"

No se si el canvas.out funciona unido al codigo que puse.

gracias de nuevo
Responder Con Cita
  #5  
Antiguo 25-10-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero el canvas es para pintar, ¿no?
Debes usar la opción de imprimir, es un comando más que se envía a la impresora y que esta lo redirige al cajón.
Responder Con Cita
  #6  
Antiguo 25-10-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
perdona mi ignorancia a estas alturas,

cual es el comando para imprimir,
en base a lo que puse en el primer post, si me imprime el logo y el texto del ticket, todo correcto, si le meto la linea acabando el for y añado los codigos de la impresora como texto.

ando muy perdido. Llevo algunas semanas intentando abrir el cajon.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impresora NCR 7197 imprimir logo dfarias Impresión 1 28-06-2013 20:18:26
Imprimir en Tiqueteadora y Abrir Cajon Monedero subzero PHP 0 21-10-2011 22:08:35
Abrir Cajon Portamonedas desde Oki raorre Impresión 0 25-06-2007 12:27:24
abrir cajon de dinero serial Citlalli API de Windows 13 13-12-2006 10:08:41
Abrir cajon portamonedas marcial Varios 1 06-10-2004 17:58:12


La franja horaria es GMT +2. Ahora son las 14:40:49.


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