/* Simple scanner test utility Redirect stdout to file e.g. scantest > data.pbm */ #include main() { int rc; int a,b; FILE *fopen(), *fp_out, *fp_in; a = 0; fp_out = fopen ("/dev/usb/scanner0", "wb"); if (fp_out == NULL) { printf ("\nError"); goto exit; } /* Do a reset */ rc = fprintf(fp_out, "\033zE"); fprintf (stderr, "\nfprintf returns %d", rc); /* set resolution, in DPI */ fprintf(fp_out, "\033*a%dR", 300); fprintf(fp_out, "\033*a%dS", 300); /* set output data type to B/W Thesholded */ fprintf(fp_out, "\033*a%dT", 0); /* Do a scan */ rc = fprintf(fp_out, "\033*f0S"); fprintf (stderr, "\nfprintf returns %d", rc); fclose (fp_out); /* Open scanner for reading input */ fp_in = fopen ("/dev/usb/scanner0","rb"); if (fp_in == NULL) { printf ("\nRead Error\n"); goto exit; } /* Header for PBM file */ printf("P4\n2550 3508\n"); while (a != EOF) { a = fgetc(fp_in); putchar (a); } fclose (fp_in); fprintf (stderr, "\nScan complete\n", rc); exit:; }