Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Imprimir formulario como Ticket, regular resolución? (https://www.clubdelphi.com/foros/showthread.php?t=81402)

BioStudio 11-11-2012 06:25:10

Imprimir formulario como Ticket, regular resolución?
 
Buenas a todos, estoy utilizando un formulario como si fuera un ticket por ejemplo, y quiero imprimirlo con una impresora que esta instalada como "Impresora Predeterminada", por ende colocamos un Button y al hacer clic ponemos el siguiente code:

Código Delphi [-]
uses 
  Printers, etc, etc;

procedure TForm4.Button1Click(Sender: TObject);
var
  bmp: TBitMap; 
  x, y, WDPI, HDPI: Integer; 
  OldColor: TColor; 
begin 
  Screen.Cursor := crHourGlass; 
  OldColor := Form4.Color;
  Form4.Color := clWhite;
  Form4.Update;
  bmp := Form4.GetFormImage;
  with Printer do 
  begin 
  Orientation := poLandscape; 
  BeginDoc; 
  HDPI := PageHeight div 8; 
  WDPI := PageWidth div 8; 
  x := PageWidth - Round(WDPI * 0.4);
  y := PageHeight - Round(HDPI * 0.5);
  Canvas.StretchDraw(Rect(0, 0, x, y), bmp); 
  EndDoc; 
  end; 
  bmp.Free; 
  Form4.Color := OldColor;
  Screen.Cursor := crDefault; 
end;

end.

El cual toma el Form correspondiente (Form4 en mi caso) y lo convierte a una imagen para luego imprimirlo, el problema es que al imprimirlo el formulario se expande en una hoja A4 en ves de quedar con la resolución que debería tener, ¿Alguien sabe como especificar la resolución del Formulario (Ej. Width: 350 / Height: 320)?

newtron 11-11-2012 19:51:15

Hola.

¿Has comprobado los valores que tienen PageHeight y PageWidth? es posible que tengan los parámetros de las dimensiones del A4.

Saludos

BioStudio 11-11-2012 22:53:12

Probe pero no cambia en nada, le definí los parámetros de resolución y nada.

nlsgarcia 12-11-2012 01:13:01

BioStudio,

Te comento:

1- Probé tu código en una pantalla que solo tenia un Control TListbox y un TButton, imprimiéndose correctamente con orientación Landscape según lo indicado en el programa y al tamaño de papel definido por defecto en el Printer HP DeskJet 4400 : Letter 8.5 x 11 In.

2- ¿Que tamaño de papel tiene definido tu Printer por defecto?

3- Si cambias el Printer por defecto ¿Se mantiene el mismo resultado de impresión en A4?

Espero sea util :)

Nelson.


La franja horaria es GMT +2. Ahora son las 07:20:27.

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