Урок 6: Печать текстовая и графическая

  1. Обзор
  2. В данной статье рассказывается
    о возможных способах вывода информации на печать из программы, созданной
    в Delphi. Рассматривается вывод документа
    в текстовом режиме принтера, вывод графики с помощью объекта TPrinter
    и
    печать содержимого формы. О выводе на печать отчетов с помощью генератора
    отчетов ReportSmith рассказывается
    ниже.

  3. Печать в текстовом режиме

Содержание урока 6:

Обзор

Печать в текстовом режиме

Вывод содержимого формы на печать

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

Если Вам нужно напечатать на принтере документ в текстовом режиме, то
это делается следующим образом. С принтером Вы работаете, как с обычным
текстовым файлом, за исключением того, что вместо процедуры
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
изменены названия некоторых функций и переменных

  • AssignFile вместо Assign
  • CloseFile вместо Close
  • TextFile вместо Text
  1. Вывод содержимого формы на
    печать
  2. Иногда в программе требуется просто получить твердую копию экранной
    формы. В
    Delphi это делается
    более, чем просто – у объекта TForm есть
    метод Print, который и нужно вызвать
    в нужный момент.

  3. Графическая печать (объект
    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
      1. Пример ex06.zip

В примере (проект PRINTS.DPR,
рис.1 ) реализованы все три вышеописанных
ситуации.

Tags: , , , ,

Дата создания: Среда, июня 4, 2008 - 21:30 и находится в категории Уроки Delphi. Вы можете отслеживать ответы через RSS 2.0. Вы можете ответить.

Ответить

Вы должны быть в системе для комментирования.