Skip to main content
Skip table of contents

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 /Trapped key 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:

CODE
<< /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.

ImageResolution

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:

CODE
%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]
	/HqnTrapAspectRatio 1.0
	/HqnTrapFeathering 1
	/ImageInternalTrapping false
	/ImageToObjectTrapping true
	% /ImageTrapPlacement /Center
	% or
	% /ImageTrapPlacement /Normal
    % /ImageTrapPlacement /Spread
	% /ImageTrapPlacement /Choke
	% /ImageTrapPlacement /None
	/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

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 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

HqnObjectCoalesceFactor

Number

(Optional) If two adjacent objects share the same fixed color, are small relative to the entire page size, and have bounding boxes that nearly intersect, they may be coalesced into a single object for the purposes of trapping. This threshold determines the tolerance in device pixels for determining whether close objects intersect.

Default: 2.0

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 "colorant concentrations" as defined in the "Normal Trapping Rule" description in section 6.3 of the RB3.

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 thinness beyond which an object will not be trapped. It is not necessarily useful to attempt to trap hairlines and other thin objects such as sparsely populated imagemasks and very small characters. The smaller this value is set, the more traps will be suppressed.

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 heights to widths. This is the parameter which controls anamorphic trapping. The default value is 1.0, which means the amount of trapping applied is equal in the x and y axes (a circular brush), but by varying this parameter you can use an elliptical brush to apply differing amounts of trapping in the two directions.

Default: 1.0

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.

Feathering is only applied to simple traps (traps between single colored objects with no patterning, transparency, or other complications).

Default: 1

HqnTrapOverprintedObjects

Name or string

(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

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

ImageToImageTrapping

Boolean

(Optional) If two images abut or intersect, should the contents of the images be trapped against each other?

Default: true

Override

Integer

(Optional) When Override is set to an integer, subsequent calls to settrapparams are ignored unless their dictionary operands also contain an Override key with a value greater than that already set.

Default: not present

Table 2 TrapPro extensions to trapping parameters

TrapPro also extends the /TrappingDetails dictionary in the page device ([RB3] section 6.3.1, p. 441) with one parameter:

Page device TrappingDetails parameter

Type

Semantics

HqnEffort

Integer

(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.

Default: 0

Table 3 TrapPro extensions to page device

And TrapPro adds a system parameter:

TrapPro system parameters

Type

Semantics

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 usually 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 compositing.

However, large cells may also suffer from having many different color values, especially when trapping images and shaded fills. Using smaller cells may mean faster lookups for the trap colors even though there is more overhead.

Therefore, if a trapping job is performing heavy compositing and running out of memory causing a VMError, 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: 2048

Table 4 TrapPro extensions to system parameters

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.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.