То есть, код на компе с Windows 7 (разрешение экрана 1366*768) выполняется как надо, а на компе с Windows XP (разрешение экрана 1024*768) принтер выдает чистый лист. Принтер в обоих случаях используется один и тот же.
Код:
uses Printers;
***********
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.TextOut(10,10,'ПРОВЕРКА');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ScaleX, ScaleY: Integer;
R: TRect;
begin
Printer.BeginDoc;
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, Image1.Picture.Width * ScaleX,
Image1.Picture.Height * ScaleY);
Canvas.StretchDraw(R, Image1.Picture.Graphic);
finally
EndDoc;
end;
end;
end.