это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
В этой статье я постараюсь рассказать Вам о самых удобных и распространенных способах печати текстов и изображений из Ваших приложений. Печать используется в приложениях не так часто, вот и возникают различные вопросы по этому поводу. Иногда бывает необходимо "вывести на принтер" график получившейся функции или отчет о деятельности фирмы и т.д. Прочитав эту статью Вы освоите все самое необходимое для печати данных из Ваших приложений.
Итак, начнем рассмотрение этих способов.
Печать с помощью функций файлового ввода/вывода
Здесь мы будем использовать простейшие функции ввода/вывода в файл, только свяжем выходной поток не с файлом, а с принтером. Рассмотрим пример печати текста, содержащегося в компоненте TEdit:
var P:TextFile;
begin
AssignPrn(P);
Rewrite(P);
Writeln(P, Edit1.text);
CloseFile(P);
End;
Здесь мы объявляем переменную P типа TextFile. Процедура AssignPrn является разновидностью процедуры Assign. Она настраивает переменную P на порт принтера и позволяет работать с ним как с файлом. Rewrite открывает порт для работы, а WriteLn - выводит информацию на печать. Важно закрыть порт принтера командой CloseFile!!!
Этот способ можно использовать для распечатки строк списка или каких-нибудь других данных, по мере их поступления в программу.
Печать текстов в обогащенном формате методом Print
Если Вы пытались попробовать распечатать тексты из Вашего приложения, то , наверно, Вам известно, что компонент TRichEdit имеет метод Print, позволяющий печатать текст, хранящийся в этом компоненте. Этот метод имеет только один параметр - строку, которая при просмотре в Windows очереди печатаемых заданий является именем задания. Приведу пример использования (хотя он очевиден :)
RichEdit1.Print('Print of our RichEdit1');
Следует заметить, что печать воспроизводит все особенности форматирования текста, так же происходит автоматический перенос строк и разбиение текста на страницы. При этом длина строк ни как не связана с размерами компонента RichEdit.
Печать с помощью объекта Printer
В Дельфи имеется класс печатающих объектов TPprinter, который обеспечивает печать текстов, изображений и других объектов, расположенных на его канве (Canvas).
Модуль Дельфи Printers, содержит переменную Printer, которая является объектов типа TPrinter. Поэтому для использования этой переменной в Ваших программах, надо подключить модуль Printers в оператор Uses (к сожалению автоматически этого не делается)
Рассмотрим подробнее некоторые свойства и методы объекта TPrinter:
| Свойство, метод | Описание |
| Canvas | Канва - место в памяти, в котором формируется страница или документ перед печатью. |
| TextOut | Метод канвы, позволяющий посылать в нее текст |
| BeginDoc | Используется для начала задания печати |
| EndDoc | Используется для завершения задания печати. При этом печать начинается только после вызова этого метода! |
| PageHeight | Возвращает высоту страницы в пикселах |
| NewPage | Принудительно начинает новую страницу |
| PageNumber | Возвращает номер печатаемой страницы |
Приведу два примера печати с помощью объекта TPrinter текста и изображения.
Печать текста можно осуществить так:
Printer.BeginDoc;
Printer.Canvas.TextOut(10,10,'Печатаем с помощью объекта Printer');
Printer.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 есть существенный недостаток: он не производит автоматическое разбиение на строки и страницы, поэтому печатать длинные тексты предпочтительнее с помощью компонента RichEdit или Memo.
Печать форм
У форм в Delphi есть метод Print, который печатает всю клиентскую область формы. При этом полоса заголовка и полоса главного меню формы не печатаются.
Свойство PrintScale определяет опции масштабирования изображения формы при печати:
| poNone | Масштабирование не используется. Размер изображения может изменяться в зависимости от используемого принтера |
| poPrintToFit | Делается попытка напечатать изображение формы того же размера, который виден на экране |
| poProportional | Увеличивает или уменьшает размер изображения, подгоняя его под размер страницы. |
На этом мы заканчиваем обзор способов печати данных из Ваших приложений. Надеюсь, что еще одним вопросом у Вас стало меньше :))
Список литературы
Михаил Христосенко. Различные способы печати из приложений
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Необходимо выполнить и оформить три лабораторных работы в программе...
Лабораторная, Математическое моделирование
Срок сдачи к 15 янв.
Практические работы
Другое, Транспортная инфраструктура, автомобильное дело, машиностроение, детали машин
Срок сдачи к 18 янв.
Найти какие государственные программы реализуются по теме работы, а также как они перекликаются с исследователями по приложенному файлу
Статья, Муниципальное Госуправление, менеджмент, экономика
Срок сдачи к 16 янв.
Выполнить 3 теста по Технологии продукции общественного питания. М-08210
Тест дистанционно, Общественное питание, кулинария
Срок сдачи к 15 янв.
Патентные исследования по теме студенческой работы «Составы и способы получения пленок из полимерных материалов»
Курсовая, Основы научных исследований и защита информации
Срок сдачи к 23 янв.
Сущность языка, проблема его происхождения
Реферат, Русский язык и культура речи
Срок сдачи к 15 янв.
Методика преподавания дисциплин (модулей) психолого-педагогического профиля
Тест дистанционно, Психология и педагогика
Срок сдачи к 16 янв.
Криминалистика. Ответить на 2 вопроса и одна задача
Решение задач, Юриспруденция
Срок сдачи к 18 янв.
Вам нужно сконструировать представления для решения трех различных...
Решение задач, Анализ и визуализация данных, дизайн, информатика экономика,
Срок сдачи к 15 янв.
Решить 4 задачи по оперативно-розыскному обеспечению национальной безопасности
Решение задач, Юриспруденция
Срок сдачи к 18 янв.
Заполните форму и узнайте цену на индивидуальную работу!