使打印机进纸退纸的外部命令

Author: 国防科大 陈德明 Date: 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);
        }
        }(国防科大  陈德明)