Учебное пособие: Семейства шрифтов в Windows

[ports]

LPT1:=

LPT2:=

COM1:=9600,n,8,1

COM2:=9600,n,8,1,x

EPT:=

FILE:=

LPT1.DOS=

А в секции [PrinterPorts] записи похожи на секцию [device] с дополнительно указанными временами ожидания готовности и повторения для каждого устройства.

[PrinterPorts]

EpsonFX-80=EPSON9,FILE:,15,45,LPT1:,15,45

С помощью всех рассмотренных параметров описываются установленные в данный момент принтеры, однако нас зачастую не интересуют все мыслимые принтеры, а только один - тот, который подключен непосредственно сейчас. Для того, что бы определить этот принтер надо обратить внимание на секцию [windows], в которой есть параметр:

device= printer name, driver, port

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

3. Работа с принтером

3.1 Получение контекста устройства

Теперь, когда мы научились определять характеристики принтера, мы можем перейти непосредственно к работе с ним. Для начала нам надо получить хендл контекста устройства, связанного с принтером. Существует две возможности сделать это: самим разобраться с файлом WIN.INI и создать контекст устройства или воспользоваться стандартным диалогом для выбора и настройки принтера. Чаще применяется второй способ (как более "дружественный"), однако иногда проще все сделать самим (особенно, если Вы должны сами проверить наличие и характеристики принтеров - например при инсталляции программы).

Если мы хотим сами разобраться с принтером, то для создания контекста принтера мы должны воспользоваться процедурой:

HDC CreateDC( lpszDriver, lpszDevice, lpszOutput, lpvData );

При этом мы сначала должны определить имя драйвера lpszDriver, имя принтера lpszDevice и имя выводного устройства lpszOutput. Параметр lpvData мы будем устанавливать в NULL, для того, что бы произвести инициализацию по умолчанию (так как это было определено при инсталляции принтера или изменено через “Control Panel”).

Всю нужную для создания контекста устройства информацию мы получим из параметра “device=” секции [windows]:

HDC GetPrinterDC( void ) {

char buf[ 80 ];

char *Device, *Drive, *Output;

static char delimiters[]= ", ";

GetProfileString( "windows", "device", ",,,", buf, sizeof(buf)-1 );

Device= strtok( buf, "," );

Drive= strtok( NULL, delimiters );

Output= strtok( NULL, delimiters );

К-во Просмотров: 443
Бесплатно скачать Учебное пособие: Семейства шрифтов в Windows