Server IP : 103.119.228.120 / Your IP : 3.145.50.71 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/ghostscript/Resource/Init/ |
Upload File : |
% Copyright (C) 2001-2018 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 { pop /.scanfontheaders [ .scanfontheaders aload pop (OTTO*) ] def } if % Load a font file that might be an OpenType CFF font set. % <file> .loadfontfile - /.loadnonottofontfile /.loadfontfile load def /.loadfontfile { dup (12345678) .peekstring pop (wOFFOTTO) eq { .init_wOFF_otto_font_file //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 def % <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 def % <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 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