summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps')
-rw-r--r--Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps59
1 files changed, 59 insertions, 0 deletions
diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps b/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps
new file mode 100644
index 00000000000..fc4f3fad94a
--- /dev/null
+++ b/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps
@@ -0,0 +1,59 @@
+% Copyright (C) 2001-2012 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Type 42 font support code.
+
+% Here are the BuildChar and BuildGlyph implementation for Type 42 fonts.
+% The names %Type42BuildChar and %Type42BuildGlyph are known to the
+% interpreter. The real work is done in an operator:
+% <font> <code|name> <name> <glyphindex> .type42execchar -
+
+(%Type42BuildChar) cvn % <font> <code> %Type42BuildChar -
+ { 1 index /Encoding get 1 index get .type42build
+ } bind def
+(%Type42BuildGlyph) cvn % <font> <name> %Type42BuildGlyph -
+ { dup .type42build
+ } bind def
+/.type42build % <font> <code|name> <name> .type42build -
+ { 2 index begin
+ dup CharStrings exch .knownget not
+ { 2 copy eq { exch pop /.notdef exch } if
+ QUIET not
+ { (Substituting .notdef for ) print
+ =string cvs print ( in the font ) print
+ 1 index /FontName get = flush
+ }
+ { pop }
+ ifelse
+ /.notdef CharStrings /.notdef get
+ } if
+ end .type42execchar
+ } bind def
+
+% Register the font type for definefont.
+buildfontdict 42
+ { % check for bogus sfnts -- this happens in Genoa FTS 421-01.ps
+ dup /sfnts get 0 get length 14 lt { % smallest valid sfnts is 14 bytes
+ % HACK: Add a BuildGlyph and make this a Type 3 font instead
+ dup /FontType 3 put
+ dup /BuildGlyph {
+ 1 index /CharStrings get exch 2 copy known not { pop /.notdef } if get exec
+ } bind put
+ //.buildfont3 exec
+ } {
+ systemdict /.buildfont42 get exec
+ } ifelse
+ } bind
+put