Введение в DELPHI

       

Графическая печать (объект TPrinter)


И все же, более интересно, как из программы созданной в Delphi можно вывести на печать графическую информацию. Для этого есть специальный объект Printer (класса TPrinter). Он становится доступен, если к программе подключить модуль Printers (т.е. добавить имя модуля в разделе uses ). С помощью этого объекта печать на принтере графической информации становится не сложнее вывода этой информации на экран. Основным является то, что Printer предоставляет разработчику свойство Canvas ( работа с канвой описана в предыдущем уроке) и методы, выводящие содержание канвы на принтер. Рассмотрим подробнее свойства и методы объекта Printer.

Свойства Printer:

Aborted - тип булевский; показывает, прервал ли пользователь работу принтера методом Abort.
Canvas - канва, место для вывода графики; работа с Canvas описана в Уроке 5.
Fonts - список доступных шрифтов.
Handle - используется при прямых вызовах Windows API.
Orientation - ориентация страницы, вертикально или горизонтально.
PageWidth, PageHeight, PageNumber - соответственно ширина, высота и номер страницы.
Printers перечисляет все установленные в системе принтеры, а PrinterIndex указывает, какой из них является текущим. Чтобы печатать на принтере по умолчанию здесь должно быть значение -1.
Printing - тип булевский; показывает, начата ли печать (методом BeginDoc).
Title - заголовок для Print Manager и для заголовка перед выводом на сетевом принтере.

Методы Printer:

Abort - прерывает печать, начатую методом BeginDoc
BeginDoc - вызывается перед тем, как начать рисовать на канве.
EndDoc - вызывается когда все необходимое уже нарисовано на канве, принтер начинает печатать именно после этого метода.
NewPage - переход на новую страницу.

Остальными методами объекта в обычных случаях пользоваться не нужно.

Итак, порядок вывода на печать графической информации выглядит следующим образом:

  • выполняется метод BeginDoc
  • на канве (Canvas) рисуем все, что нужно
  • при необходимости разместить информацию на нескольких листах вызываем метод NewPage
  • посылаем нарисованное на принтер, выполняя метод EndDoc



Содержание раздела