к оглавлению

Текстовая и графическая печать в Delphi

Содержание


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

Обзор

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

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

        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 - переход на новую страницу.

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

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

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

    к оглавлению


    Знаете ли Вы, что примитивные конструкторы - это операции, которые создают объекты, соответствующего им типа, не используя никаких объектов в качестве аргументов. Примером такой операции является создание пустого списка.

    НОВОСТИ ФОРУМАФорум Рыцари теории эфира
    Рыцари теории эфира
     05.07.2020 - 12:30: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
    05.07.2020 - 12:29: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
    05.07.2020 - 12:29: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Пламена Паскова - Карим_Хайдаров.
    05.07.2020 - 09:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Проблема народного образования - Карим_Хайдаров.
    05.07.2020 - 09:17: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Фурсова - Карим_Хайдаров.
    05.07.2020 - 08:35: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
    05.07.2020 - 08:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ЗА НАМИ БЛЮДЯТ - Карим_Хайдаров.
    05.07.2020 - 07:57: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Игоря Алексеевича Гундарова - Карим_Хайдаров.
    04.07.2020 - 18:05: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> КОМПЬЮТЕРНО-СЕТЕВАЯ БЕЗОПАСНОСТЬ ДЛЯ ВСЕХ - Карим_Хайдаров.
    03.07.2020 - 14:17: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> КОЛЛАПС МИРОВОЙ ФИНАНСОВОЙ СИСТЕМЫ - Карим_Хайдаров.
    03.07.2020 - 11:23: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от проф. В.Ю. Катасонова - Карим_Хайдаров.
    03.07.2020 - 09:27: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
    Bourabai Research Institution home page

    Bourabai Research - Технологии XXI века Bourabai Research Institution