Печать с помощью объекта Printer

В Delphi имеется класс печатающих объектов TPrinter, который обеспечивает печать текстов, изображений и других объектов, расположенных на его канве — Canvas (см. разделы выше). На канве объекта типа TPrinter могут размещаться и тексты, и изображения.

Модуль Delphi, именуемый Printers, содержит переменную Printer, являющуюся объектом типа TPrinter. Эта переменная эквивалентна невизуальному компоненту, только отсутствующему в палитре библиотеки. Чтобы использовать Printer, надо добавить модуль Printers в оператор uses вашей программы. Автоматически он не добавляется.

Рассмотрим некоторые свойства и методы объекта типа TPrinter.

Свойство, метод Описание
Canvas Канва Canvas — место в памяти, в котором формируется страница или документ перед печатью. Canvas обладает рядом свойств, включая Pen (перо) и Brush (кисть), которые позволяют вам делать рисунки и помещать на них текст. Подробное описание канвы и методов работы с ней вы найдете в разделе выше.
TextOut Метод канвы, который позволяет посылать в нее текст (см. разделе выше).
BeginDoc Используется для начала задания печати.
EndDoc Используется для окончания задания печати. Фактическая печать происходит только при вызове EndDoc.
PageHeight Возвращает высоту страницы в пикселях.
NewPage Принудительно начинает новую страницу на принтере.
PageNumber Возвращает текущий номер печатаемой страницы.

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

Printer.BeginDoc;Printer.Canvas.ТехtOut(10, 10, 'Я печатаю через объект Printer');Printer.EndDoc;

Этот код вызывает печать на канве принтера текста «Я печaтаю через объект Printer», начиная с десятого пикселя слева и десятого сверху. BeginDoc запускает задание на печать. Текст посылается на канву с помощью метода TextOut объекта Canvas. Метод EndDoc вызывает печать текста и останавливает задание на печать.

Если вы хотите напечатать изображение, хранящееся в компоненте Image1 (см. раздел выше), это можно сделать операторами:

Printer.BeginDoc;with Image1.Picture.BitMap do Printer.Canvas.CopyRect(Rect(0, 0, Height, Width), Canvas, Rect(0, 0, Height, Width));Printer.EndDoc;

При печати текста объект Printer не производит автоматического переноса строк и разбиения текста на страницы. Поэтому печать длинных текстов с помощью объекта Printer требует достаточно сложного программирования. Проще это делать, например, загрузкой текста в компонент RichEdit (см. разделе выше) и выполнением его метода Print (см. разделе ранее). Другой возможный вариант — использование описанной в следующем разделе системы QuickReport.








Дата добавления: 2014-12-01; просмотров: 775;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.