На этом шаге мы приведем общие сведенния по организации печати в Object Windows.
Базой для разнообразных возможностей печати в библиотеке OWL являются классы TPrinter и TPrintout, которые представляют соответственно устройство печати и распечатываемый документ. Когда вы создаете в своей программе объект TPrinter, OWL автоматически устанавливает вашу программу в соответствие с контекстом устройства печати, который, в свою очередь, уже связан с принтером пользователя, установленным по умолчанию. Вам не нужно читать строку параметров принтера, анализировать синтаксис строки параметров для его драйвера устройства и выходного порта. Когда затем вы создадите контекст устройства принтера, основанный на этих установках, OWL обработает все это за вас. Кроме того, TPrinter позволяет вам вызвать диалоговое окно Printer Setup с помощью одного короткого обращения к своей функции-члену Setup(). Используя данное диалоговое окно, пользователь может переключать принтеры, устанавливать горизонтальную или вертикальную (альбомную/книжную) ориентацию, размер бумаги, скорость печати и другие опции.
Чтобы использовать все перечисленные преимущества в своей программе, вы должны только создать экземпляр объекта TPrinter:
TPrinter printer = new TPrinter;
Обычно удобно сделать указатель объекта TPrinter членом-данным вашего главного окна. Затем вы можете использовать его для вызова диалогового окна Printer Setup по требованию пользователя с помощью одной строки:
printer->Setup();
После того, как вы справились с этой задачей, организация реальной печати происходит следующим образом. С помощью ObjectWindows вы создаете объект TPrintout, представляющий тот документ, который вы хотите распечатать. Для того, чтобы распечатать документ, вы вызываете функцию Print() объекта TPrinter с объектом TPrintout в качестве второго аргумента:
printer->Print(this, printout, TRUE);
Несмотря на то, что само определение объекта TPrintout не составляет большого труда, все предшествующие шаги были направлены на организацию печати простого документа с использованием классов TPrinter и TPrintout библиотеки OWL.
На следующем шаге мы приведем простейший пример печати.