Показать сообщение отдельно
  #2  
Старый 02.12.2011, 14:42
freedomman freedomman вне форума
Новичок
 
Регистрация: 12.10.2011
Сообщения: 51
Репутация: 10
По умолчанию

Используйте приведенный код. И не забудьте включить Printers в список используемых модулей:

Строки, на которые вы должны обратить внимание, справа содержат комментарий // **. Данный код осуществляет корректное масштабирование изображения, в противном случае при печати вы можете получить небольшую иконку. Разрешение принтера больше, чем разрешение вашего дисплея.

Код:
procedure AngleTextOut(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); // **

      finally

        EndDoc; // **

      end;

  end;

http://libray.narod.ru/delphi/print_image.html
Ответить с цитированием