123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- % Copyright (C) 1999, 2000 Aladdin Enterprises. 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.
- %
- % For more information about licensing, please refer to
- % http://www.ghostscript.com/licensing/. For information on
- % commercial licensing, go to http://www.artifex.com/licensing/ or
- % contact Artifex Software, Inc., 101 Lucas Valley Road #110,
- % San Rafael, CA 94903, U.S.A., +1(415)492-9861.
- % $Id: gs_trap.ps,v 1.6 2002/06/02 12:03:28 mpsuzuki 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
|