Ver Mensaje Individual
  #1  
Antiguo 11-11-2012
BioStudio BioStudio is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 15
Reputación: 0
BioStudio Va por buen camino
Question 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)?

Última edición por BioStudio fecha: 11-11-2012 a las 06:25:57. Razón: Code
Responder Con Cita