Введение
Начиная писать статью о работе с
принтерами в 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. Желаю удачи в
освоении этого раздела программирования.