home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 10 / AU_CD10.iso / Updates / GhostScript / !GhostScr / 6_01 / lib / gs_trap.ps < prev    next >
Text File  |  2000-03-29  |  3KB  |  105 lines

  1. %    Copyright (C) 1999 Aladdin Enterprises.  All rights reserved.
  2. % This file is part of Aladdin Ghostscript.
  3. % Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  4. % or distributor accepts any responsibility for the consequences of using it,
  5. % or for whether it serves any particular purpose or works at all, unless he
  6. % or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  7. % License (the "License") for full details.
  8. % Every copy of Aladdin Ghostscript must include a copy of the License,
  9. % normally in a plain ASCII text file named PUBLIC.  The License grants you
  10. % the right to copy, modify and redistribute Aladdin Ghostscript, but only
  11. % under certain conditions described in the License.  Among other things, the
  12. % License requires that the copyright notice and this notice be preserved on
  13. % all copies.
  14.  
  15. % $Id: gs_trap.ps,v 1.1 2000/03/09 08:40:40 lpd Exp $
  16. % PostScript LanguageLevel 3 in-RIP trapping support.
  17.  
  18. ll3dict begin
  19.  
  20. % We need LanguageLevel 2 or higher in order to have setuserparams and
  21. % defineresource.
  22. languagelevel dup 2 max .setlanguagelevel
  23.  
  24. % ------ Trapping ------ %
  25.  
  26. % The PostScript-level trapping parameters are maintained in userdict,
  27. % and explicitly reinstalled upon restore.
  28.  
  29. /Trapping mark
  30.  
  31. /settrapparams dup {        % <paramdict> settrapparams -
  32.   /.trapparams .uservar dup length dict .copydict
  33.   dup 2 index {
  34.             % Stack: paramdict olddict olddict key value
  35.     2 index 2 index known { put dup } { pop pop } ifelse
  36.   } forall pop
  37.   dup .settrapparams    % Let the operator check parameter validity.
  38.   .userdict /.trapparams 3 -1 roll put pop
  39. } bind .makeoperator
  40.  
  41. /.copyparams {        % <obj> .copyparams <obj'>
  42.   dup type /dicttype eq {
  43.     dup length dict .copydict
  44.     dup {
  45.       .copyparams 3 copy put pop pop
  46.     } forall
  47.   } {
  48.     dup type /arraytype eq {
  49.       [ exch { .copyparams } forall ]
  50.     } if
  51.   } ifelse
  52. } odef
  53.  
  54. /currenttrapparams dup {    % - currenttrapparams <paramdict>
  55.   /.trapparams .uservar .copyparams
  56. } bind .makeoperator
  57.  
  58. /settrapzone dup {        % - settrapzone -
  59.     % ****** DUMMY ******
  60.   newpath
  61. } bind .makeoperator
  62.  
  63. % Define initial (dummy) trapping parameters.
  64. % These values are mostly complete guesses.
  65. userdict /.trapparams mark
  66.   /BlackColorLimit 1.0
  67.   /BlackDensityLimit 1.0
  68.   /BlackWidth 1.0
  69.   /ColorantZoneDetails 0 dict
  70.   /Enabled true
  71.   /HalftoneName null
  72.   /ImageInternalTrapping false
  73.   /ImageResolution 1
  74.   /ImageToObjectTrapping true
  75.   /ImageTrapPlacement /Center
  76.   /SlidingTrapLimit 1.0
  77.   /StepLimit 1.0
  78.   /TrapColorScaling 0.0
  79.   /TrapSetName null
  80.   /TrapWidth 1.0
  81. .dicttomark readonly put
  82.  
  83. .dicttomark /ProcSet defineresource pop
  84.  
  85. % Define the InkParams and TrapParams resource categories.
  86. { /InkParams /TrapParams } {
  87.   /Generic /Category findresource dup maxlength 3 add dict .copydict begin
  88.     /InstanceType /dicttype def
  89.   currentdict end /Category defineresource pop
  90. } forall
  91.  
  92. % Define the TrappingType resource category.
  93. /Generic /Category findresource dup maxlength 3 add dict .copydict begin
  94.   /InstanceType /integertype def
  95. /TrappingType currentdict end /Category defineresource pop
  96.  
  97. {1001} { dup /TrappingType defineresource pop } forall
  98.  
  99. .setlanguagelevel
  100.  
  101. end            % ll3dict
  102.