Воскресенье, 19.05.2024, 00:44
Начало Каталог статей Регистрация Вход
Вы вошли как "Гость" · RSS
Меню сайта
Категории каталога
Visual Basic [33]
Все о Visual Basic. Как писать, как оптимизировать, что лучше, что хуже...
Юмор [0]
Вообще веселые истории из вашей жизни
Форма входа
Поиск по каталогу
Друзья сайта
Наш опрос
Статистика
Каталог статей
» Статьи » Visual Basic

Работа с принтером
Сегодня врубрике для начинающих рассмотрим принтеры.

Первое - это объект Printer. В сущности этот объект и связывает программу с принтеров, но стоит иметь ввиду, что это просто переменная типа Printer, но вот его свойства и методы - это что-то невероятное, а принцип применения - вообще нечто. Итак:
Свойство/методОписание Примерение
PrintПечатает текст в "текущем" месте листа Printer.Print "Welcome"
LineПозволяет нарисовать линию, прямоугольник или закрашенный прямоугольник Printer.Line (x0,y0)-(x1,y1),BF
CircleПозволяет нарисовать окружность, дугу или секторPrinter.circle (x,y),r,begin,end
CurrentX, CurrentYПозволяет определить или задать "Текущие" координаты для выводаPrinter.CurrentX=0:Printer.CurrentY=0
DeviceName Позволяет получить имя принтера  
CopiesЗадает количество копий для печати 
Duplex Позволяет получить или задать режим двусторонней печати 
PaintPuctureПозволяет вывести рисунок в определенном месте бумаги  
Width, Height Выводит соответственно ширину и высоту области печати на листе  
KillDoc Отменяет печать до момента отправки на принтер  
NewPage Завершает печать текущей страницы и начинает новую  
EndDoc Завершает печать и передает задание на принтер.  
ScaleMode Позволяет установить метрическую единицу для работы с принтером  
Теперь внесем немного ясности. Как я уже говорил, Printer - это переменная и если мы с ней ничего не проделывали, то она имеет значение принтера "по умолчанию", установленного в системе. Тут вы зададите естественный вопрос, а как же быть с остальными принтерами? Ну и получите естественный ответ: Printers. Вот так дешево и сердито. Спросите что все это значит? А то и значит, что Printer - переменная, а Printers - массив объектов. Чтобы перебрать все принтеры можно сделать так:
Sub PrinterList()
For i=0 to Printers.Count - 1
ListBox.Add Printers.Item(i).DeviceName
Next i
End Sub
Из примера видно как получить список возможных принтеров. А подключить определенный принтер можно используя список
Sub ListBox_Click()
Set Printer=Printers.Item(ListBox.ListIndex)
End Sub
Таким образом мы на нашу переменную Printer подключили выбранный принтер. Давайте теперь попробуем что-нибудь нарисовать и напечатать.
Sub CommandButton_Click()
Printer.ScaleMode=6 ' Задаем режим "Миллиметры"
Printer.Line (10,30)-(110,190),0,B ' Рисуем рамку 10*15
Printer.CurrentY=30-Printer.TextHeight("Моя Фотография")' Располагаем текст аккурат над рамкой
Printer.CurrentX=10+(100-Printer.TextWidth("Моя фотография"))/2 ' Центруем текст посередине рамки
Printer.Print "Моя фотография" ' Собственно печатаем текст
'В рамку можно как вывести картинку
Printer.PaintPicture LoadImage("C:\MyPhoto.jpg")
'Так и нарисовать с помощью Circle

Printer.EndDoc ' Посылаем в печать
End Sub
Итак мы рассмотрели варинты работы с принтером как "по умолчанию", так и с помощью ручного выбора. Рисование же на принтере выполняется точно также, как и на PictureBox. С той лишь разницей, что PictureBox не поддерживает методы NewPage, EndDoc, KillDoc. Применение методов Line, Circle такое же как и в QBasic, при рисовании на экране, с той лишь разницей, что тут не нужно указывать цвет. Цвета задают параметры ForeColor, FillColor, FillStyle, DrawStyle. Еще стоит сказать о функциях TextWidth И TextHeight. Они позволяют нам тонко форматировать вывод. К примеру есть переменная S строкового типа (Dim S as string). Допустим, что в нее мы записали (S="Привет мир"). Тогда TextWidth(S) - выдаст длину фразы, но не в байтах или символах, а в точках. В свою очередь TextHeight(S) - выдаст высоту этой строки, опять же в точках.

Категория: Visual Basic | Добавил: casper (07.11.2006) | Автор: Casper
Просмотров: 1694 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
CasperSOFT ©2024