100 Компонентів delphi

4.7.2 Друк за допомогою об'єкта Printer

У Delphi є клас друкуючих об'єктів TPrinter. який забезпечує друк текстів, зображень та інших об'єктів, розташованих на його канві - Canvas (див. розділи 3.2 і 4.2). На канві об'єкта типу TPrinter можуть розміщуватися і тексти, і зображення.

Модуль Delphi, іменований Printers. містить змінну Printer. що є об'єктом типу TPrinter. Ця змінна еквівалентна невізуальні компоненти, тільки відсутньому в палітрі бібліотеки. Щоб використовувати Printer. треба додати модуль Printers в оператор uses вашої програми. Автоматично він не додається.

Розглянемо деякі властивості і методи об'єкта типу TPrinter.

Канва Canvas - місце в пам'яті, в якому формується сторінка або документ перед друком. Canvas має низку властивостей, включаючи Pen (перо) і Brush (кисть), які дозволяють вам робити малюнки і поміщати на них текст. Детальний опис канви і методів роботи з нею ви знайдете в розділі 4.2.

Метод канви, який дозволяє посилати в неї текст (див. Розділ 3.2).

Використовується для початку завдання друку.

Використовується для закінчення завдання друку. Фактична друк відбувається тільки при виклику EndDoc.

Повертає висоту сторінки в пікселях.

Примусово починає нову сторінку на принтері.

Повертає поточний номер друкованої сторінки.

Припустимо, ви хочете надрукувати текст, використовуючи друкує об'єкт. Ви можете написати код виду:

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

Якщо ви хочете надрукувати зображення, що зберігається в компоненті Image1 (див. Розділ 4.3), це можна зробити операторами:

При друку тексту об'єкт Printer не виробляє автоматичного перенесення рядків і розбиття тексту на сторінки. Тому друк довгих текстів за допомогою об'єкта Printer вимагає досить складного програмування. Простіше це робити, наприклад, завантаженням тексту в компонент RichEdit (див. Розділ 3.3.4) і виконанням його методу Print (див. Розділ 4.7.1). Інший можливий варіант - використання описаної в наступному розділі системи QuickReport.

Схожі статті