/usr/share/ghostscript/9.05/Resource/Init/gs_cidtt.ps is in libgs9-common 9.05~dfsg-0ubuntu4.5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | % Copyright (C) 2000 Artifex Software, Inc. All rights reserved.
%
% This software is provided AS-IS with no warranty, either express or
% implied.
%
% This software is distributed under license and may not be copied,
% modified or distributed except as expressly authorized under the terms
% of the license contained in the file LICENSE in this distribution.
%
% For more information about licensing, please refer to
% http://www.ghostscript.com/licensing/. For information on
% commercial licensing, go to http://www.artifex.com/licensing/ or
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
% $Id$
% Redefine CIDFont category with an emulation with True Type fonts.
languagelevel 2 .setlanguagelevel
15 dict begin % a temporary dictionary for local binding.
%------------------Copy the FontEmulationProcs here : -------------------
/FontEmulationProcs /ProcSet findresource {
def
} forall
currentdict /super.complete_instance currentdict /complete_instance get put
%-------Auxiliary procedures for building CIDFontType 2 from TT file -----------
/GenerateCIDMap % <font> GenerateCIDMap <font>
{ begin
% Obtain the maximal CID :
% This implementation doesn't check whether glyphs really present.
Decoding /CIDCount get /CIDCount exch def
% Prepare the CIDMap structure :
/CIDMap [
CIDCount 22000 le {
CIDCount 2 mul string
} {
44000 string
CIDCount 44000 gt {
% need three strings
44000 string % 22000 2 mul string
CIDCount 44000 sub 2 mul string
} {
CIDCount 22000 sub 2 mul string
} ifelse
} ifelse
] def
% Now fill it :
Decoding TT_cmap SubstNWP GDBytes CIDMap .fillCIDMap
currentdict end
} bind def
/GenerateIdentityCIDMap % <font> GenerateCIDMap <font>
{ begin
/CIDMap [ 44000 string 44000 string 44000 string] def
CIDMap .fillIdentityCIDMap
currentdict end
} bind def
/load_sfnts % <FontDict> load_sfnts <FontDict>
{ % Read the True Type file from the path /Path, and buld /sfnts,
% skipping glyf and loca.
dup /Path get % <font> (path)
QUIET not {
(Loading a TT font from ) print dup print
( to emulate a CID font ) print 1 index /CIDFontName get =only ( ... ) print
} if
(r) file dup % <font> file file
3 1 roll % file <font> file
1 index /SubfontID .knownget not { 0 } if % file <font> file SubfontID
.load_tt_font_stripped exch copy % file <font>
QUIET not {
(Done.) =
} if
dup 3 1 roll % <font> file <font>
exch /File exch put % <font>
dup dup /CIDSystemInfo get /Ordering get (.) % <font> () ()
2 index /Decoding get =string cvs % <font> () () ()
concatstrings concatstrings cvn /Decoding exch put % <font>
dup dup /CIDSystemInfo get /Ordering get (-WMode) % <font> <font> () ()
concatstrings cvn /SubstCID
2 copy resourcestatus {
pop pop
findresource /subst_CID_on_WMode exch put % <font>
} {
pop pop pop
} ifelse
dup /Decoding get /Identity.Unicode eq {
//ChooseDecoding exec % <font>
//GenerateIdentityCIDMap exec % <font>
} {
//ChooseDecoding exec % <font>
//GenerateCIDMap exec % <font>
} ifelse
} bind def
%-----------TrueType-specific methods for category redefinition : -----------
/RefinePath % <FontDict> RefinePath <FontDict>
{ dup begin
Path .libfile {
dup .filename {
currentdict exch /Path exch put
} if
closefile
} {
(Can't find the font file ) print =
/findfont cvx /undefinedfilename signalerror
} ifelse
end
} bind def
/complete_instance % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
{ 1 index /CIDFontType 2 put % Other types are not emulated yet.
//super.complete_instance exec
//RefinePath exec
//load_sfnts exec
} bind def
/IsMyRecord % <raw_record> -> <raw_record> bool
{ dup type /dicttype eq { dup /FileType .knownget { /TrueType eq } { //false } ifelse } { //false } ifelse
} bind def
/IsActive % <record> IsActive <bool>
{ pop //true
} bind def
/CIDFontRecordVirtualMethods //RecordVirtualMethodsStub dup length 3 add dict copy begin
/GetCSI //TranslateCSI def
/IsActive //IsActive def
/MakeInstance % <Name> <record> MakeInstance <Name> <Instance> <size>
{ currentglobal 3 1 roll //true setglobal
//CIDFontOptions //complete_instance exec
2 copy //GetSize exec
4 3 roll setglobal
} bind def
currentdict end def
% Redefine the /CIDFont category :
4 dict begin
/CategoryName /CIDFont def
/IsMapFileOptional //true def
/VerifyMap { pop } bind def
/PreprocessRecord % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
{ //IsMyRecord exec dup {
pop dup /RecordVirtualMethods //CIDFontRecordVirtualMethods put
//true
} if
} bind def
currentdict end
/MappedCategoryRedefiner /ProcSet findresource /Redefine get exec
end % the temporary dictionary for local binding.
.setlanguagelevel
|