home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn User 10
/
AU_CD10.iso
/
Updates
/
GhostScript
/
!GhostScr
/
6_01
/
lib
/
gs_ccfnt.ps
< prev
next >
Wrap
Text File
|
2000-03-09
|
3KB
|
98 lines
% 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