123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- % Copyright (C) 1999, 2000 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_trap.ps,v 1.3 2000/09/19 18:29:11 lpd Exp $
- % PostScript LanguageLevel 3 in-RIP trapping support.
- ll3dict begin
- % We need LanguageLevel 2 or higher in order to have setuserparams and
- % defineresource.
- languagelevel dup 2 max .setlanguagelevel
- % ------ Trapping ------ %
- % The PostScript-level trapping parameters are maintained in userdict,
- % and explicitly reinstalled upon restore.
- /Trapping mark
- /settrapparams dup { % <paramdict> settrapparams -
- /.trapparams .uservar dup length dict .copydict
- dup 2 index {
- % Stack: paramdict olddict olddict key value
- 2 index 2 index known { put dup } { pop pop } ifelse
- } forall pop
- dup .settrapparams % Let the operator check parameter validity.
- .userdict /.trapparams 3 -1 roll put pop
- } bind .makeoperator
- /.copyparams { % <obj> .copyparams <obj'>
- dup type /dicttype eq {
- dup length dict .copydict
- dup {
- .copyparams 3 copy put pop pop
- } forall
- } {
- dup type /arraytype eq {
- [ exch { .copyparams } forall ]
- } if
- } ifelse
- } odef
- /currenttrapparams dup { % - currenttrapparams <paramdict>
- /.trapparams .uservar .copyparams
- } bind .makeoperator
- /settrapzone dup { % - settrapzone -
- % ****** DUMMY ******
- newpath
- } bind .makeoperator
- % Define initial (dummy) trapping parameters.
- % These values are mostly complete guesses.
- userdict /.trapparams mark
- /BlackColorLimit 1.0
- /BlackDensityLimit 1.0
- /BlackWidth 1.0
- /ColorantZoneDetails 0 dict
- /Enabled true
- /HalftoneName null
- /ImageInternalTrapping false
- /ImagemaskTrapping true
- /ImageResolution 1
- /ImageToObjectTrapping true
- /ImageTrapPlacement /Center
- /SlidingTrapLimit 1.0
- /StepLimit 1.0
- /TrapColorScaling 0.0
- /TrapSetName null
- /TrapWidth 1.0
- .dicttomark readonly put
- .dicttomark /ProcSet defineresource pop
- % Define the InkParams and TrapParams resource categories.
- { /InkParams /TrapParams } {
- /Generic /Category findresource dup maxlength 3 add dict .copydict begin
- /InstanceType /dicttype def
- currentdict end /Category defineresource pop
- } forall
- % Define the TrappingType resource category.
- /Generic /Category findresource dup maxlength 3 add dict .copydict begin
- /InstanceType /integertype def
- /TrappingType currentdict end /Category defineresource pop
- {1001} { dup /TrappingType defineresource pop } forall
- .setlanguagelevel
- end % ll3dict
|