International Language Environments Guide

.xpr File Customization

These files are located by default at /usr/lib/lp/locale/C/mp/. An .xpr file corresponds to each PostScript prolog layout file, except for mp.common.ps. You can define an alternate prolog directory by defining the MP_PROLOGUE environment variable.

These files work as keyword/values pairs. Lines that start with # are considered comments. Spaces separate different tokens unless explicitly stated. Three main sections for each .xpr file are bound by the following keyword pairs:

Certain keyword/value pairs can be used in these three areas. Each area is described next.

STARTCOMMON/ENDCOMMON Keywords

All the keyword/value pairs that appear after the STARTCOMMON keyword and before the ENDCOMMON keyword define general properties of the print page. Different valid values for a keyword are separated by using "/".

ORIENTATION 0/1

"0" means the printing occurs in portrait and "1" means in landscape.

PAGELENGTH unsigned-integer

A value that indicates the number of lines per logical page.

LINELENGTH unsigned-integer

A value that indicates the number of single column characters per line.

NUMCOLS unsigned-integer

The number of logical pages per physical page.

HDNGFONTSIZE unsigned-integer

The heading font point size in decipoints.

BODYFONTSIZE unsigned-integer

The body font point size in decipoints.

PROLOGDPI unsigned-integer

The dots-per-inch scale in which the current .xpr file is created.

YTEXTBOUNDARY unsigned-integer

This y-coordinate establishes the boundary for text printing in a page or logical page (column). This boundary is used as an additional check to see whether text printing is occurring within the expected area. This boundary is needed for Complex Text Layout and EUC printing, as character height information obtained from corresponding fonts can be wrong.

STARTTEXT unsigned-integer unsigned-integer

The decipoint x/y points where the actual text printing starts in the first logical page in a physical page.

PAGESTRING 0/1

The 1 indicates that a "Page" string needs to be appended before the page number in the heading.

0 indicates that only the page number is displayed.

EXTRAHDNGFONT font string 1, font string 2, ... font string n

The 'font string 1' to 'font string n' are X Logical Font Descriptions. The Token that separates the keyword EXTRAHDNGFONT from the comma separated font name list is ", not spaces or tabs. These fonts are given preference over the built-in fonts when the heading is printed. Usually, EXTRABODYFONT is used to assign printer-resident fonts that are configured in /usr/openwin/server/etc/XpConfig/C/print/models/<model name>/fonts directory.

The fonts.dir file contains the XLFD of the printer-resident fonts.

Usually a font is specified as

 "-monotype-Gill Sans-Regular-r-normal- -*-%d-*-*-p-0-iso8859-2" 

in the .xpr file. "%d", if present, is replaced by mp(1) to the point size of the current heading fonts in the .xpr file. The x resolution and y resolution are specified by * and the average width field is set as 0 to indicate selection of a scalable font, if possible. You can give more specific font names also.

EXTRABODYFONT font string 1, font string 2, ... font string n

The same as EXTRAHDNGFONT, except that these fonts are used to print the page body.

XDISPLACEMENT signed/unsigned int

Gives the x coordinate displacement to be applied to the page for shifting the contents of the page in the x direction. This displacement can be a +ve or -ve value.

YDISPLACEMENT signed/unsigned int

The same as x displacement except that the shifting happens in the y direction.

These two keywords are useful when you find that some printers have nonstandard margin widths and you need to shift the printed contents in a page.

STARTPAGE/ENDPAGE

The keyword value pairs in this section are bound by STARTPAGE and ENDPAGE keywords. This section contains drawings and heading information that is to be applied for a physical page. A physical page can contain many logical pages, but all the drawing routines that are contained between these keywords are applied only once to a physical page.

The valid drawing entities are LINE and ARC. XDrawLine() and XDrawArc() functions are executed on values of these keywords.

The dimensions within this section are mapped in PROLOGDPI units. Angles are in degrees.

LINE x1 y1 x2 y2

The x/y unsigned coordinates define a pair of points for connecting a line.

ARC x y width height angle1 angle2

x and y are both unsigned integers that represent the arc origin. Width and height are unsigned integers that represent the width and height of the arc.

USERSTRINGPOS x y

Unsigned coordinates represent the position in which the user information is printed on the heading.

TIMESTRINGPOS x y

Unsigned coordinates represent the position in which the time for printing is printed on the heading.

PAGESTRINGPOS x y

Unsigned coordinates represent the position to print the page string for each printed page.

SUBJECTSTRINGPOS x y

Unsigned coordinates represent the position to print the subject in the page.

STARTFORCEDPAGE/ENDFORCEDPAGE

When the -n option is given to mp, all the decorations given within a STARTPAGE/ENDPAGE section do not print. However, everything included within a STARTFORCEDPAGE/ENDFORCEDPAGE section prints even if the -n option is given.

STARTCOLUMN/ENDCOLUMN

All keywords are the same as secribed in STARTPAGE/ENDPAGE except that the entries in this section are applied to NUMCOLS times to a physical page.

If NUMCOLS is 3, then the printable area of the physical page is divided into three, and lines, arcs, or heading decorations appear three times per page.

STARTFORCEDCOLUMN/ENDFORCEDCOLUMN

When the -n option is given to mp, all the decorations given within a STARTCOLUMN/ENDCOLUMN section do not print. However, everything included within a STARTFORCEDCOLUMN/ENDFORCEDCOLUMN section prints even if the -n option is given.