%PDF- %PDF-
Direktori : /www/varak.cloud/img.varak.cloud/img/foto-old/KOKOS04/Další/gs/gs6.50/lib/ |
Current File : /www/varak.cloud/img.varak.cloud/img/foto-old/KOKOS04/Další/gs/gs6.50/lib/gs_pfile.ps |
% Copyright (C) 1994, 1995 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_pfile.ps,v 1.2 2000/09/19 18:29:11 lpd Exp $ % Runtime support for minimum-space fonts and packed files. % ****** NOTE: This file must be kept consistent with % ****** packfile.ps and wrfont.ps. % ---------------- Packed file support ---------------- % % A packed file is the concatenation of several file groups, each of which % is the result of compressing several files concatenated together. % The packed file begins with a procedure that creates an appropriate % decoding filter for each file group, as follows: % <group-subfile-filter> -proc- <group-decode-filter> % Thus, accessing an individual file requires 4 parameters: % the starting address and length of the outer compressed file, % and the starting address and length of the inner file. /.packedfilefilter % <file> <ostart> <olength> <istart> <ilength> % .packedfilefilter <filter> { 4 index systemdict begin token pop end 6 1 roll % Stack: fproc file ostart olength istart ilength 4 index 5 -1 roll setfileposition % Stack: fproc file olength istart ilength 4 -2 roll () /SubFileDecode filter % Stack: fproc istart ilength ofilter 4 -1 roll exec % Filters don't support setfileposition, so we must skip data % by reading it into a buffer. We rely on the fact that % save/restore don't affect file positions. % Stack: istart ilength dfilter save exch 1000 string % Stack: istart ilength save dfilter scratch 4 index 1 index length idiv { 2 copy readstring pop pop } repeat 2 copy 0 8 -1 roll 2 index length mod getinterval readstring pop pop pop % Stack: ilength save dfilter exch restore exch () /SubFileDecode filter } bind def % Run a packed library file. /.runpackedlibfile % <filename> <ostart> <olength> <istart> <ilength> % .runpackedlibfile { 5 -1 roll findlibfile { exch pop dup 6 2 roll .packedfilefilter currentobjectformat exch 1 setobjectformat run setobjectformat closefile } { 5 1 roll /findlibfile load /undefinedfilename signalerror } ifelse } bind def % ---------------- Compacted font support ---------------- % % Compacted fonts written by wrfont.ps depend on the existence and % specifications of the procedures and data in this section. /.compactfontdefault mark /PaintType 0 /FontMatrix [0.001 0 0 0.001 0 0] readonly /FontType 1 /Encoding StandardEncoding .dicttomark readonly def /.checkexistingfont % <fontname> <uid> <privatesize> <fontsize> % .checkexistingfont % {} (<font> on d-stack) % <fontname> <uid> <privatesize> <fontsize> % .checkexistingfont % -save- --restore-- (<font> on d-stack) { FontDirectory 4 index .knownget { dup /UniqueID .knownget { 4 index eq exch /FontType get 1 eq and } { pop false } ifelse } { false } ifelse { save /restore load 6 2 roll } { {} 5 1 roll } ifelse dict //.compactfontdefault exch .copydict begin dict /Private exch def Private begin /MinFeature {16 16} def /Password 5839 def /UniqueID 1 index def end /UniqueID exch def /FontName exch def } bind def /.knownEncodings [ ISOLatin1Encoding StandardEncoding SymbolEncoding ] readonly def /.readCharStrings % <count> <encrypt> .readCharStrings <dict> { exch dup dict dup 3 -1 roll { currentfile token pop dup type /integertype eq { dup -8 bitshift //.knownEncodings exch get exch 255 and get } if currentfile token pop dup type /nametype eq { 2 index exch get } { % Stack: encrypt dict dict key value 4 index { 4330 exch dup .type1encrypt exch pop } if readonly } ifelse put dup } repeat pop exch pop } bind def