. . . hab's in NE555 geändert.
Die Ausdrucke sind wirklich etwas unscharf
- ist für mich aber im Moment noch akzeptabel.
Code:
function PrintForm(L, T, W, H : Integer; Form : TForm; ScaleFH, ScaleFV, marginLeft, marginTop : Integer) : Boolean;
var
Bmp : TBitmap;
ScaleH, ScaleV : Double;
begin
try
Printer.Orientation := poLandscape;
Bmp := TBitmap.Create;
Bmp.Width := W;
Bmp.Height := H;
Bmp.Canvas.copyrect(Bmp.Canvas.Cliprect, Form.Canvas, Rect(L, T, L + Bmp.Width, T + Bmp.Height));
ScaleH := GetDeviceCaps(Printer.Handle, logPixelsX) / ScaleFH;
ScaleV := GetDeviceCaps(Printer.Handle, logPixelsY) / ScaleFV;
Printer.BeginDoc;
Printer.Canvas.StretchDraw(Rect(marginLeft, marginTop, marginLeft +
Round(Bmp.Width * ScaleH), marginTop +
Round(Bmp.Height * ScaleV)), Bmp);
Printer.EndDoc;
finally
Bmp.free;
end;
end;
mal sehen, ob ich noch 'was verbessern kann . . .
Markus H.