Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
imprimir con printer imagen y texto con canvas

Hola de nuevo,

Aqui preguntando de nuevo detalles.
Ya estuve viendo post por todos los lados, ejemplos etc, para poder imprimir en una impresora de tickets con logotipo incluido.

He conseguido imprimir un logotipo, y tambien un texto formateado, pero el problema que tengo es que si imprimo primero el logotipo, con enddoc, me hace un salto de lineas, luego imprimo el texto, y tambien, imagino que enddoc no se puede cambiar para que no haga los saltos de linea (si si se puede comentadlo, porque he buscado y no hay forma).
Asi que pense, en mi ignorancia de no entender muy bien los canvas, o bien no se pueden combinar varias cosas, pero lo hice.

Aqui esta el resultado, que no funciona por cierto, solo me imprime el texto pero la imagen inicial no.


Código Delphi [-]
procedure tform1.imprimelinea;
const
  margin_left = 0;
  margin_top=0;
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(0, 0, 365, 60),
      MiMapadeBits.Canvas, Classes.Rect(0, 0, MIMAPADEBITS.Width, mIMAPADEBITS.Height));

    for i := 0 to IMPRIMIR_ticket.Count - 1 do
     begin
    Canvas.TextOut(
      MARGIN_LEFT,
      MARGIN_TOP + i*Printer.Canvas.TextHeight(imprimir_ticket.Strings[i]),
      imprimir_ticket.Strings[i]);
     end;
  finally
    EndDoc;
    mimapadebits.Free;
  end;

end;

Lo que hago ahi es cargar los datos y luego se los paso al canvas, y finalmente imprimo.

alguna idea?

Por cierto lo de la imagen (como digo, si funciona en modulo aparte) lo saque de un ejemplo de lazarus y lo del texto lo saque de un post de esta magnifica pagina.

gracias amigos.
Responder Con Cita
  #2  
Antiguo 05-03-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Ya lo pude lograr, esta poniendo la misma posicion vertical al grafico y el texto, tan solo tuve que poner 70 al margin top.

Claro que todo esto lo probe sobre un panel para ver como quedaba .

Espero que le sirva a alguien.

saludos

la verdad que viendo como trabaja un canvas se pueden hacer muchas cosas que desconocia. Me toca seguir investigando .
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
Alinear texto para imprimir en canvas Oscar Guzmán Impresión 2 16-07-2014 03:47:46
Align en Printer.Canvas principiante22 Impresión 1 18-12-2008 17:29:51
Imprimir Bitmap con Printer.Canvas Peterlolazo Impresión 1 12-11-2007 22:13:29
Imprimir una imagen con Canvas emtas Impresión 2 14-04-2005 19:14:50
imprimir la imagen de image1 con el canvas? click Impresión 1 04-12-2004 13:56:51


La franja horaria es GMT +2. Ahora son las 21:50:18.


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