Raster sizes: arbitrary sizes
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
This group of operators was primarily introduced to support imagesetters, especially capstan-type recorders where there is no direct relationship between the page size described by a job and the media on which it is to be rendered. All of these operators are in statusdict
.
The setpageparams
procedure (formerly an operator) combines the functionality of the PageSize
, Orientation
and Margins
keys of the setpagedevice
operator. It is widely used to set an arbitrary raster size for use on printers where only part of the area need be rendered, for example a continuous feed film recorder (this is nearly always the case in the RIP; only where the system is configured to write directly into the frame buffer video memory of a printer is an exact raster size a necessity).
setpage
, an older variant of setpageparams
which does not have a margin operand, works in the same way. pageparams
returns the values set by setpageparams
; it does this by using currentpagedevice
.
setpagemargin
, setmargins
and setpagetype
allow the margins and orientation to be set independently of each other or the page size. There are equivalent query operators, pagemargin
, margins
and pagetype
.
Where media differs from the size of the raster it can be useful to determine this, using the mediawidth
, mediaheight
or mediasize
procedures.
width height margin orientation
setpageparams-
The setpageparams
procedure in statusdict
sets the imageable area of the page to width by height points (strictly speaking, default user coordinate units of 1/72 inch), the top and left margins to the value margin , also in points, and the orientation of the page to landscape if the orientation operand is 0 and portrait if it is 1.
Adobe’s definition of setpageparams
takes the default settings for raster sizes (if setpageparams
is not used) from permanent memory; however, this behavior is inappropriate for the RIP where the page size is set elsewhere: for example in the GUI version it is always set in the page setup dialog which causes an explicit call to setpagedevice
before each job. See The RIP in action for more details.
pageparams width height margin orientation
The pageparams
procedure in statusdict
returns on the operand stack the current width, height, margin and orientation of the raster. However, because setpagedevice
is more general than setpageparams
, if the top and left margins are different, only the left margin is returned. width and height are returned from the PageSize
key in the current page device, not from the input attribute actually selected (that is, they give the raster size, not the size of the output media).
width height orientation
setpage -
The setpage
procedure in statusdict
sets the imageable area of the page to width by height points, and the orientation of the page to landscape if the orientation operand is 0 and portrait if it is 1. Margins remain as they were. Note that there is no analogous page
procedure to return the values set by setpage
.
margin
setpagemargin -
The setpagemargin
procedure in statusdict
sets both the left and top margins to margin points by using the /Margin
key in a call to setpagedevice
. Note that this is not quite the same as the original definition, where application of the operand was deferred until a subsequent setpage
operation.
However, the effect should be the same in practice.
pagemargin margin
The pagemargin
procedure in statusdict
returns on the operand stack the value of the left margin from the current page device. If it was set b setpagemargin
or setpageparams
, this will be the same as the top margin.
leftmargin topmargin
setmargins -
The setmargins
procedure in statusdict
sets the left and top margins to leftmargin and topmargin
points respectively using the /Margins
key in a call to setpagedevice
.
margins leftmargin topmargin
The margins
procedure in statusdict
returns on the operand stack the values of the left and top margins from the array value of the /Margins
key in the current page device.
orientation
setpagetype -
The setpagetype
procedure in statusdict
sets the orientation of the page using the /Orientation
key in a call to setpagedevice
. If orientation is 0 (zero) the page is landscape, and if 1 it is portrait.
mediawidth width
mediaheight height
mediasize width height
These three procedures, all in statusdict
, return on the operand stack the width, height, and both, respectively, of the media on which the raster is to be rendered. This is typically a combination of the PageSize
in the dictionary of the input attribute selected by the media matching process, and the PageSize
key in the page device dictionary if the input attribute has zeros indicating unlimited dimensions. In the GUI version, the media size will depend on the type of the device (capstan, full drum, part drum or sheet) and other properties set in the deviceType
field in the device configuration set by the plugin.