Cursor attributes

Important

The modern print platform is Windows' preferred means of communicating with printers. We recommend that you use Microsoft's IPP inbox class driver, along with Print Support Apps (PSA), to customize the print experience in Windows 10 and 11 for printer device development.

For more information, see Modern print platform and the Print support app design guide.

Cursor attributes are general printing attributes that specify characteristics of a printer's cursor.

The following table lists the cursor attributes.

Attribute name Attribute parameter Comments
AbsXMovesRightOnly? TRUE or FALSE. This parameter is used to specify that a device can accept only absolute move commands that move the current position to the right. If a move to the left of the current position is required, Unidrv first sends a carriage return so that the absolute command that is sent is to the right of the new current position. Optional. If not specified, the default value is FALSE.
BadCursorMoveInGrxMode LIST of values representing illegal cursor movements in raster graphics mode. Can be one or more of:

X_PORTRAIT

X_LANDSCAPE

Y_PORTRAIT

Y_LANDSCAPE
Optional. If not specified, the default is no restrictions. As an example, LIST(X_PORTRAIT) indicates x-direction movement is not allowed for portrait orientation.
CursorXAfterCR One of:

AT_PRINTABLE_X_ORIGIN

AT_CURSOR_X_ORIGIN

Indicates cursor's x-position after a carriage return.
Optional. If not specified, the default value is AT_CURSOR_X_ORIGIN, which is the physical zero position.
EjectPageWithFF? TRUE or FALSE.

Indicates whether the printer uses form-feed to eject a page.
Optional. If not specified, the default value is FALSE.
LineSpacingMoveUnit Positive integer value. Specifies the move units for the CmdSetLineSpacing command. Units are expressed in dots per inch. For a printer whose line spacing move unit is 1/60th of an inch, this entry should be 60.

Note that the line spacing move unit must divide evenly into the master Y unit.

The *MaxLineSpacing parameter is still in master units independent of whether *LineSpacingMoveUnit is specified.
Optional. The default value is 1 master unit.
MaxLineSpacing Numeric value representing the maximum line spacing, in y-master units. Optional. If not specified, Unidrv assumes there is no maximum value.
UseSpaceForXMove? TRUE or FALSE.

Indicates whether space characters can be used to perform cursor x-direction movements.
Optional. If not specified, the default value is TRUE.

If TRUE, Unidrv uses spaces for coarse moves and NULLs for fine moves. If FALSE, Unidrv uses NULLs for all moves.
XMoveThreshold Numeric value, in x-master units, representing the movement threshold beyond which CmdXMoveAbsolute should be used instead of CmdXMoveRelLeft or CmdXMoveRelRight. Optional. If not specified, the default value is zero, meaning CmdXMoveAbsolute should always be used. Only applicable if all three x-movement commands are specified.
XMoveUnit Numeric value, in dots per inch, representing the smallest horizontal movement the printer is capable of. For example, if the movement unit is 1/600th of an inch, the specified value is 600. Required if the printer supports horizontal movement cursor commands. If specified, include this value when calculating master units.
YMoveAttributes LIST of values indicating y-movement attributes. Can be one or more of:

FAV_LF (favor LF spacing)

SEND_CR_FIRST
Optional. If not specified, no attributes are assumed.
YMoveThreshold Numeric value, in y-master units, representing the movement threshold beyond which CmdYMoveAbsolute should be used instead of CmdYMoveRelLeft or CmdYMoveRelRight. Optional. If not specified, the default value is zero, meaning CmdYMoveAbsolute should always be used. Only applicable if all three y-movement commands are specified.
YMoveUnit Numeric value, in dots per inch, representing the smallest vertical movement the printer is capable of. For example, if the movement unit is 1/600th of an inch, the specified value is 600. Required if the printer supports vertical movement cursor commands. If specified, include this value when calculating master units.