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 27-06-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
TPrinter en delphi

Hola, estoy y necesito imprimir directamente a las canvas de la impresora, yo ocupo la clase "Printers", pero tengo 2 problemillas:

esta intrccuion utilizo:

Código Delphi [-]
With printer do begin
BeginDoc;
Canvas.Draw(0, 0, MyGrapichs)
EndDoc;
end;

pero el primer problema es que al imprimir me sale demasiado pequeño algo muy diminuto, nose como darle los parametros para mas chico o mas grande, etc...mi segundo problema es que quiero que en la misma hoja se impriman por ejemplo 20 veces con espacios separados el mismo dibujo, no logro hacer eso...

gracias y espero que me puedan ayudar, ya que lo necesito lo más ante posible desde ya gracias....
54LU2
Responder Con Cita
  #2  
Antiguo 27-06-2008
jconnor82 jconnor82 is offline
Miembro
 
Registrado: feb 2008
Posts: 22
Poder: 0
jconnor82 Va por buen camino
Post

Hola q tal....

Solo tendrias q escalar la imagen en el canvas de la impresora

Código Delphi [-]
  ...
  var
    ScaleX, ScaleY, L, W, H: Integer;
    R: TRect;
  begin
      ...
      with Printer do
      begin
        {Escala - El PixelsPerInch de la Impresora es distinto al q vez en el
         monitor, Form en este caso}
        ScaleX := GetDeviceCaps(Handle, logPixelsX) div Form1.PixelsPerInch;
        ScaleY := GetDeviceCaps(Handle, logPixelsY) div Form1.PixelsPerInch;

        {Nuevo tamaño - En este punto puedes variarlo, eso si hazlo sin 
        perder la relacion de la imagen original, multiplicando a H y W por la
        misma constante}
        H := MyGraphics.Height * ScaleY;
        W := MyGraphics.Width * ScaleX;

        {Si el ancho de la imagen pasa al del canvas de la impresora corrijo el
        el alto... no lo he puesto, pero, lo mismo seria con el alto}
        if Printer.PageWidth < W then
        begin
          H := MulDiv(H, Printer.PageWidth, W);
          W := Printer.PageWidth;
        end;

        {En este punto modificas la posicion en la q kieres q valla la imagen lo
        he puesto en la parte central en tu caso solo tendrias q iterar y variar
        la posicion de la imagen, tambien tendrias q mejorar la parte del
        StretchDraw, pero la idea es esa}
        L := (Printer.PageWidth - W) div 2;
        R := Rect(L, 0, L + W, 0 + H);
        PY := R.Bottom;
        Canvas.StretchDraw(R, bmLogo);
      end;

Espero y te sirva... nos vemos
Responder Con Cita
  #3  
Antiguo 27-06-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
gracias lo probare de ai te cuento mas gracias...

solo una duda mas, como puedo que en la misma hoja se impriman por ejemplo 20 veces separados el mismo dibujo, no logro hacer eso...

GRACIAS

54LU2

Última edición por cmm07 fecha: 27-06-2008 a las 12:51:17.
Responder Con Cita
  #4  
Antiguo 27-06-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
""hola, lo he probado y dice "Printer is not currently printing" cual peude ser el problema??""

Lo he solucionado me faltaba el BeginDoc y End Doc, pero si puedes contestame a la pregunta de arribita..XD

54LU2

Última edición por cmm07 fecha: 27-06-2008 a las 13:24:05.
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
Seleccionar impresora con TPrinter andre Impresión 4 13-04-2012 17:30:51
Canvas de cada pagina TPrinter LordSarevok C++ Builder 0 10-09-2007 10:19:16
Duda sobre la propiedad PageWidth del TPrinter Javi2 Impresión 2 30-11-2005 12:45:31
Imprimir varias páginas con TPrinter sin impresora multibandeja?? burasu Impresión 2 14-06-2005 08:40:09
TPrinter clanmilano Impresión 1 03-01-2005 15:48:40


La franja horaria es GMT +2. Ahora son las 20:47: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