Набор классов для вывода на печать

Здесь можно найти готовые «кирпичики» — части кода, пригодные для построения более крупных проектов, а также решения различных типовых и не очень задач на VB.

Модератор: Brickgroup

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Набор классов для вывода на печать

Сообщение alibek » 09.02.2005 (Ср) 17:04

Я уже раньше выкладывал этот набор, но он потерялся где-то в недрах форума.
Итак, набор классов, упрощающий печать из под VB. Набор далек от завершения, но доделывать его мне пока некогда. А выкладываю потому что даже текущая функциональность может кому-нибудь пригодится.

Основным классом является PrintJob, остальные классы нужны для "внутреннего" использования и снаружи одиночно не применяются.

Основной его метод - это PrintCurrentJob, который в качестве аргумента принимает принтер, на который надо напечатать текущее задание.

Все, пора убегать, завтра допишу краткий мануал. Но код несложный, разобраться можно и самостоятельно.
Вложения
PrintClasses.zip
Print classes, version 0.1.
(14.63 Кб) Скачиваний: 240
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.02.2005 (Чт) 10:51

Как и обещал, небольшие комментарии.

Классы Prn* однотипны и различаются только набором свойств. По сути, это просто контейнер для хранения специализированных пропертей и кода, как такового, не имеет.

Основной класс это PrintJob.

/* Отступление
Первоначально класс задумывался с наворотами (превью и т.п.). Но затем мне стало некогда им заниматься и все эти навороты я поотключал, чтобы не мешали. Поэтому в коде так много заглушек.
*/

Он содержит коллекцию переменных (значение которых подставляется в распечатываемый текст) и коллекцию объектов, которые будут выводится на печать. Коллекция переменных управляется методами и свойствами, начинающимися с Var.

Из графических объектов поддерживаются следующие типы:
- точка
- линия
- окружность
- прямоугольник
- картинка
- текстовый блок
- текст

Текстовый блок форматирует текст, вписывая его в заданный прямоугольник. Текст позиционируется от точки и в нем нет переноса слов. В

Каждый объект можно добавить, удалить и изменить. Кроме того, можно удалить или посчитать все объекты заданного типа. Каждый объект может иметь уникальный идентификатор, если идентификатор не задан, то объект можно найти по порядковому номеру (объекты нумеруются в порядке добавления). Печатаются объекты также в порядке добавления. Возможностей изменить ZOrder объекта пока нет, так же как и возможности изменить идентификатор.

Когда все требуемые объекты добавлены, вызывается метод PrintCurrentJob; при этом печатается только один лист. Если нужен многостраничный документ, то надо либо создавать несколько инстансов PrintJob, либо последовательно использовать один.
Метод PrintCurrentJob НЕ ВЫЗЫВАЕТ Printer.EndDoc, его необходимо вызывать самому.

Класс позволяет сохранять и загружать отчеты (список графических объектов) из файла, для этого есть методы Save и Load (на последнем загрушка, но можно вызывать метод LoadTextBuffer).
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Кирпичный завод

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList