 
        
        14. Як програмується виведення даних на принтер у Visual Basic.
Использование объекта Printer языка Visual Basic. А вот на этом способе мы остановимся подробнее, поскольку он хотя и несколько трудоемок, но позволяет программным способом "на лету" сформировать практически любой текстовый или табличный отчет. Для начала перечислим свойства и методы объекта Printer.
| Методы объекта Printer | |
| Метод | Описание | 
| Circle | Рисование дуг, эллипсов, окружностей | 
| EndDoc | Завершение печати документа | 
| KillDoc | Удаление документа из очереди на печать | 
| Line | Рисование линий с учетом установок ScaleMode | 
| NewPage | Прогон текущей страницы и начало новой (установка координат в левый верхний угол) | 
| PaintPicture | Вывод изображения из графического файла | 
| Печать текстовой строки с текущими установками | |
| PSet | Печать точки текущим цветом | 
| Scale | Задание пользовательской системы координат | 
| ScaleX | Преобразование X-координаты в единицы, определяемые ScaleMode | 
| ScaleY | Преобразование Y-координаты в единицы, определяемые ScaleMode | 
| TextHeight | Установка высоты шрифта в координатной системе, определяемой Scale | 
| TextWidth | Установка ширины шрифта в координатной системе, определяемой Scale | 
| Свойства объекта Printer | |
| Свойство | Описание | 
| ColorMode | Устанавливает цветную или монохромную печать | 
| Copies | Устанавливает количество копий, которые должны быть напечатаны | 
| Count | Количество принтеров в коллекции Printers | 
| CurrentX | Устанавливает текущую координату X c использованием текущих установок ScaleMode | 
| CurrentY | Устанавливает текущую координату Y c использованием текущих установок ScaleMode | 
| DeviceName | Возвращает имя устройства | 
| DrawMode | Определяет вид выводимых линий и объектов | 
| DrawStyle | Стиль выводимых линий при печати графики | 
| DrawWidth | Толщина линий | 
| DriverName | Возвращает имя драйвера устройства для объекта Printer | 
| Duplex | Определяет, должна ли печататься информация на обеих сторонах листа | 
| FillColor | Цвет, используемый для заполнения фигур | 
| FillStyle | Стиль заливки при заполнении фигур | 
| Font | Объект шрифта | 
| FontBold | Полужирный шрифт (True/False) | 
| FontCount | Количество доступных шрифтов | 
| FontItalic | Курсив (True/False) | 
| FontName | Наименование используемого шрифта | 
| Fonts | Список имен доступных шрифтов (от 0 до FontCount-1) | 
| FontSize | Размер текущего шрифта в точках | 
| FontStrikethru | Перечеркнутый шрифт (True/False) | 
| FontTransparent | Прозрачный шрифт (True/False) | 
| FontUnderline | Подчеркнутый шрифт (True/False) | 
| ForeColor | Цвет переднего плана | 
| hDC | Дескриптор контекста устройства | 
| Height | Высота вывода устройства (в твипсах) | 
| Orientation | Ориентация страницы в принтере | 
| Page | Номер текущей страницы | 
| PaperBin | Источник бумаги | 
| PaperSize | Размер бумаги | 
| Port | Возвращает имя используемого порта | 
| PrintQuality | Разрешение печати | 
| ScaleHeight | Вертикальный размер объекта в единицах, определяемых ScaleMode | 
| ScaleLeft | Левый угол объекта в единицах, определяемых ScaleMode | 
| ScaleMode | Определяет единицы системы координат | 
| ScaleTop | Верхняя граница объекта в единицах, определяемых ScaleMode | 
| ScaleWidth | Горизонтальный размер объекта в единицах, определяемых ScaleMode | 
| TrackDefault | Определяет, будет ли всегда использоваться принтер, который установлен в системе по умолчанию | 
| TwipsPerPixelX | Количество твипсов на пиксель по горизонтали | 
| TwipsPerPixelY | Количество твипсов на пиксель по вертикали | 
| Width | Ширина вывода устройства (в твипсах) | 
| Zoom | Масштабирование при выводе | 
Печать текста с использованием объекта Printer осуществляется следующим образом: задаются координаты печати с помощью свойств CurrentX и CurrentY, а затем используется метод Print. Пример печати в абсолютных координатах: Printer.CurrentX = 1440 Printer.CurrentY = 1440 Printer.Print "Проблемы печати отчетов" 'Физическое выполнение печати и выдача листа бумаги Printer.EndDoc Но обычно гораздо удобнее принудительно разделить весь лист на зоны печати и при позиционировании использовать ScaleHeight и ScaleWidth, т.е. относительные координаты.
