使打印机进纸退纸的外部命令 国防科大 陈德明 1993-07-23 为了解决这种不便,可以用程序方法实现打印纸的任意进退。我们知道,设置打印机正向走纸的指令是FSF,控制码为CHR$(28)+"F",设置打印机反向走纸的指令是FSR,控制码为CHR$(28)+"R",使打印机走一空行是向打印机发送字符CHR$(10)来实现。据此,可以编一个C语言小程序LF.C,经编译链接形成外部命令文件LFEXE。程序设计命令行参数,存放欲走纸的行数,正数为进纸,负数为退纸,这样,随时可以用命令LF[+/-]number使打印机走纸number行。 源程序LF.C列于文末。其执行过程是:先检查命令行参数,如果有误则报错;然后判断走纸行数是否为负,若是,则设置打印机为反向走纸方式;然后走纸若干行,最后将打印机恢复成惯用的正向走纸方式。 C>TYPE LF.C>PRN #include<stdio.h> #include<stdlib.h> #include<string.h> main(int argc,char argv[]) { int n,m; FILEF; m=1; n=1; if(argc>1){ m=strlen(argv[1]); n=atoi(argv[1]); } if(n==0‖m>4‖argc>2) { puts("**********"); puts("*printerLineFeed*"); puts("*********\n"); puts("Parametererrorornum bertooLarge!\n"); puts("Usage:LF[+/-]number(-999to9999)\n"); exit(1); } Printf("Paperadvances%5dLines",n); m=n; f=fopen("PRN","W"); if(f){ if(n<0){ m=-n; putc(28,f);putc(`R`,f); } for(n=1;n<=m;n++)putc(10,f); putc(28,f);putc(`F`,f); } }(国防科大 陈德明)