标题使打印机进纸退纸的外部命令
栏目外设类维护与维修
作者国防科大 陈德明
发布1993-07-23
为了解决这种不便,可以用程序方法实现打印纸的任意进退。我们知道,设置打印机正向走纸的指令是FSF,控制码为CHR$(28)+"F",设置打印机反向走纸的指令是FSR,控制码为CHR$(28)+"R",使打印机走一空行是向打印机发送字符CHR$(10)来实现。据此,可以编一个C语言小程序LF.C,经编译链接形成外部命令文件LFEXE。程序设计命令行参数,存放欲走纸的行数,正数为进纸,负数为退纸,这样,随时可以用命令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;
FILEF;
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);
}
}(国防科大 陈德明)