Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:
Код:Секретный код
Повторить:

Меню сайта




Ваше мнение
Как вы оцените наш сайт?

Замечательный
Хороший
Обычный
Плохой
Отвратительный


Результаты
Другие опросы

Всего голосов: 801
Комментарии: 10


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



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

Обзор
Печать в текстовом режиме
Вывод содержимого формы на печать
Графическая печать (объект TPrinter)
Пример

Обзор

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

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

Если Вам нужно напечатать на принтере документ в текстовом режиме, то это делается следующим образом. С принтером Вы работаете, как с обычным текстовым файлом, за исключением того, что вместо процедуры AssignFile нужно вызывать процедуру AssignPrn. В примере на принтер выводится одна строка текста:

procedure TForm1.Button1Click(Sender: TObject);
var
   To_Prn : TextFile;
begin
   AssignPrn(To_Prn);
   Rewrite(To_Prn);
   Writeln(To_Prn, 'Pinter in Text Mode');
   CloseFile(To_Prn);
end;

Здесь необходимо, видимо, пояснить, что по сравнению с BP 7.0 в Delphi изменены названия некоторых функций и переменных в модуле System :

AssignFile вместо Assign
CloseFile вместо Close
TextFile вместо Text

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

Иногда в программе требуется просто получить твердую копию экранной формы. В Delphi это делается более, чем просто - у объекта TForm есть метод Print, который и нужно вызвать в нужный момент.

Графическая печать (объект 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

    Пример

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

    [ Предыдущий урок | Содержание | Следующий урок ]



    Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


    .


    книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать