⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 psmanager.c

📁 su 的源代码库
💻 C
📖 第 1 页 / 共 2 页
字号:
	/* Write contents of tmpfile to outfp */	while (fgets(line,BUFSIZ,tmpfp)!=NULL){ 		oldcount = count;		/* setup pages in multipage document */		if (pages!=1){			if (strstr(line,"%%Page:")!=NULL) {				++count;				clearUserDict();				fputs(line,outfp);				setUserDict(count);			}		}		if (count==oldcount) fputs(line,outfp);	}	/* Page Trailer */	if (pages==1) pageTrailer(pagedim,orient,pllx,plly,purx,pury);	return EXIT_SUCCESS;}void pstitle(int pages) /**********************************************************************pstitle - begin title portion of PostScript wrapper**********************************************************************Input:int pages	number of pages in document**********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	fprintf(stdout, "%%!PS-Adobe-2.0\n");	fprintf(stdout, "%%%%Title:\n");	fprintf(stdout, "%%%%Creator: psmanager\n");	fprintf(stdout, "%%%%CreationDate\n");	fprintf(stdout, "%%%%For: psmanager user\n");	fprintf(stdout, "%%%%DocumentFonts: (atend)\n");	if (pages==1)		fprintf(stdout, "%%%%Pages: (atend) 1\n");	else		fprintf(stdout, "%%%%Pages: %d 1\n",pages);	fprintf(stdout, "%%%%BoundingBox: (atend)\n");}void documentPaperSizes(char *size)/**********************************************************************documentPaperSizes **********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	fprintf(stdout, "%%%%DocumentPaperSizes: %s\n",size);}void orientation(char *direction)/**********************************************************************orientation **********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	fprintf(stdout, "%%%%Orientation: %s\n",direction);}void endProlog(int pages)/**********************************************************************endProlog **********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	if (pages==1) {		fprintf(stdout,"/__CWPbdef {\n");		fprintf(stdout,"    1 index where {\n");		fprintf(stdout,"        pop pop pop\n");		fprintf(stdout,"    } {\n");		fprintf(stdout,"        bind def\n");		fprintf(stdout,"    } ifelse\n");		fprintf(stdout,"} bind def /__CWPRectPath {\n");		fprintf(stdout,"    4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath\n");		fprintf(stdout,"} __CWPbdef /__CWPProcessRectArgs {\n");		fprintf(stdout,"    1 index type /arraytype eq {\n");		fprintf(stdout,"        exch 0 4 2 index length 1 sub {\n");		fprintf(stdout,"            dup 3 add 1 exch {\n");		fprintf(stdout,"                1 index exch get exch\n");		fprintf(stdout,"            } for 5 1 roll 5 index exec\n");		fprintf(stdout,"        } for pop pop\n");		fprintf(stdout,"    } {\n");		fprintf(stdout,"        exec\n");		fprintf(stdout,"    } ifelse\n");		fprintf(stdout,"} __CWPbdef /rectfill {\n");		fprintf(stdout,"    gsave newpath {\n");		fprintf(stdout,"        __CWPRectPath fill\n");		fprintf(stdout,"    } __CWPProcessRectArgs grestore\n");		fprintf(stdout,"} __CWPbdef /rectclip {\n");		fprintf(stdout,"    newpath {\n");		fprintf(stdout,"        __CWPRectPath\n");		fprintf(stdout,"    } __CWPProcessRectArgs clip newpath\n");		fprintf(stdout,"} __CWPbdef\n");		fprintf(stdout,"%%%%EndComments\n");		fprintf(stdout,"\n");		fprintf(stdout,"gsave\n");		fprintf(stdout,"-20 -28 translate\n");		fprintf(stdout," /__CWPbasematrix matrix currentmatrix def\n");		fprintf(stdout,"grestore\n");		fprintf(stdout,"%%%%EndProlog\n");	} else {		fprintf(stdout,"%%%%EndComments\n");	}}void space(void)/**********************************************************************space **********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	fprintf(stdout,"\n");}void grestore(void)/**********************************************************************grestore **********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	fprintf(stdout,"grestore\n");}void showpage(void)/**********************************************************************showpage **********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	fprintf(stdout,"showpage\n");}void gsave(void)/**********************************************************************gsave **********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	fprintf(stdout,"gsave\n");}void setUpPage(char *pagestr, char *papersizestr,		char *mediastr, char *mediatypestr, int orient, 		int manual, char *slotstr,char *traystr, 		int *pagedim,int llx, int lly,int urx,int ury, 		float pllx,float plly,		float purx,float pury, int pages)/**********************************************************************setUpPage **********************************************************************Input:char *pagestr		PostScript string for given page sizechar *papersizestr		PostScript string for identifying print papersizeint orient		=0 Portrait  =1 Landscapeint manual		=0 not manual  =1 manual feedchar *slotstr		PostScript string for given input slotchar *traystr		PostScript string identifying input trayint *pagedim		Page dimensions for given page sizeint llx			BoundingBox lower left xint lly			BoundingBox lower left yint urx			BoundingBox upper right xint ury			BoundingBox upper right yfloat pllx		PageBoundingBox lower left xfloat plly		PageBoundingBox lower left yfloat purx		PageBoundingBox upper right xfloat pury		PageBoundingBox upper right yint pages		number of PagesOutput:Prints Postscript Page setup information to standard out**********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	int ipllx,iplly,ipurx,ipury;	/* Begin Setup */	fprintf(stdout,"%%%%BeginSetup\n");			/* Manual feed */	if (manual) {		fprintf(stdout,"%%%%BeginFeature: *ManualFeed True\n");		space();		space();		fprintf(stdout,"<</ManualFeed true>> setpagedevice\n");		fprintf(stdout,"%%%%EndFeature\n");	}	/* Input slot and tray */	fprintf(stdout,"%%%%BeginFeature: *InputSlot %s\n",slotstr);	space();	fprintf(stdout,"%s\n",traystr);	fprintf(stdout,"%%%%EndFeature\n");	/* Paper media */	fprintf(stdout,"%%%%BeginFeature: *MediaType %s\n",mediatypestr);	space();	fprintf(stdout,"%s\n",mediastr);	fprintf(stdout,"%%%%EndFeature\n");	/* Set up the page size/ page region */	fprintf(stdout,"%%%%BeginFeature: *PageRegion %s\n",papersizestr);	space();	fprintf(stdout,"%s\n",pagestr);	fprintf(stdout,"%%%%EndFeature\n");	fprintf(stdout,"%%%%Feature: *Resolution 600dpi\n");	fprintf(stdout,"%%%%EndFeature\n");	fprintf(stdout,"%%%%EndSetup\n");	space();	space();	/* Shift PageBoundingBox */	ipllx = (int) pllx; ipurx = pagedim[0] - ipllx;	iplly = (int) plly; ipury = pagedim[1] - iplly;	if (pages==1) {		fprintf(stdout,"%%%%Page: 1 1\n");		fprintf(stdout,"%%%%PageBoundingBox: %d %d %d %d\n",			ipllx,iplly,ipurx,ipury);		fprintf(stdout,"%%%%PageFonts: (atend)\n");		fprintf(stdout,"%%%%BeginPageSetup\n");	}	/* Input slot and tray */	fprintf(stdout,"%%%%BeginFeature: *InputSlot %s\n",slotstr);		space();	fprintf(stdout,"%s\n",traystr);	fprintf(stdout,"%%%%EndFeature\n");	/* manual feed */	if (manual) {		fprintf(stdout,"%%%%BeginFeature: *ManualFeed True\n");		space();		space();		fprintf(stdout,"<</ManualFeed true>> setpagedevice");		fprintf(stdout,"%%%%EndFeature\n");	}	/* page size/region */	fprintf(stdout,"%%%%BeginFeature: *PageRegion %s\n",papersizestr);	space();	space();	if (pages==1) {		fprintf(stdout,"%s\n",pagestr);		fprintf(stdout,"%%%%EndFeature\n");		fprintf(stdout,"/__CWPsheetsavetoken save def\n");		/* orientation */		if (orient) fprintf(stdout,"-90 rotate\n");		if (orient) fprintf(stdout,"%d 0 translate\n",-pagedim[0]);		fprintf(stdout,"%3.1f %3.1f translate\n",pllx,plly);		gsave();		fprintf(stdout,"-20 -28 translate\n");		fprintf(stdout," /__CWPbasematrix matrix currentmatrix def\n");		grestore();		gsave();		fprintf(stdout,"0 0 %d %d rectclip\n", (urx-llx),(ury-lly));		fprintf(stdout,"%d %d translate\n",-llx,-lly);		fprintf(stdout,"0 0 translate\n");		fprintf(stdout,"%%%%EndPageSetup\n");		gsave();		fprintf(stdout,"%d %d %d %d rectclip\n",				llx,lly,(urx-llx),(ury-lly));		fprintf(stdout,"gsave 1 setgray %d %d %d %d rectfill grestore\n",			llx,lly,(urx-llx),(ury-lly));		fprintf(stdout,"userdict /_CWPPreviewSaveObject0 systemdict /save get exec put\n");		fprintf(stdout,"/showpage {\n");		space();    		fprintf(stdout,"} def\n");		fprintf(stdout,"%%%%BeginFile:\n");	}}	void pageTrailer(int *pagedim, int orient, float pllx,			float plly, float purx, float pury)/**********************************************************************pageTrailer**********************************************************************Author: John Stockwell, CWP, June 1996**********************************************************************/{	int ipllx,iplly,ipurx,ipury;	/* Shift PageBoundingBox */	ipllx = (int) pllx; ipurx = pagedim[0] - ipllx;	iplly = (int) plly; ipury = pagedim[1] - iplly;	fprintf(stdout,"%%%%EndFile\n");	fprintf(stdout,"clear userdict /_CWPPreviewSaveObject0 known {\n");	fprintf(stdout,"    _CWPPreviewSaveObject0 systemdict /restore get exec\n");	fprintf(stdout,"} if\n");	grestore();	grestore();	showpage();	fprintf(stdout,"__CWPsheetsavetoken restore\n");	fprintf(stdout,"%%%%PageTrailer\n");	fprintf(stdout,"%%%%Trailer\n");	fprintf(stdout,"%%%%Pages: 1 1\n");	if (orient)		fprintf(stdout,"%%%%BoundingBox:%d %d %d %d\n",ipllx,iplly,ipury,ipurx);	else		fprintf(stdout,"%%%%BoundingBox:%d %d %d %d\n",ipllx,iplly,ipurx,ipury);}void clearUserDict(void){		fprintf(stdout,"clear userdict /_CWPPreviewSaveObject0 known {\n");    	fprintf(stdout,"   _CWPPreviewSaveObject0 systemdict /restore get exec\n");	fprintf(stdout,"} if\n");}void setUserDict(count){		fprintf(stdout,"userdict /_CWPPreviewSaveObject0 systemdict /save get exec put\n");	fprintf(stdout,"%%Page: %d %d\n", count,count);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -