32 Урока Borland Delphi

         

о возможных способах вывода информации


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

     
     
     
     
     
    Содержание урока 6:
    Обзор
    Печать в текстовом режиме
    Вывод содержимого формы на печать
    Графическая печать (объект TPrinter)
    Пример  ex06.zip
     
     
    1. Обзор

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


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

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

          2.  

          Иногда в программе требуется просто получить твердую копию экранной формы. В Delphi это делается более, чем просто - у объекта TForm есть метод Print, который и нужно вызвать в нужный момент.
           
           
        1. Графическая печать (объект TPrinter)
        2. И все же, более интересно, как из программы созданной в 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 ) реализованы все три вышеописанных ситуации.

               
               
               
               

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