henesyinit from p9fd787fda5 years agoHistory
97 lines · 2.8 KB · Text
RawDownload
%    Copyright (C) 1994, 1996 Aladdin Enterprises.  All rights reserved.% % This file is part of Aladdin Ghostscript.% % Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author% or distributor accepts any responsibility for the consequences of using it,% or for whether it serves any particular purpose or works at all, unless he% or she says so in writing.  Refer to the Aladdin Ghostscript Free Public% License (the "License") for full details.% % Every copy of Aladdin Ghostscript must include a copy of the License,% normally in a plain ASCII text file named PUBLIC.  The License grants you% the right to copy, modify and redistribute Aladdin Ghostscript, but only% under certain conditions described in the License.  Among other things, the% License requires that the copyright notice and this notice be preserved on% all copies. % $Id: gs_ccfnt.ps,v 1.1 2000/03/09 08:40:39 lpd Exp $% Find and register all the precompiled font operators in systemdict. /registerfont			% <fontname> <fontdict> registerfont <font> { DEBUG { (Registering ) print 1 index = } if   dup begin     Encoding type /nametype eq      { Encoding .findencoding /Encoding exch def      }     if     dup /PrefEnc known      { PrefEnc type /nametype eq	 { PrefEnc .findencoding /PrefEnc exch def	 }	if      }     if     dup /FDepVector known      { /FDepVector [ FDepVector	 { .FontDirectory 1 index .knownget	    { exch pop }	    { ccfonts 1 index .knownget	       { registerfont	       }	       { Fontmap 1 index known		  { findfont }		  { pop NullFont }		 ifelse	       }	      ifelse	    }	   ifelse	 }	forall ] readonly def      }     if   end   % Use the value of definefont appropriate at run-time, not bind-time   /definefont load exec } bind odef% Bind recursive call (bind descends into oparrays: feature!)/registerfont dup load bind def /.loadinitialfonts {   //.loadinitialfonts exec   /ccfonts mark     0 1 null .getccfont 1 sub { .getccfont dup /FontName get exch } for   .dicttomark def		% Make sure these fonts are registered as "resources".   currentfile {     pop ccfonts      { .FontDirectory 2 index known { pop pop } { registerfont pop } ifelse }     forall  } .execasresource  currentdict /ccfonts .undef} bind def currentdict /registerfont .undef  % If we're in a Level 2 system but running in Level 1 mode,% register the fonts explicitly as resources.% This is a bit of a hack, but doing better is too much work. /level2dict where { pop /findresource where    {		% Level 2 system, Level 2 mode      pop    }    {		% Level 2 system, Level 1 mode      /Font /Category level2dict /findresource get exec begin      .FontDirectory       { dup .gcheck { Instances } { LocalInstances } ifelse	 3 1 roll [exch 0 -1] .growput       }      forall end    }   ifelse }if