Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Gracias Egostar, si supieras nunca en mi vida he trabajado con canvas y eso que es la primera vez que hago impresiones de este tipo (la de Tickets). Existe algun tutotial o ejemplo?. te lo agradeceria.
Bueno, aqui te pongo un pequeño código, pruebalo y adaptalo a tus necesidades

Código Delphi [-]
Uses Printers;

procedure Form1.Imprime;
var 
   I,X,Y,Lineas : Integer;
begin
   with Printer do begin
      Canvas.Font.Size := 10;
      Canvas.Font.Name := 'Courier New';
      Orientation := poLandscape;
      Y := 10;  //Se asigna en que posición se va a comenzar a imprimir 
      X := 100; //Asignamos (en este caso) en que columna se va a imprimir
      Lineas := 100; //Asignamos cuantas lineas vamos a imprimir;
      BeginDoc;
      for I := 1 to lineas do begin
          Canvas.TextOut(X,Y,'LINEA A IMPRIMIR');
          Y := Y + TextHeight('Yy'); //Esto funciona como un ENTER 
      end;
      EndDoc;
   end;
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 25-01-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
aqui hay un hilo donde hablan tambien del canvas y del tamaño

http://www.clubdelphi.com/foros/show...imir%2C+canvas
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 25-01-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Muchas Gracias Amigo Egostar!, de verdad no se como agradecertelo.

Cita:
Empezado por eduarcol Ver Mensaje
aqui hay un hilo donde hablan tambien del canvas y del tamaño

http://www.clubdelphi.com/foros/show...%2C+canvas
ahora mismo lo estoy revisando amigo eduarcol, muchas gracias.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 13-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Amigo Egostar, empecé a probar el código que me facilitaste para imprimir con canvas, excelente, me funciona perfecto, pero tengo un par de dudas:

Código Delphi [-]
procedure Imprimir;
var
   I,X,Y,Lineas : Integer;
begin
   with Printer do begin
      Canvas.Font.Size := 10;
      Canvas.Font.Name := 'Courier New';
      Orientation := poLandscape;
      Y := 100;  //Se asigna en que posición se va a comenzar a imprimir
      X := 100; //Asignamos (en este caso) en que columna se va a imprimir
      Lineas := 100; //Asignamos cuantas lineas vamos a imprimir;
      BeginDoc;
      for I := 1 to lineas do begin
          Canvas.TextOut(X,Y,'LINEA A IMPRIMIR');
          Y := Y + Canvas.TextHeight('Yy'); //Esto funciona como un ENTER
      end;
      EndDoc;
   end;
end;

Me imprime desde el inicio hasta al final de la hoja o sea me repite la linea desde la primera linea de la hoja hasta la ultima, me imagino que esa es la función de este pedazo de código:

Código Delphi [-]
for I := 1 to lineas do begin
          Canvas.TextOut(X,Y,'LINEA A IMPRIMIR');
          Y := Y + Canvas.TextHeight('Yy');

y si son nada mas dos lineas?, como saco los valores desde un DBGrid? de la forma normal:

Código Delphi [-]
for I := 1 to lineas do begin
           Canvas.TextOut(X,Y,'+ADOTable.Field[0].asstring+');
           Y := Y + Canvas.TextHeight('Yy');

o desde el mismo DBGrid (eso no lo sabría hacer).

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 13-02-2008 a las 20:29:23.
Responder Con Cita
  #5  
Antiguo 13-02-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 24
AzidRain Va camino a la fama
A reserva de que me mandes por un tubo (o a freir espárragos en España) yo creo que los que te han sugerido usar directamente el canvas tienen toda la razón. QReport no se hizo para este tipo de tareas y por lógica no es lo que hace mejor. Estoy de acuerdo que es la forma más cómoda de hacerlo pero como ya te diste cuenta no es la que te da mejor resultado. Por experiencia propia puedo decirte que vale mas invertirle algunas horas trabajando en algo cuyo resultado no puedes ver de inmediato (como en QReport) pero que al final obtienes un resultado muy bueno. Si te pones a machetearle veras que inclusive puedes crear tu propia clase que se encargue de imprimir directamente el ticket y al final te será mucho más fácil.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 27-05-2008
luchifer luchifer is offline
No confirmado
 
Registrado: jul 2007
Ubicación: Santa Cruz - Bolivia
Posts: 50
Poder: 0
luchifer Va por buen camino
Gracias lo probare

Pero de entrada esta super sencillo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
QuickReport y Ticket escullar Impresión 2 20-06-2008 00:53:18
Problema al imprimir (QuickReport y Windows XP) Morphine Impresión 2 18-11-2005 10:19:29
muy misterioso problema al imprimir quickreport manolop Impresión 0 30-05-2005 17:47:16
imprimir ticket en win xp y en win 98 rebollo75 Impresión 0 19-11-2004 17:49:06
Problema con el Quickreport al imprimir ALMERA Impresión 0 25-06-2003 13:29:59


La franja horaria es GMT +2. Ahora son las 22:30:46.


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