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)?