% 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 { % 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 { % .copyparams 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 /.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