Mini Shell
% Set defaults for Ghostscript to match Adobe CPSI behaviour for CET
% skip if we've already run this -- based on fake "product"
systemdict /product get (PhotoPRINT SE 5.0v2) readonly eq
{
(%END GS_CET) .skipeof
} if
% Note: this must be run at save level 0 and when systemdict is writeable
currentglobal //true setglobal
systemdict dup dup dup
/version (3017.102) readonly .forceput % match CPSI 3017.102
/product (PhotoPRINT SE 5.0v2) readonly .forceput % match CPSI 3017.102
/revision 0 put % match CPSI 3017.103 Tek shows revision 5
/serialnumber dup {233640} readonly .makeoperator .forceput % match CPSI 3017.102 Tek shows serialnumber 1401788461
systemdict /.odef { % <name> <proc> odef -
1 index exch //.makeoperator def
} .bind .forceput % this will be undefined at the end
300 .sethiresscreen % needed for language switch build since it
% processes gs_init.ps BEFORE setting the resolution
0 array 0 setdash % CET 09-08 wants local setdash
/UNROLLFORMS //true def
(%.defaultbgrucrproc) cvn { } bind def
(%.defaultbgrucrproc) cvn load dup
setblackgeneration
setundercolorremoval
0 array cvx readonly dup dup dup setcolortransfer
% CPSI doesn't define "Localization" resource.
/Localization /Category undefineresource
% Quality Logic test 09-59.ps tries to set each listed /OutputDevice.
% This can cause problems with some devices (eg mswinpr2 on Windows)
% so for the CET files we define the OutputDevice resource as
% being empty. We need to redefine /.definecategory as that definition
% gets destroyed at the end of gs_res.ps
/OutputDevice /Category undefineresource
/.definecategory % <name> -mark- <key1> ... <valuen> .definecategory -
{ counttomark 2 idiv 2 add % .Instances, Category
/Generic /Category findresource dup maxlength 3 -1 roll add
dict .copydict begin
counttomark 2 idiv { def } repeat pop % pop the mark
currentdict end /Category defineresource pop
} bind def
/OutputDevice mark /InstanceType /dicttype .definecategory
% Redefine Font category to return -1 (unknown) VM usage
% in all cases to avoid differences between hosts.
/Font /Category findresource
dup length dict copy
dup
dup /.loadfontresource get
dup length array copy cvx
dup 1 0 put
dup 7 -1 put
/.loadfontresource exch put
/Font exch /Category defineresource pop
% Some previously compile time options such as USE_ADOBE_CMYK_RGB
% and GS_CHAR_FILL are now dynamic. Force CPSI compatibility.
//true .setCPSImode
% Some QL jobs (/23-12B.PS for example) do:
% '(%stdin) (r) file'
% expecting that they are being read from stdin.
% if that is not the case, they block waiting for input
% from stdin.
% This hooks the 'file' operator', so if a job tries to
% open %stdin, and we're *not* reading the job from stdin
% it'll return currentfile instead.
/ofile /file load def
/file
{
1 index (%stdin) eq 2 index (%stdin%) eq or
{
ofile dup currentfile eq not
{
pop currentfile
}if
}
{
ofile
} ifelse
} bind //.odef exec
currentdict /ofile undef
% One QL job (23-12B.PS) effectively does:
% (%stdin) (r) file 0 setfileposition
% expecting it to throw an ioerror (stdin not being a positionable
% stream.
% With the above 'file' hook, when running from a file
% rather than stdin, setfileposition will succeed, and we hit
% an infinite loop - '0 setfileposition' meaning we restart intepreting
% from the beginning of the file.
% Hook setfileposition to throw an error attempting to reposition
% the current file.
/osetfileposition /setfileposition load def
/setfileposition
{
1 index currentfile eq
{
/setfileposition cvx /ioerror signalerror
}
{
osetfileposition
} ifelse
} bind //.odef exec
currentdict /osetfileposition undef
setglobal
% Remove all but the default page size (the 0 entry in the InputAttributes
% dictionary). This is usually 'letter'.
<<
% As we're removing all but the default, make sure we're
% using the default.
/PageSize currentpagedevice /InputAttributes get 0 get /PageSize get
currentpagedevice /InputAttributes get
1 1 2 index length 1 sub {
1 index exch undef
} for
/InputAttributes exch
>>
setpagedevice
% Patch setsmoothness, currentsmoothness for a better view of shadings :
userdict /.smoothness currentsmoothness put
/setsmoothness {
dup type dup /integertype eq exch /realtype eq or {
userdict /.smoothness 3 2 roll cvr put
} {
/setsmoothness .systemvar /typecheck signalerror
} ifelse
} bind //.odef exec
/currentsmoothness { userdict /.smoothness get } bind //.odef exec % for 09-55.PS, 09-57.PS .
% slightly nasty hack to give consistent cluster results
/ofnfa systemdict /filenameforall get def
/filenameforall
{
2 index dup length 1 eq
{
(*) eq
{
3 -1 roll pop ( ) 3 1 roll
} if
}
{
pop
} ifelse
ofnfa
} bind def
systemdict /.odef .undef
% end of slightly nasty hack to give consistent cluster results
%END GS_CET
Zerion Mini Shell 1.0