Re: printer question follow up
thanks, but that's way over me... i'm not a "C" person...
george
----- Original Message -----
From: "Kenneth Roger" <kennethroger at comcast.net>
To: "EUforum" <EUforum at topica.com>
Subject: RE: printer question follow up
>
>
> > Is it possible to print to a printer in a non
> > graphics/bitmap way..... Like a non windows
> > OS does? --george
>
> Here is an example in C. It could be translated into E for exw.
>
> // lhp.c --link with winspool.lib
>
> #include <stdio.h>
> #include <string.h>
> #include <windows.h>
> #include <winspool.h>
>
> char msg1[] = "usage: lhp file1 file2 ..";
> char prname[] = "\\\\kenneth\\hp";
> char set[] = "\033E\033(s12H\033&l6d6e54F\033&a9l90M\033&k2G";
> // EscE --reset
> // Esc(s12H --12 cpi
> // Esc&l6D --6 lpi
> // Esc&l6E --6 line top mrgn
> // Esc&l54F --54 lines per page
> // Esc&a9L --col 9 end left mrgn
> // Esc&a90M --col 90 begin right mrgn
> // Esc&k2G --lf=cr+lf, ff=cr+ff
>
> void list(FILE *p1, FILE *f1);
>
> int main(int argc, char **argv)
> {
> FILE *f1, *p1;
> DOC_INFO_1 di;
> if(argc<2) { printf("%s\n",msg1); return 0; }
> while(--argc)
> {
> printf(*++argv);
> f1=fopen(*argv,"rb");
> if(f1)
> {
> OpenPrinter(prname,&p1,NULL);
> di.pDocName=*argv;
> di.pOutputFile=NULL;
> di.pDatatype="RAW";
> if(StartDocPrinter(p1,1,&di) > 0)
> {
> StartPagePrinter(p1);
> list(p1,f1);
> printf(" is queued on %s\n",prname);
> EndPagePrinter(p1);
> EndDocPrinter(p1);
> }
> else printf("\ncan't open %s\n",prname);
> ClosePrinter(p1);
> fclose(f1);
> }
> else printf(" not found\n");
> }
> return 0;
> }
>
> void list (FILE *p1, FILE *f1)
> {
> DWORD nr, nw;
> char buf[129], last='\0';
> WritePrinter(p1,set,strlen(set),&nw);
> do
> {
> nr=fread(buf,1,128,f1);
> if(nr==0) break;
> buf[nr]='\0';
> WritePrinter(p1,buf,nr,&nw);
> last=buf[nr-1];
> } while(nr==128);
> if(last!='\f') WritePrinter(p1,"\f",2,&nw);
> }
>
>
>
>
> TOPICA - Start your own email discussion group. FREE!
>
>
|
Not Categorized, Please Help
|
|