div.main {margin-left: 20pt; margin-right: 20pt}
Работа с принтерами в Visual Basic
Tower, Азбука Visual Basic
Начиная писать
статью о работе с принтерами в Visual Basic,
да и вообще в среде Windows,
вспоминается история: 286 компьютер и матричный, 9-иголчатый
принтер CPF-136.
Для того, чтобы напечатать что-либо удобочитаемое, с
выделением текста различными стилями написания,
приходилось запоминать или выискивать в справочнике ASCII последовательности и управляющие коды. С приходом Windows
все упростилось. Более того, большинство программистов на Visual Basic
никогда не используют работу с принтерами, так как за них
это делает программа получения отчетов, например. Может
быть, вам и не придется использовать эти знания в своей
практике, но обладать ими вы просто обязаны, как
профессионал.
Доступ к
свойствам принтера можно получить с использованием объекта
Printer
или коллекции Printers.
Для простоты понимания рассмотрим простейший пример.
Dim
objPrinter As Printer
For
Each objPrinter In Printers
List1.AddItem objPrinter.DeviceName
Next
В этом примере
создается объект типа Printer
- objPrinter.
Далее, для каждого объекта типа Printer
из коллекции Printers
выбирается имя устройства и заполняется этими именами
список List1.
Данная
операция необходима для того, чтобы вывести список
установленных на компьютере принтеров. После этого можно
выбрать принтер и производить на него печать.
Наиболее
важным свойством при печати является ориентация бумаги,
которая может быть установлена с помощью свойства принтера
Orientation. Ниже приведен пример использования данного свойства:
Printers(2).Orientation
= vbPRORLandscape
В этом примере
устанавливается ориентация ландшафта для третьего
принтера, установленного на компьютере. Константы
установленные для ориентации бумаги принтера называются
vbPRORPortrait и vbPRORLandscape.
Для того чтобы
установить размер бумаги, на которой идет печать,
необходимо воспользоваться свойством PaperSize. Пример:
Printers(0).PaperSize
= vbPRPSA4
В примере
устанавливается размер бумаги А4. Полный перечень констант
можно посмотреть в Object
Browser
или прочитать в соответствующем разделе MSDN.
Для установки
качества печати служит свойство принтера PrintQuality. Пример
использования данного свойства:
Printers(0).PrintQuality
= vbPRPQLow
В примере
устанавливается низкое качество печати для первого
принтера в списке принтеров системы. Всего существует
четыре типа качества печати, которые всем хорошо известны:
vbPRPQDraft, vbPRPQLow, vbPRPQMedium, vbPRPQHigh.
Ниже приведен
пример простой печати строки:
Printer.Print
"Мы учимся печатать"
Printer.EndDoc
Как вы
догадались, первая строчка кода отправляет на принтер
сообщение, а вторая строчка сообщает о том, что печать
документа завершена. Последняя команда необходима для того,
чтобы принтер начала печать, если установлена опция печати
после постановки в очередь всего документа.
Если вы хотите
по каким-то причинам прервать печать, то можно
воспользоваться методом объекта Printer.KillDoc.
Этот метода дает команду принтеру удалить задание и
остановить печать документа.
В некоторых
случаях требуется начать печать с новой страницы. Для этого
имеется метод Printer.NewPage,
который сообщает принтеру о том, что дальнейшую печать
необходимо производить на новой странице.
Для того чтобы
отформатировать отпечатанный текст можно воспользоваться
следующими свойствами принтера.
Printer.FontName
= 'Times New Roman' – Задает
тип
шрифта
Printer.FontSize
= 48 – задает размер шрифта
Следующие
параметры дают возможность управлять начертанием шрифта:
FontBold, FontItalic,
FontStrikethru,
FontUnderline. Эти параметры могут принимать логические значение True
или False.
Наконец вы
можете задать количество печатаемых копий. Для этого
существует свойство Printer.Copies,
которым можно установить необходимое значение количества
копий.
Как наследие
старых времен в методах объекта Printer
имеются два метода – Circle и Line.
Данные методы могут быть использованы для вывода на принтер
различных окружностей и линий. Ниже приведены два примера
использования этих методов.
Printer.Circle
(200,200),100
– рисует круг с центром в точке x=200
и y=200
радиусом 100.
Printer.Line
(100,100) – (200,200) – рисует
линию начинающуюся в точке x=100
и y=100,
а заканчивающуюся в точке x=200
и y=200
Однако
основным методом для работы с печатью графических
документов является другой метод. Этот метода называется
PaintPicture. Рассмотрим его работу на примере.
Printer.PaintPicture
objPic, 100, 100
Это строчка
кода печатает предварительно загруженный графический
объект objPic
со смещением от начала страницы на 100 пикселей по
горизонтали и вертикали.
В этой статье
были приведены основные свойства и методы для работы с
принтерами из программ, написанных на Visual
Basic.
Естественно, что я не смог охватить всех моментов работы, но
этой статьи вполне достаточно для того, чтобы понять основы
работы с системой печати Windows.
Желаю удачи в освоении этого раздела программирования.
|