|
|
|
И снова о принтере!!!
|
|||
|---|---|---|---|
|
#18+
Кто-нибудь знает отличаются ли команды для матричного принтера и для лазерного , если учесть то обстоятельство, что они подключены через LPT порт? А то тут нашел прогу, которая якобы печатает содержимое файла (сразу говорю принтера нет, но нужен более или менее рабочий кусок проги, ну или похожий на рабочий кусок (задание не выбирал - выдали независимо от моего желания)), так вот подойдет ли впринципе эта прога для лазерного принтера (LPT) или это впринципе невозможно. Печать содержимого текстовых файлов: #include <dos.h> #include <stdio.h> union REGS rg; int main(int argc, char *argv[]) { FILE *srcfile; if( (srcfile = fopen( argv[1], "rb" )) == NULL ) { printf("\nЗадайте имя файла в качестве параметра"); exit(-1); } for(;;) { printchar(fgetc(srcfile)); if(feof(srcfile)) break; } fclose(srcfile); } int printchar(int chr) { int status; for(;;) { putch(chr); rg.h.ah = 0; rg.h.al = chr; rg.x.dx = 0; int86(0x17, &rg, &rg); status = rg.h.ah; if((status & 0x39) != 0x10) { if(error(chr, status)) { printf("\nПечать завершилась аварийно"); exit(-2); } } else break; } } int error(char chr, int status) { printf("\nОшибка принтера %02.2X" "\n\nСостояние принтера:" "\n-------------------", status); if(status & 1) printf("\nТаймаут при печати"); if(status & 8) printf("\nОшибка ввода/вывода"); if(!(status & 0x10)) printf("\nПринтер находится в состоянии OFFLINE"); if(status & 0x20) printf("\nКонец бумаги"); printf("\n\nДля отмены печати нажмите клавишу ESC," "\nдля повтора - любую другую клавишу\n"); if(getch() == 27) return(1); else return(0); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 18:43 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33369844&tid=2032479]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
81ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 402ms |

| 0 / 0 |
