/
usr
/
share
/
ghostscript
/
Resource
/
Init
/
/usr/share/ghostscript/Resource/Init
mkdir
upload
Name
Size
Mode
Actions
cidfmap
2156
0644
edit
dl
rm
FAPIcidfmap
1483
0644
edit
dl
rm
FAPIconfig
815
0644
edit
dl
rm
FAPIfontmap
1468
0644
edit
dl
rm
FCOfontmap-PCLPS2
2857
0644
edit
dl
rm
Fontmap
109
0644
edit
dl
rm
Fontmap.GS
12929
0644
edit
dl
rm
gs_agl.ps
218021
0644
edit
dl
rm
gs_btokn.ps
12765
0644
edit
dl
rm
gs_cet.ps
4964
0644
edit
dl
rm
gs_cff.ps
6969
0644
edit
dl
rm
gs_cidcm.ps
16827
0644
edit
dl
rm
gs_ciddc.ps
8505
0644
edit
dl
rm
gs_cidfm.ps
8069
0644
edit
dl
rm
gs_cidfn.ps
14547
0644
edit
dl
rm
gs_cidtt.ps
5847
0644
edit
dl
rm
gs_cmap.ps
18444
0644
edit
dl
rm
gs_cspace.ps
4059
0644
edit
dl
rm
gs_dbt_e.ps
2134
0644
edit
dl
rm
gs_diskn.ps
6867
0644
edit
dl
rm
gs_dps1.ps
4756
0644
edit
dl
rm
gs_dps2.ps
8771
0644
edit
dl
rm
gs_dscp.ps
3938
0644
edit
dl
rm
gs_epsf.ps
12161
0644
edit
dl
rm
gs_fapi.ps
15611
0644
edit
dl
rm
gs_fntem.ps
11389
0644
edit
dl
rm
gs_fonts.ps
48531
0644
edit
dl
rm
gs_frsd.ps
3780
0644
edit
dl
rm
gs_icc.ps
3104
0644
edit
dl
rm
gs_il1_e.ps
2722
0644
edit
dl
rm
gs_img.ps
23998
0644
edit
dl
rm
gs_init.ps
94572
0644
edit
dl
rm
gs_lev2.ps
43850
0644
edit
dl
rm
gs_ll3.ps
19572
0644
edit
dl
rm
gs_mex_e.ps
3843
0644
edit
dl
rm
gs_mgl_e.ps
2181
0644
edit
dl
rm
gs_mro_e.ps
2506
0644
edit
dl
rm
gs_pdfwr.ps
32179
0644
edit
dl
rm
gs_pdf_e.ps
1556
0644
edit
dl
rm
gs_res.ps
42450
0644
edit
dl
rm
gs_resmp.ps
22482
0644
edit
dl
rm
gs_setpd.ps
38487
0644
edit
dl
rm
gs_statd.ps
17851
0644
edit
dl
rm
gs_std_e.ps
3143
0644
edit
dl
rm
gs_sym_e.ps
3104
0644
edit
dl
rm
gs_trap.ps
2946
0644
edit
dl
rm
gs_ttf.ps
66173
0644
edit
dl
rm
gs_typ32.ps
4560
0644
edit
dl
rm
gs_typ42.ps
2096
0644
edit
dl
rm
gs_type1.ps
12543
0644
edit
dl
rm
gs_wan_e.ps
1563
0644
edit
dl
rm
pdf_base.ps
60815
0644
edit
dl
rm
pdf_draw.ps
188723
0644
edit
dl
rm
pdf_font.ps
98378
0644
edit
dl
rm
pdf_main.ps
143907
0644
edit
dl
rm
pdf_ops.ps
75878
0644
edit
dl
rm
pdf_rbld.ps
20480
0644
edit
dl
rm
pdf_sec.ps
27865
0644
edit
dl
rm
xlatmap
1767
0644
edit
dl
rm
Edit:
/usr/share/ghostscript/Resource/Init/gs_cff.ps
(6969B)
% Copyright (C) 2001-2021 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., 1305 Grant Avenue - Suite 200, Novato, % CA 94945, U.S.A., +1(415)492-9861, for further information. % % Loader for CFF (compressed) fonts, including OpenType CFFs. % The following are not implemented yet: % Deleted entries in the Name Index % Embedded PostScript % Multiple Master fonts % Chameleon fonts % Synthetic fonts % ---------------- Font loading machinery ---------------- % % Augment the FONTPATH machinery so it recognizes OpenType CFF font sets. /.scanfontheaders where { /.scanfontheaders [ /.scanfontheaders .systemvar aload pop (OTTO*) ] put } if % Load a font file that might be an OpenType CFF font set. % <file> .init_otto_font_file <file> /.init_otto_font_file { /FontSetInit /ProcSet findresource begin 2 dict begin /f exch def /cff //null def card32 pop card16 6 { next pop } repeat dup { % Stack: numtables tablesleft dup 0 eq { pop pop /.loadottofontfile cvx /invalidfont signalerror } if f 4 string readstring pop (CFF ) eq { sub exit } if f 12 string readstring pop pop 1 sub % skip to next table } loop % Stack: tablesread card32 pop card32 card32 % Stack: tablesread start length exch 3 -1 roll 1 add 16 mul 12 add sub f exch subfilefilter flushfile % skip to start f exch subfilefilter end } .bind executeonly odef % <file> .init_otto_font_file <file> /.init_wOFF_otto_font_file { /FontSetInit /ProcSet findresource begin 2 dict begin /f exch def /cff //null def 3 {card32 pop} repeat % (wOFF), (OTTO) and file length card16 30 { next pop } repeat dup { % Stack: numtables tablesleft dup 0 eq { pop pop /.loadottofontfile cvx /invalidfont signalerror } if f 4 string readstring pop (CFF ) eq { sub exit } if f 12 string readstring pop pop 1 sub % skip to next table } loop % Stack: tablesread 4 { card32 } repeat % Stack: tablesread start complen len checksum pop % Stack: tablesread start complen len 4 -2 roll exch % Stack: complen len start tablesread 1 add 20 mul 44 add sub % Stack: complen len offset f exch subfilefilter flushfile % skip to start % Stack: complen len % the table can legally be uncompressed: complen == len 1 index 1 index eq { exch pop f exch subfilefilter} { pop f exch subfilefilter /FlateDecode filter} ifelse end } bind def % <file> .loadfontfile - /.loadnonottofontfile /.loadfontfile load def /.loadfontfile { dup (12345678) .peekstring pop (wOFFOTTO) eq { //.init_wOFF_otto_font_file exec //true //false }{//true} ifelse { dup 4 string .peekstring pop (OTTO) eq { % If this is a font at all, it's an OpenType CFF font set. .init_otto_font_file //true } { //false } ifelse } if { % Use a random FontSet resource name. ****** WRONG ****** realtime rand xor =string cvs exch //false //false ReadData pop } { % Not a TrueType font. .loadnonottofontfile } ifelse } bind executeonly def currentdict /.init_wOFF_otto_font_file .forceundef 20 dict begin % ------ Utilities ------ % /subfilefilter { % <file> <length> subfilefilter <filter> % SubFileDecode interprets a length of 0 as infinite. dup 0 le { pop pop () 0 } if () /SubFileDecode filter } bind def /advance { % <n> advance - f cff eq { pos add /pos exch store } { pop } ifelse } bind def /next { % - next <byte> f read { 1 advance CFFDEBUG { ( ) print dup = } if } { 0 CFFDEBUG { ( Out of range access, assuming 0) = } if /pdfformaterror where { pop ( **** Warning: Out of range access to a CFF table, assuming 0.\n) pdfformaterror } if } ifelse } bind def /next2 { % - next2 <byte1> <byte2> f read { f read { 2 advance CFFDEBUG { ( ) print 1 index =only (,) print dup = } if } { 1 advance CFFDEBUG { ( ) print dup = } if } ifelse } if } bind def /nextstring { % <length> nextstring <string> dup 0 eq { pop () } { string f exch readstring pop dup length advance CFFDEBUG { ( ) print dup //== exec } if } ifelse } bind def /card8 % - card8 <card8> /next load def /card16 { % - card16 <card16> next2 exch 8 bitshift add } bind def /card32 { % - card32 <card32> card16 16 bitshift card16 add } bind def /offsetprocs [ /card8 load /card16 load { card8 16 bitshift card16 add } bind /card32 load ] readonly def /offsetproc { % <offsize> offsetproc <proc> 1 sub //offsetprocs exch get } bind def /offset { % <offsize> offset <offset> offsetproc exec } bind def /sid % - <sid> sid /card16 load def % ------ Main program ------ % % We need to pass the file as a parameter for the sake of the PDF % interpreter. Also for the sake of PDF, a flag forces the font % to be defined as <resname> instead of the name embedded in the data. % This is needed for subsetted fonts; it is valid if the CFF % contains only a single font. % Finally, PDF interpreter may request creation of CIDFont out of an % ordinary CFF font. /StartData { % <resname> <nbytes> StartData - currentfile exch subfilefilter //false //false ReadData pop } bind executeonly def /ReadData { % <resname> <file> <forceresname> <forcecid> ReadData <fontset> % Initialize. 30 dict begin /forcecidfont exch def /forceresname exch def /cff exch def /pos 0 def /resname exch cvlit def /DEBUG CFFDEBUG def % bring the binding closer /StringCache 1 dict def % Private DICT may be reused. forcecidfont [ { cff 1024 string readstring not { exit } if } loop ] .parsecff /fonts exch def resname mark fonts { forceresname { exch pop resname exch } if dup /CIDFontType known { % This is a CIDFont. dup /CIDFontName 3 index put 1 index exch /CIDFont defineresource } { % This is a font. dup /FontName 3 index put dup /FontType 2 put 1 index exch definefont } ifelse } forall .dicttomark end % temporary dict end % FontSetInit ProcSet /FontSet defineresource } bind executeonly def % ---------------- Resource category definition ---------------- % currentdict end readonly languagelevel exch 2 .setlanguagelevel /FontSet /Generic /Category findresource dup length dict .copydict /Category defineresource pop /FontSetInit exch /ProcSet defineresource pop .setlanguagelevel
Save
cmd:
run