1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- % Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
- %
- % This file is part of AFPL Ghostscript.
- %
- % AFPL 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 Free Public License (the
- % "License") for full details.
- %
- % Every copy of AFPL 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 AFPL 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.5 2001/10/01 05:25:55 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
- NOCCFONTS not {
- /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
- } if
- } bind def
- currentdict /registerfont .undef
|