Hqn053 - Controlling TrapPro
Harlequin MultiRIP™ Controlling TrapPro™
This technical note is intended for OEMs supporting the TrapPro™ trapping option to Harlequin MultiRIP™ 10 and later and Harlequin Host Renderer v4 and later
Introduction
TrapPro performs automatic in-RIP trapping. TrapPro is supplied as an optional output plugin for the Harlequin MultiRIP. New controls are added to the RIP when TrapPro is installed, such as TrapPro Manager and Ink Set Manager, both available in the Output menu. Refer to the document TrapPro User Manual for information on using the TrapPro graphical user interface (GUI).
For the Host Renderer you may embed PostScript LanguageLevel 3 commands that specify trapping options in the PostScript language file, before submitting it to the RIP. This technique requires familiarity with the PostScript language, or an application that can generate the necessary code.
Using embedded commands
To understand the background to the technique of using embedded commands in a PostScript language file, see the PostScript Language Reference manual, Third Edition, which Global Graphics refers to as [RB3]. In particular, see section 6.3, tables 6.13 and 6.15 (pages 439-454) and the operators settrapparams and settrapzone(pages 685-686).
Note: This information was first given in a supplement to the PostScript Language Reference Manual for version 3010. If you have that document, which is no longer the definitive reference, see sections 4.5.1 through 4.5.4, tables 4.15 and 4.16 (pages 100-103) and the operators settrapparams and settrapzone (pages 205-206).
In general, TrapPro supports the trapping zones, trapping parameters, and operators settrapparams and settrapzone as documented in [RB3]. However, there are some differences, which are documented here. Section 3 on page 4 lists the differences between the LanguageLevel 3 features and TrapPro. Section 4 on page 4 lists Harlequin RIP extensions to LanguageLevel 3.
PostScript language jobs submitted to the RIP can define their own trapping.
The ability for PDF jobs to contain explicit trapping or trapping specifications for creation in the RIP depends upon features in both PDF version 1.3 and the Portable Job Ticket Format (PJTF)
PDF jobs containing PJTF (Portable Job Ticket Format) structures that detail trapping parameters are supported with respect to making the parameters available to TrapPro. Previously, PJTF structures were ignored. If TrapPro is enabled (that is, just the password entered, not necessarily any parameters set via the GUI or PostScript language file), a PDF job containing trapping parameters (via PJTF structures), will be trapped as dictated by those parameters.
PDF jobs can declare whether or not they are already trapped. The Harlequin MultiRIP does recognize the /Trappedkey in the Info dictionary of a PDF version 1.3 job and treats a value of /True as disabling in-RIP trapping for that job, regardless of any settings in TrapPro.
Requirements
The Harlequin MultiRIP and Host Renderer installation must have the TrapPro option enabled, for the MultiRIP in the Configure RIP Extras dialog box and the Host Renderer must have a password file.
The use of LanguageLevel 3 (set with Postscript Language compatibility level in the Page Setup Options dialog box), is recommended.
Some applications can generate appropriate trapping zones and specify trapping parameters, either through built-in features or by using optional plugins, available from the applications' makers or third parties. These applications include:
- Adobe InDesign™
- Adobe PageMaker® version 6.5 and the Adobe trapping plugin
- QuarkXPress®
- Adobe Acrobat®
It is also possible to create custom workflows in which trapping zones and trapping parameters are added to the job before presenting the job to the RIP. For example, an imposition system might create a separate trapping zone around each page in an imposed sheet or flat.
Note:[RB3] says that the result of defining a trapping zone when there are marks on the page is unpredictable and dependent on the implementation. The RIP reports an error if this is attempted, so you must define all zones before marking the page.
Interaction between settings
There are three places where it is easy to change the trapping options:
- The user interface (GUI) (MultiRIP only)
- Page features
- The job
The only rule of precedence is that the setting made last in time applies. Thus a value set in the job or in a page feature will always override the corresponding setting in the GUI. A page feature applies its settings at the start of each page, so settings in the job have effect only if made for each page. Note, though, that to change trapping parameters for the whole page, that is, to override GUI parameters, the code should force a setpagedevice so that the /Install hook gets run again. A simple way to do this is to execute:
<< /Trapping true >>
setpagedevice
after setting the parameters with settrapparams.
An example page feature distributed with the RIP called "Disable Trapping" can be used to disable all trapping settings configured for the RIP and the job.
Differences between LanguageLevel 3 and TrapPro
See [RB3] table 6.13 for the LanguageLevel 3 definitions of these parameters.Table 1 describes the differences.
LanguageLevel 3 parameter | TrapPro |
---|---|
ImageInternalTrapping | Ignored. |
TrapSetName | Ignored. |
Table 1 Differences between LanguageLevel 3 and TrapPro
Differences between Technical Note #5622 and TrapPro
Previously the default value for the PostScript language parameter ImageToImageTrapping (PostScript Language Level 3 Extensions for Trapping—Technical Note #5622), was false. In current versions the default has been changed to true. This change means that traps, along with a centerline, are generated along an image boundary where the adjacent object is another image. This change overrides the table on page 13 of Technical Note #5622.
TrapPro extensions to LanguageLevel 3
This section explains the various PostScript language parameters which can be used with TrapPro:
Note: TrapPro supports the setting and querying of trapping parameter values defined in the [RB3]. However, you should note that some of those parameters are not used with TrapPro so the values given to them are irrelevant.
TrapPro configuration file
Shown below is an example of PostScript language configuration file for Trap-Pro:
%OEMs will need to set this password:
% << /TrapPro 0 >> setsystemparams
<<
/BlackWidth 1.0
/Enabled true
/HqnDefaultZone false
/HqnObjectToImageRule /Normal
/HqnSmallObjectProtectionFactor 0.6
% /HqnHighlightTrapColor [0.0 1.0 1.0 0]
% /HqnTextToImageRule (Spread)
% or%
/HqnTextToImageRule (Normal)
/HqnTrapAspectRatio 1.0
/HqnTrapFeathering 1
/ImageInternalTrapping false
/ImageToObjectTrapping true
% /ImageTrapPlacement /Center
% or
% /ImageTrapPlacement /Normal
/SlidingTrapLimit 0.9
/StepLimit 0.1
/TrapColorScaling 1.0
/TrapWidth 0.516
>>
/Trapping /ProcSet findresource /settrapparams get exec
<<
/Install [
currentpagedevice /Install get /exec load
{
newpath /Trapping /ProcSet findresource /settrapzone get
exec
} bind
/exec load
] cvx
>>
setpagedevice
The following table lists the extensions to support TrapPro in the Harlequin MultiRIP and Host Renderer v4 and later.
TrapPro parameter | Type | Semantics |
HqnDefaultZone | Boolean | (Optional) If true, indicates that any zones defined will be deemed as "default" in the terms defined by the RB3 in Section 6.3, In-RIP Trapping. Typically, they will be those defined during the /Install hook of set- pagedevice, and to that end, the RIP internally sets this trapparam to true while it is running /Install (and sets it back to false afterwards). See also 'Additional notes'. Note to OEMs: Normally, you will not need to change this value. Default: False (Optional) An integer value which indicates to the trapping engine how much computational effort to invest in trapping. As the value rises, more computationally (memory and/or time) intensive algorithms will be used. Users may notice better trap quality with higher values of this parameter in more complex jobs. Default: 0 |
HqnHighlightTrapColor | Array of four numbers | (Optional) If present, traps are drawn in the specified CMYK color, in over-print mode after the normal traps. Also, a dashed line is drawn around the outline of the zone, using the same separation and color. Highlight traps for each trapping zone are drawn in their own separation (pagebuffer) if the current color separation Style (CSS) is set to autoseparate. This makes it possible to use the other pagebuffers to produce normal output without retrapping. Range of each number: 0 - 1 Default: no highlighting |
HqnObjectToImageRule | Name or string | (Ignored) You can set and query this value but it is ignored by the trapping engine. Default: Normal |
HqnPoorTrapRule | Boolean | (Optional) When true, compares When false, compares neutral density contributions per colorant. This has the effect of making more traps where the difference in neutral density at a boundary is large, and fewer when it is small. This better achieves the fundamental aim of trapping, namely to prevent "light leaks", whilst resisting the temptation to insert traps where they are not necessary to achieve this aim (especially at boundaries differing only in the yellow colorant). Default: false |
HqnSmallObjectProtectionFactor | Number | (Optional) This option allows you to protect small objects on the page by reducing the trap width when trapping against them. The protection factor that you enter ensures the trap width is never greater than a ratio of the average width of the object to the normal trap width. For example, a value of 0.6 ensures the trap is never greater than 60% of the object it is trapping against. Default: 0.6 |
HqnTextToImageRule | Name or string | (Ignored) You can set and query this value but it is ignored by the trapping engine. Default: Normal |
HqnThinnessLimit | Number | (Optional) Defines a limit for object The default value is such that only hairlines (1 device pixel wide) and equivalent shapes will be left untrapped. This does not work on autochoked objects. Default: 2.0 |
HqnTrapAspectRatio | Number | (Optional) The ratio of all brush Default: 1.0 |
Table 2 TrapPro extensions to LanguageLevel 3
TrapPro parameter | Type | Semantics |
HqnTrapFeathering | Integer | (Optional) Indicates the number of feathering steps to be applied during trap generation. Feathering turns the hard edge of a normal trap into a gradation which softens the area of the trap, reducing its visual impact. This provides a gradually reducing amount of compensation for possible misregistration rather than the all-or- nothing approach of a solid-colored trap. The default value is 1, meaning a normal, constant-color trap. Note that feathering is achieved at the expense of considerable extra computation, so increase this value with caution. Default: 1 (Optional) Controls which, if any, overprinting objects are considered for trapping. Values: /All: trap everything regardless of overprint setting. /NotBlack: overprinted 100% black (actually, anything matching the black rule) does not trap, everything else does. /None: no traps for overprinting objects. Default: /All |
HqnTrappingCellSize | Integer | (Optional) A size, in KiB, that the trapping code attempts to use as its fundamental cell size. The larger the value, the bigger the cell leading to fewer cells required to trap a page. Also, the overhead arising from the infrastructure and the necessary overlap between adjacent cells is minimized. A smaller value means more cells and more overhead, but it also increases the chances that a cell can be completely populated by values from the backdrop store during compositing, which means the cell can then be trapped and freed. That is, a smaller cell size might mean a lower memory high water mark during com-positing. Therefore, If a trapping job is per-forming heavy compositing and running out of memory causing a WMError, especially at medium or high resolutions, try reducing the cell size to a value much less than the default. A good starting value is 128. Default: 1024 |
Confidence12HqnTrappingMemoryLimit | Number | When the usage of memory by TrapPro exceeds this limit, large structures will be written to disk and then freed when TrapPro is using less than the limit. It is therefore a “soft” limit, in that memory usage can go above it in normal operation: it is a threshold value, above which, trap-ping considerations are written to disk instead of allocated trapping memory. The maximum memory is 2GB. When the trapping memory limit has been exceeded and the structures are starting to be written to disk, the following message appears in the monitor and the log file: %%[ Warning: TrapPro memorylimit (256mb) exceeded ]%% The figure in parentheses reflects the current setting. When this warning appears performance may be slow. Therefore, if more RAM is available, you should consider raising the value. HqnTrappingMemoryLimit should be set within a file in ExtraStart. As it is a sysparam, it will persist for all page setups. Default: 256 |
HqnTrapSizeSenseFactor | Number | (Optional) This is a floating point number which is a multiplier. It is the ratio of mask brush size to normal brush size, which essentially means that the larger the number, the further the engine looks for areas of color away from which a potential trap should narrow. The default value of 2.0 results in a mask brush twice as large as the final trap brush, and therefore any trap will occupy at most one half of the area available to it. Default: 2.0 |
HqnWhiteDensityLimit | Number | (Optional) When a color's calculated total neutral density is less than this figure, it is treated as white. This means that a superblack will auto-choke against a background of this color, and the color itself cannot spread. The parameter is provided to allow for some adjustment, particularly in situations where a zero tint in all separations is not the only sensible definition for white, for example, when “page white painting” is enabled in a color managed setup. Default: 0.005 |
Override | Integer | (Optional) When Override is set to an integer, subsequent calls to settrapparams are ignored unless their dictionary operands also contain an Overridekey with a value greater than that already set. Default: not present |
Table 2 TrapPro extensions to LanguageLevel 3
Additional notes
If a default trap zone (HqnDefaultZone) is defined with an empty path (as now happens in the RIP when TrapPro is enabled via the GUI), it is overloaded by the RIP and the device bounds at the end of the BeginPage hook are substituted.