это быстро и бесплатно
Оформите заказ сейчас и получите скидку 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 заданиями. Контролируйте процесс написания работы в режиме онлайн
Требуется разобрать ст. 135 Налогового кодекса по составу напогового...
Решение задач, Налоговое право
Срок сдачи к 5 дек.
Школьный кабинет химии и его роль в химико-образовательном процессе
Курсовая, Методика преподавания химии
Срок сдачи к 26 дек.
Реферат по теме «общественное мнение как объект манипулятивного воздействий. интерпретация общественного мнения по п. бурдьё»
Реферат, Социология
Срок сдачи к 9 дек.
Выполнить курсовую работу. Образовательные стандарты и программы. Е-01220
Курсовая, Английский язык
Срок сдачи к 10 дек.
Изложение темы: экзистенциализм. основные идеи с. кьеркегора.
Реферат, Философия
Срок сдачи к 12 дек.
Заполните форму и узнайте цену на индивидуальную работу!