Skip to main content
Skip table of contents

HqnImpose2 FixedSizeSheet suffix

This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.

This suffix procedure makes it easy for OEMs to code page geometry handling for devices with fixed sizes. The suffix has three functions:

  • Disables the Orientation, ExtraOrientation, FilmSaving, and TimeSaving keys in the page device. These are passed through by the OneUp and NxN objectives but are inappropriate for fixed size sheets. Orientation and ExtraOrientation have already been acted on if using the OneUp objective with the OneUpWithAspect strategy.
  • Adjusts a layout if it is too large to fit on the device (typically because a single page is too large for the device).
  • Increases the size of the raster created up to specified minimum values.

You must set the  MaxWidth and MaxHeight keys to match the maximum imaging size of the output device. MinWidth and MinHeight may also be defined; they default to zero if they are not explicitly set. If an output device supports several different paper sizes, a Prefix may be used to select the appropriate paper and to set MaxWidth, MaxHeight, and so on to fit that sheet.

When calculating the number of pages that fits on a sheet using the FillSpace objective, and BestFit handling for NxN objectives, the MaxWidth and MaxHeight values are increased by the value of SheetSlop.

This value is defined in device pixels, rather than the points that are used for most other dimensions. Default value = 35 pixels.

If a flat design as generated by the selected Objective and Tactic is larger than the maximum size, OversizeStrategy is acted on. The following values are currently supported:

BottomLeft

The bottom left corner of the page is drawn, and the top and/or right side of the page is clipped off. This is the default setting if OversizeStrategy is not explicitly defined. The PageClipped key is set to true so that a FilmOverlay procedure (or other item) can determine that clipping has occurred.

TopLeft

The top left corner of the page is drawn, and the bottom and/or right side of the page is clipped off. The PageClipped key is set to true so that a FilmOverlay procedure (or other item) can determine that clipping has occurred.

CropCenter

The center of the page is positioned at the center of the imaging area for each page. The top and bottom are clipped equally if the page is too tall for the imageable area; the left and right sides are clipped equally if the page is too wide. The PageClipped key is set to true so that a FilmOverlay procedure (or other item) can determine that clipping has occurred.

CropManual

The ClipOffset variable may be set to define exactly which parts of the page are shown. ClipOffset should be an array of two numbers, horizontal and vertical offsets. If this is set to null (the default), CropManual equates to CropCenter. CropManual may be used for tiling.

SimpleScaleToFit

The page grid is scaled down in proportion until it fits inside the imaging area set aside for it. It is not adjusted to reset margins. This is designed to allow a layout prepared for plate making to be proofed unchanged except for scaling.

ComplexScaleToFit

The page grid is scaled down in proportion until it fits inside the imaging area set aside for it. The flat design is then re-passed through the Tactic procedure in order to fine tune margins, and so on.

ScaleToFit

The page is scaled down in proportion until it fits inside the imaging area set aside for it. This equates to SimpleScaleToFit Objective=PassThrough; if any other Objective is selected, it equates to ComplexScaleToFit.

For all three scaling options, the PageScaleX and PageScaleY keys are set to reflect the scaling applied to the page.

AbortJob

The job is aborted at the time of the setpagedevice call.

AbortOnGraphics

GGS recommends this option is  over AbortJob, in that the job is only aborted when it actually marks the page. Many jobs contain multiple calls to setpagedevice, often with different page sizes associated with them. This option avoids aborting a job because an early call sets a large page size, even though a later call sets a size that would fit.

The scale factor used when OversizeStrategy is ScaleToFit may be constrained by defining ScaleSnap. The value should be an array of acceptable scale factors as real numbers less than 1 and in increasing order. For example:

/ScaleSnap [ 0.05 0.10 0.20 0.25 0.40 0.50 ]

The largest scale factor from this list that allows the page to fit is used. If the first entry in the array is too large to allow the page to fit using that value, it is still used.

If more than one page was placed on the flat, all such pages are clipped or scaled in the same way; you can print reduced pages four-up on a device with code such as the following:

TEXT
<<
  /Objective /NxN
  /PagesAcross 2
  /PagesUp 2
  /Suffix /FixedSizeSheet
  /OversizeStrategy /ScaleToFit
  /MaxWidth 1200
  /MaxHeight 1800
>> /HqnImpose2 /ProcSet findresource /HqnInitImpose get exec

OversizeStrategy procedures are held in a dictionary named OversizeStrategies. The procedures do not receive or return data by the stack. The PanelWidth and PanelHeight keys are set to the maximum area available for each page before the procedures are called.

A number of objectives and the main HqnImpose2 control loop include simple backstops for handling single pages larger than the maximum flat size.  Set StandardBackstop to false to disable all of these. (It defaults to true .) Selecting the FixedSizeSheet Suffix automatically sets StandardBackstop to false.

If the flat size is increased to match MinWidth and MinHeight , the HorCenter and VertCenter procedures are run. These must leave a Boolean value on the operand stack; if true, all page images on the flat are moved to center the design on the flat. This does not move any control marks, or marks drawn using a FilmOverlay procedure. The default procedures examine the CenterOnMediaLength and CenterOnMediaWidth keys in the page device.

JavaScript errors detected

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

If this problem persists, please contact our support.