В данной статье рассказывается о возможных способах вывода информации на печать из программы, созданной в Delphi. Рассматривается вывод документа в текстовом режиме принтера, вывод графики с помощью объекта TPrinter и печать содержимого формы. О выводе на печать отчетов с помощью генератора отчетов ReportSmith рассказывается ниже.
2) Печать в текстовом режиме
Если Вам нужно напечатать на принтере документ в текстовом
режиме, то это делается следующим образом. С принтером Вы работаете, как с обычным текстовым файлом, за исключением того, что вместо процедуры AssignFile нужно вызывать процедуру AssignPrn. В примере на принтер выводится одна строка текста:
procedure TForm1.Button1Click(Sender: TObject); var To_Prn : TextFile; begin AssignPrn(To_Prn); Rewrite(To_Prn); Writeln(To_Prn, 'Printer in Text Mode'); CloseFile(To_Prn); end;
Здесь необходимо, видимо, пояснить, что по сравнению с
BP 7.0 в Delphi изменены названия некоторых функций и переменных в модуле System :
AssignFile вместо Assign CloseFile вместо Close TextFile вместо Text
3) Вывод содержимого формы на печать
Иногда в программе требуется просто получить твердую копию экранной формы. В Delphi это делается более, чем просто - у объекта TForm есть метод Print, который и нужно вызвать в нужный момент.
4) Графическая печать (объект 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
Сайт автора www.znay-na-5.by.ru По вопросам обмена ссылками пишите мне наe-mail sashazx@nm.ru Александр Емельянов. Использование текста рассылки в коммерческих целях - только с разрешения автора!