/* 2.6.89 avner ben - convert text output to iso printer */ #include #include #include FILE *inf,*outf; char c; char inname[32], outname[32]; int i; int amp=0; int main(int argc,char *argv[]) { if (argc==1 || argv[1][0]=='?' || argv[1][1]=='?') { puts("IBM to ISO printfile conversion utility. Written by Avner Ben."); puts("Input file is searched for the following control sequences:"); puts(" home, boldface begin/end, underline begin/end."); puts("These are converted to the paralel control sequences,"); puts("for Canon laser beam printer, in ISO mode."); puts("Output file is given the extension .ISO."); exit(1); } else strcpy(inname,argv[1]); for (i=0; inname[i]!='.' && inname[i]!='\0'; ++i) outname[i]=inname[i]; strcpy(&outname[i],".iso"); puts(outname); if ((inf=fopen(inname,"r"))==NULL) { puts("input file not found!"); exit(1); } if (!strcmp(inname,outname)) { puts("invalid input extension .iso!"); exit(1); } if ((outf=fopen(outname,"w"))==NULL) { puts("cannot open output file!"); exit(1); } puts("IBM to ISO printfile conversion utility. written by Avner Ben."); while ((c=getc(inf))!=EOF) { if (c=='\033') { if ((c=getc(inf))==EOF) { putc('\033',outf); break; } if (c=='<') /* init string */ fputs("\033;",outf); else if (c=='E') /* bold begin */ fputs("\033[1m",outf); else if (c=='F') /* bold end */ fputs("\033[22m",outf); else if (c=='-') { if ((c=getc(inf))==EOF) { fputs("\033-",outf); break; } if (c=='1') /* underline begin */ fputs("\033[5m",outf); else if (c=='0') /* undeline end */ fputs("\033[25m",outf); else { fputs("\033-",outf); putc(c,outf); } } else { fputs("\033-",outf); putc(c,outf); } } else putc(c,outf); } fclose(inf); fclose(outf); return(0); }