Используйте приведенный код. И не забудьте включить Printers в список используемых модулей:
Строки, на которые вы должны обратить внимание, справа содержат комментарий // **. Данный код осуществляет корректное масштабирование изображения, в противном случае при печати вы можете получить небольшую иконку. Разрешение принтера больше, чем разрешение вашего дисплея.
procedureAngleTextOut(CV: TCanvas; const
sText: string
; x, y, angle: integer); var
LogFont: TLogFont; SaveFont: TFont; 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);
// ** finallyEndDoc;
// ** end; end
;