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

📄 hardcopy.ps

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 PS
字号:
%% Redefiniton of the PostScript file output operators so results go to paper.% Complicated and slow, but the implementation doesn't place many demands on% included PostScript. About all that's required is gentle treatment of the% graphics state between write calls.%/#copies 1 store/aspectratio 1 def/font /Courier def/formsperpage 1 def/landscape false def/magnification 1 def/orientation 0 def/pointsize 10 def/rotation 1 def/xoffset .1 def/yoffset .1 def/roundpage true def/useclippath true def/pagebbox [0 0 612 792] def/inch {72 mul} def/min {2 copy gt {exch} if pop} def/HardcopySetup {	landscape {/orientation 90 orientation add def} if	font findfont 1 1.1 div scalefont setfont	pagedimensions	xcenter ycenter translate	orientation rotation mul rotate	width 2 div neg height 2 div translate	xoffset inch yoffset inch neg translate	pointsize 1.1 mul dup scale	magnification dup aspectratio mul scale	height width div 1 min dup scale	0 -1 translate	0 0 moveto} def/pagedimensions {	useclippath {		/pagebbox [clippath pathbbox newpath] def		roundpage currentdict /roundpagebbox known and {roundpagebbox} if	} if	pagebbox aload pop	4 -1 roll exch 4 1 roll 4 copy	landscape {4 2 roll} if	sub /width exch def	sub /height exch def	add 2 div /xcenter exch def	add 2 div /ycenter exch def} def%% Unbind the operators in an executable array or packedarray. Leaves the% unbound array or the original object on the stack.%/Unbind {	0 index xcheck	1 index type /arraytype eq	2 index type /packedarraytype eq or and {		dup length array copy cvx		dup 0 exch {			dup type /operatortype eq {				(                          ) cvs cvn cvx			} if			dup type /dicttype eq {				dup maxlength dict exch {					Unbind					3 copy put pop pop				} forall			} if			0 index xcheck			1 index type /arraytype eq			2 index type /packedarraytype eq or and {				Unbind			} if			3 copy put pop			1 add		} forall		pop	} if} def%% New write operator - don't bind the definition! Expands tabs and backspaces,% wraps long lines, and starts a new page whenever necessary. The code that% handles newlines assumes lines are separated by one vertical unit.%/write {	true exch      %%case '\b':	dup 8#10 eq {		( ) stringwidth pop neg 0 rmoveto		currentpoint pop 0 lt {			currentpoint exch pop 0 exch moveto		} if		exch pop false exch	} if      %%case '\t':	dup 8#11 eq {		currentpoint pop ( ) stringwidth pop div round cvi		8 mod 8 exch sub {			2 index 8#40 write		} repeat		exch pop false exch	} if      %%case '\n':	dup 8#12 eq {		currentpoint 0 exch 1 sub moveto pop		gsave clippath pathbbox pop pop exch pop grestore		currentpoint exch pop 1 sub ge {			2 index 8#14 write		} if		exch pop false exch	} if      %%case '\f':	dup 8#14 eq {		gsave showpage grestore		0 0 moveto		exch pop false exch	} if      %%case '\r':	dup 8#15 eq {		currentpoint 0 exch moveto pop		exch pop false exch	} if      %%case EOF:	dup -1 eq {		currentpoint 0 ne exch 0 ne or {			2 index 8#14 write		} if		exch pop false exch	} if      %%default:	exch {		dup		gsave clippath pathbbox pop 3 1 roll pop pop grestore 		( ) stringwidth pop currentpoint pop add le {			2 index 8#12 write		} if		( ) dup 0 4 -1 roll put show	} if	pop		% the character	pop		% and file object} def%% All the other file output operators call our redefined write operator.%/print {	(%stdout) (w) file exch {1 index exch write} forall	pop} def/writestring {	{1 index exch write} forall	pop} def/writehexstring {	(0123456789ABCDEF) 3 1 roll {		dup		3 index exch -4 bitshift 16#F and get 2 index exch write		2 index exch 16#F and get 1 index exch write	} forall	pop pop} def%% Unbind and redefine the remaining file output procedures.%/= dup load Unbind def/== dup load Unbind def/stack dup load Unbind def/pstack dup load Unbind def

⌨️ 快捷键说明

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