% 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 defcurrentdict /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
% 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