Last updated January 26, 2002

Return to 'Schedule+ Printing Model'

Schedule+ Printing Model

This section describes the Schedule+ printing model. This model allows you to design complex page layouts representing different views of the schedule data in a simple text file.

Overview

The Schedule+ printing model formats printed information using different page sizes and formats. The application contains a print engine that can find print layouts and page formats in a directory and parse them at run time. Both the layout and the format are described by text files that have an extension of .PRT for the layout and .FMT for the format.

The layout specifies how items such as appointments, tasks, and calendars are laid out on a page. The format defines the size of the physical page, the number of virtual pages on a physical page, and so on. The user interface lets you use a list box to select a format and a layout. Examples of formats are Daily and Trifold; examples of layouts are Normal and Avery.

Layout Description

The print layout is based on the concept of a view, which can be thought of as a way of looking at the schedule data. When you create a view, you must first define some basics such as the name of the view, the name of the preferred page format, what each page of a view represents (a month, a day, a week, and so on), and the size of the metapage.

The Metapage

The metapage is the logical coordinate system you use to place objects on the page layout. The coordinate system of the metapage is automatically scaled to the actual page size. For example, if you use a metapage of 100x100 pixels, you can work in percentages of the page. Metapage coordinates are expressed in the format (left, top, right, bottom), where all values are absolute coordinates. In the example of 100x100 pixels, all objects must be in the rectangle (0,0,100,100).
An object in this page that exists from (0,0,30,100) would take up the top 30% of the page. If the page were actually 1000 pixels by 500 pixels, then the object would exist on the physical page in the rectangle (0,0,300,500).

Note All text in the print file must be in uppercase because the parser does not accept lowercase characters. The only exception to this rule is the use of mixed-case text within quoted strings and in comment lines.

The first line of the print file must start with the word VIEW. The VIEW command allows the print engine to verify that the file is in the expected format. If the first line is not in the following format, an error message dialog box appears and the printing is stopped:

VIEW "{view name}", "{format name}", "{view type}",{meta-x}, {meta-y}
where
{view name}
Specifies the name of the view.

{format name}

Specifies the name of the preferred page format for the the view (less than 40 characters in length). The preferred page format does not have to be available - if it is not found, a default format is used.

{view type}

Specifies the range of dates the print objects are given, and can have the following values.

View type Description
DAILY (default) This value can be omitted, but a comma must be inserted in its place unless you are entering no other values on the line. If you eliminate a parameter and use a default, you must enter a comma to indicate a missing value.When this view is printed for n days, it is iterated n times with the date range being a single day and incremented a day at a time.
WEEKLY When this view is printed for n weeks, it is iterated n times with the date range being a week and incremented a week at a time. The start day is always the start of the week.
WORKWEEKLY This view is a special form of WEEKLY that considers a week to be the days Monday through Friday. The start day is always the start of the work week.
MONTHLY When this view is printed for n months, it is iterated n times with the date range being a month and incremented a month at a time. The start day is always the start of the month.
ALL This value iterates the print view only once for the entire range being printed. This is useful for appointment text views or task views, where all the information is printed at once rather than in terms of time intervals.

{meta-x}, {meta-y}

Integers that describe the size of the metapage. The default is 100.

The following lines all illustrate a valid first line, and are equivalent:

VIEW "My Own View","Letter",DAILY,100,100
VIEW "My Own View","Letter",DAILY
VIEW "My Own View","Letter",100,100
VIEW "My Own View","Letter"

You can enter any text after the VIEW line. All characters outside quoted strings are ignored and any line beginning with a semicolon (;) is treated as a comment, as is anything between a semicolon and a new line.

Multiple Pages

The print view can be defined as multiple pages. The PAGE command breaks to a new page, and all objects defined after the PAGE command refer to the new page. However, the date is not automatically incremented.

A page can also be defined as a repeating page. Repeating pages repeat themselves until they are empty. These are useful when combined with OVERFLOW objects, because they allow all the overflow information to be printed. The OVERFLOW command converts a page to a repeating page. In general, the OVERFLOW command should appear before the first object on a given page.

Note The OVERFLOW command should not be confused with the OVERFLOW object.

An important consideration is that a repeating page must not contain any objects that produce overflow buffer items. If it has such objects, the page can generate more overflow buffer items while it is printing the buffer contents, and thus enter an infinite printing loop.

Print Objects and Properties

After specifying the view and metapage, you must describe the printable areas by placing objects such as appointments and tasks on the metapage. Several built-in objects exist for this purpose and are described in this section.

Most objects that are placed on the metapage print schedule information. If an object cannot fit all of its information into the printing area, any unprinted information can be put into an overflow buffer.
Objects can also have properties. The following built-in objects have several shared properties such as fonts and date formats. All these properties are consistent within objects, and all objects that support them use them in a similar fashion.

Object Description
APPTS Puts appointments into the overflow buffer.
BITMAP Draws a bitmap.
CALENDAR Prints a month calendar.
CARDLIST Puts contacts into the overflow buffer.
EVENTS Puts events into the overflow buffer.
LINE Draws a line.
MONTH Prints a user's appointments for a month.
OVERFLOW Prints the contents of the overflow buffer.
RECTANGLE Draws a shaded or unshaded rectangle.
SCHEDULE Prints a user's appointments in a graphical frame.
TASKS Puts tasks into the overflow buffer.
TASKLIST Puts tasks in a form of a list into the overflow buffer.
TEXT Prints the text.
TIMEFRAME Prints a time frame.
A detailed description of how to specify the following properties appears later in this section.

Property Description
DATEFMT Specifies a format for printing dates.
DELTAYMD Changes the default printing date for the object.
OPTIONS Lists the object-specific options.
OVERFLOW Specifies an overflow buffer for use by the object.
RANGE Specifies a time range for the object.
STYLE Lists the fonts used by the object.
TIMEFMT Specifies a format for printing times.
VALUE Specifies a value for a text or bitmap object.

The following table indicates which properties are available for each object. An 'R' means that the property is required for the object, an 'O' means that the property is optional, and a blank space means that the property is not valid for the object.

Object DATEFMT DELTAYMD OPTIONS OVERFLOW RANGE STYLE TIMEFMT VALUE
APPTS O O R O O R O  
BITMAP               R
CALENDAR   O       R    
CARDLIST     O O   R    
EVENTS O O O O O R    
LINE                
MONTH   O   O O R O  
OVERFLOW     R O   R    
RECTANGLE     O          
SCHEDULE   O R O O R O  
TASKS     R O   R    
TASKLIST     R O   R    
TEXT O O O     R O R
TIMEFRAME     R   O R    

An object is defined in a print view by the following line:

OBJECT {reserved},{object name},{left},{top},{right},{bottom}
where
{reserved}
Is reserved for future versions of Schedule+ and should be left blank.
{object name}
Specifies the name of the object being defined.
{left}, {right}, {top}, and {bottom}
Specify the printable area for the object in metapage units.

Properties associated with the object follow the object line. Indenting the lines that specify properties makes the .PRT file more readable.

Objects

This section provides a detailed description of the objects. The supported properties are shown after each object. However, only those properties whose parameters are object-dependent are described.

APPTS

The APPTS object puts the appointments that are in the date and time range directly into the overflow buffer. This feature allows the .PRT file designer to create layouts in which the appointments flow through areas of the page. This is accomplished by printing the overflow buffer using the OVERFLOW object.

This object requires a STYLE property that has the following parameters.

Parameter Description
< style1 > Used for the appointment text.
< style2 > Used for the time.
< style3 > Used for the header text.
The OPTIONS property, if present, requires the following parameters.

Parameter Description
LOCATION | NONE Shows the appointment location.
DAY | WEEK | NONE Inserts page breaks into the overflow buffer after every day or after the end of a week. If the overflow buffer is printed, the page break is used if possible.
0 | 1 When set to 1, the appointments put in the overflow buffer are for a single day rather than the entire range. A value of 0 specifies the entire range.
< integer > Uses a number greater than zero to force a heading to be put in the overflow buffer before any overflow appointments.The heading text is Other Appointments. The value of this number specifies the thickness of the line preceding the text. If the overflow buffer already contains text, the heading is omitted.This option makes the Daily Dynamic view possible.
0 | 1 When set to 1, inserts a date header for each day.

BITMAP

The BITMAP object inserts a graphical object on the page. This object is stretched to fit in the defining rectangle.

The only property is VALUE, which is a string that specifies the file (a device-independent bitmap) from which to load the bitmap.

CALENDAR

The CALENDAR object prints a small calendar for the print date. The calendar automatically scales to fit in the defining rectangle and produces an error if there is not enough room in the rectangle. The calendar does not have a monthly heading, but you can add one separately as a TEXT object.

This object requires a STYLE property with the following parameter.

Parameter Description
< style > Used for the calendar text.
The OPTIONS property, if present, requires the following parameters.

Parameter Meaning
0 Never highlight the current date.
1 Highlight today's date only.
2 Highlight the current date.

CARDLIST

The CARDLIST object puts a list of contacts into the overflow buffer.

This object requires a STYLE property that has the following parameters.

Parameter Description
< style1 > Used for the text.
< style2 > Used for the heading text.
< style3 > Used for the outline text.
The OPTIONS property, if present, requires the following parameters.

Parameter Description
BREAK | NONE Inserts a page break after each item.
NOHEADER | NONE Suppresses the name of the column preceding each value, such as First Name, Last Name, and so on.

EVENTS

The EVENTS object puts a list of events into the overflow buffer.

This object requires a STYLE property that has the following parameters.

Parameter Description
< style1 > Used for the event text.
< style2 > Used for the date.

The OPTIONS property, if present, requires the following parameters.
Parameter Description
< integer > Uses a number greater than zero to force a heading to be put in the overflow buffer before any overflow events.
The heading text is Other Events. The value of this number specifies the thickness of the line preceding the text. If the overflow buffer already contains text, the heading is omitted.
This option makes the Daily Dynamic view possible.
0 | 1 When set to 1, the events put in the overflow buffer are for a single day rather than the entire range.

LINE

The LINE object places on the page a one-pixel-wide line that stretches along the diagonal of the rectangle.

MONTH

The MONTH object prints an entire monthly calendar in the rectangle, and fills in each day with its appointments. Each appointment occupies two lines: the first line has the start and end times, and the second line has as much appointment text as fits. No location information is printed.

This object always prints the month containing the current print date. For example, if the print date is 7/14/90, it prints all of July 1990. This object requires a STYLE property that has the following parameters.

Parameter Description
< style1 > Used for the appointment text.
< style2 > Used for the time.
< style3 > Used for the headers.
< style4 > Used for overflow items.

OVERFLOW

The OVERFLOW object prints all of the items in the overflow buffer created by objects on the current page. There may also be overflow from previous pages if it has not been explicitly deleted. If an overflow property is specified, this object prints the items in that overflow. You can also specify the space requirements for the overflow buffer objects.

The OPTIONS property, if present, requires the following parameters.

Parameter Description
FULL | MINIMAL When set to FULL, prints the full text of the items. This option should be used in conjunction with repeating pages because long items can overflow a single page. When set to MINIMAL, specifies that appointments and tasks occupy a minimal amount of space, usually two lines per appointment and one line per task.This option prints ellipses () at the end of the line.
< integer > A number that specifies how much to shift the text. You can use this option to put both header text and task horizontal lines into the overflow buffer and then shift the text. The overflow object can distinguish between text and non-text items.
CLEAR Specifies that the overflow buffer should throw away any previously collected objects when moving to a new page.If this option is not set, any unprinted items in the overflow buffer goes to the next page.
CONSUME Specifies that the overflow buffer should discard any unprinted objects left after it prints all the objects that it can print.This option is useful when there are multiple unrelated overflow buffers on a single page.If this option is not set, any unprinted items in the overflow buffer go to the next page.

The STYLE property is optional for this object. If included, it is used to print the string "More Items..." in any case where the OVERFLOW object is unable to print all the overflow buffers within the given rectangle. The STYLE property should only be specified when the OPTIONS property is set to MINIMAL

RECTANGLE

The RECTANGLE object draws a rectangle on the page that fills the specified coordinates.

The OPTIONS property, if present, requires the following parameter.

Parameter Description
FRAME | GRAY | BLACK FRAME draws a thin black line around the border of the rectangle, GRAY draws a shaded rectangle, and BLACK draws a black rectangle on the page.

SCHEDULE

The SCHEDULE object prints a graphical view of a day's appointments, similar to what is shown in the appointment book. It does not place a list of times down the side you can do that by using a TIMEFRAME object.

This object requires a STYLE property that has the following parameters.

Parameter Description
< style1 > Used for the appointment text.
< style2 > Used for the time.
< style3 > Used for the header text.
The OPTIONS property, if present, requires the following parameters.

Parameter Description
< integer > Specifies how many appointments can overlap each other in the output.
The visual appointment book has a limit of 6, but the printout can have up to 16.
Appointments omitted because of insufficient overlap are placed in the overflow buffer.
< integer > Specifies the number of time divisions per time slot, in minutes. For example, 30 specifies the default behavior.
LOCATION | NONE Shows the location for the appointment. Appointments that are put in the overflow buffer also show the location.
OVERFLOW | NONE Puts any unprinted entries into the overflow buffer.
< integer > Uses a number greater than zero to force a heading to be output to the overflow buffer before any overflow appointments.
The heading text is Other Appointments. The value of this number indicates the thickness of the line preceding the text. If the overflow buffer already contains text, the heading is omitted.
This option makes the Daily Dynamic view possible.

TASKS

The TASKS object puts into the overflow buffer all the text required to show the task list. Filtering and outlining options are taken from the task grid, if one is available. Otherwise, it defaults to outline by priority and filter to show all tasks.

This object requires a STYLE property that has the following parameters.

Parameter Description
< style1 > Used for task text.
< style2 > Used for tasks that are past due.
< style3 > Used for projects.
< style4 > Used for outline rows.
< style5 > Used for heading text.

The OPTIONS property, if present, requires the following parameters.

Parameter Description
MINIMAL | NONE Specifies that the minimum fields are visible. Otherwise, the standard set of fields is used.
< integer > Specifies whether to have a line across the outline levels.
This number indicates the level of outline at which we want the line to apprear - for example, 1 = the first outline level0 = disables the line
< integer > Uses a number greater than zero to force a heading to be put in the overflow buffer before any overflow tasks.
The heading text is Other Tasks. The value of this number indicates the thickness of the line preceding the heading text. If the overflow buffer already contains text, the heading is omitted.
This option makes the Daily Dynamic view possible.

TASKLIST

The TASKLIST object puts all the tasks into the overflow buffer as a list. Each task is in the form of a list, with each line specifying a separate column. The columns in the list are taken from the columns shown in the task grid, if available; otherwise a default is used.

This object requires a STYLE property that has the following parameters.

Parameter Description
< style1 > Used for the task list text.
< style2 > Used for the header text.
< style3 > Used for the outline row.

The OPTIONS property, if present, requires the following parameters.
Parameter Description
BREAK | NONE Inserts a page break after each item.
NOHEADER | NONE Suppresses the name of the column preceding each value, such as Text, Priority, and so on.

TEXT

The TEXT object allows the user to put a line of text on the page in a specified area. This object must always specify a VALUE property with a string that can contain one or more of the following metavariables.

Metavariable Description
&USERNAME Prints the user's name.
&CURDATE Prints the current date.
&CURTIME Prints the current time.
&PRINTDATE Prints the date for which the object is printed.
&PAGENUM Prints the page number.
&TIMEZONE Prints the current time zone.
&& Prints an ampersand (&).

The OPTIONS property, if present, requires the following parameters.
Parameter Description
HCENTER | LEFT | RIGHT Specifies the horizontal justification.
VCENTER | NONE Specifies the vertical justification.
ELLIPSIS | NONE Adds an ellipsis to the end of a string if the entire string does not fit within the described rectangle.
Multiline text prints if there is room in the rectangle, but using VCENTER on a multiline text block can produce unpredictable results.

TIMEFRAME

The TIMEFRAME object is closely related to the SCHEDULE object. Its only purpose is to create views which have several schedule objects on the same time frame next to each other.

This object requires a STYLE property with the following parameter.
Parameter Description
< style > Used for the time frame text.results.

The OPTIONS property, if present, requires the following parameter.
Parameter Description
< integer > Specifies the number of time divisions per time slot, in minutes.

Properties

This section describes the Schedule+ printing properties. Most properties are used in a consistent manner and always take the same parameters. However, in some cases the parameters are dependent on the object for which the property is being specified. Be careful to specify the correct number and types of parameters. Otherwise, an error message appears when the user tries to print.

DATEFMT

The DATEFMT property specifies the date format for any object that outputs a date. This property has the following format:

DATE  {string}

The string specifies one of the following formats in which to print the date.

Specifier Item Values
M Month 1-12
MM Month 01-12
MMM Month Jan-Dec
MMMM Month January-December
d Day 1-31
dd Day 01-31
ddd Day Mon-Sun
dddd Day Monday-Sunday
yy Year 00-99
yyyy Year 1900-2040

The following examples illustrate the different formats.
Format Translates to
d MMMM,yyyy 14 July, 1990
dddd, MMMM d, yyyy Thursday, July 14, 1990
dd-MM-yyyy 14-07-1990

DELTAYMD

For each page there is a specific date called the print date. For the DAILY type view, the print date is the date the user enters in the Print dialog box, and is incremented by one day for each page printed.
Most objects use the print date to output information. Using this property, the print date can be modified on a per-object basis. This property has the following format:

DELTAYMD {count},DAY|WEEK|MONTH|YEAR

This format changes the print date by the specified count (positive or negative). For example, the following syntax prints information for the day after the print date:

DELTAYMD	1, DAY

The following syntax prints information for the same day two weeks ago:

DELTAYMD	-2, WEEK

OPTIONS

The OPTIONS property allows each object to specify additional options. The required parameters for this property on each object are different.

For more information on these required parameters, see the applicable object under Print Objects and Properties.

OVERFLOW

The OVERFLOW property allows you to specify a named overflow buffer. Normally, overflow buffers are unnamed - that is, the name is a null string (""). However, objects can put text into explicit overflow buffers by specifying this property. The only argument is a quoted string specifying the name of the buffer, which should be less than 32 characters.

OVERFLOW {string}

RANGE

You can use the RANGE property to specify a time range for some objects. For example, a SCHEDULE object must always have a time range that specifies the times between which appointments are printed. An APPTS object can also have a time range, but it might be one that specifies appointments before a certain time.

The range for which a set of a appointments prints can be changed by using the RANGE command, which has the following format:

RANGE	BEFORE,{time},AND|OR,AFTER,{time}

Times are specified in 24-hour format, with a colon (:) as the separator. The AND/OR specifier allows the range to be AFTER time x AND before time y for an inclusive range, or BEFORE time y OR AFTER time x for a fragmented range.
In addition to specifying a time, you can also use the STARTTIME or ENDTIME parameter to specify the user's preferred start-of-work-day and end-of-work-day. The following syntax prints all the appointments outside of the start or end time:

RANGE	BEFORE,STARTTIME,OR,AFTER,ENDTIME

STYLE

Most objects print some text and therefore require a font specification. The font specification is defined in terms of a style. Styles are defined in the page format files in terms of a font name, family, point size, and so on. This is because the physical page size changes depending on the page format selected by the user, and fonts also need to change.

The font specification has the following format:

STYLES	{style1}, {style2}, ... ,{styleN}

The objects for which fonts are specified use the style list in different ways. For example, the TEXT object requires only a single style that specifies the font in which to print the text. However, the TASK object requires three styles specified. The required parameters for this property on each object are different. For more information on these required parameters, see the applicable object under Print Objects and Properties.

TIMEFMT

The TIMEFMT property specifies a format for printing the time. A separator string can also be defined to separate the time from any following text, such as appointment text. The format for this property is:

TIME {number}, {separator string}

The different time formats are specified by consecutive integers starting at 0. The integers specifying a time format are as follows.

Integer Value
0 (default) Standard (3:45 P.M. or 15:45 hrs )This is the time format specified in the Windows Control Panel.
1 Standard No Trailer (3:45 or 15:45)
This format also uses the Windows Control Panel, but does not apply the trailers.
2 Modified Standard (Vanishing trailer)
In this format, the object keeps track of the times it has already printed. It prints a trailer only for the first A.M. and first P.M. appointments it prints in 12-hour mode, or for the first appointment only in 24-hour mode.
For example, in a list of appointments, if you have appointments at 8 A.M., 9 A.M., 10 A.M., 11 A.M., 12 P.M. and 1 P.M., the times are printed as: 8 A.M., 9, 10, 11, 12 P.M., and 1.
3 Hour Only (3 or 15 )
This format always prints the number associated with the hour (3:45 appears as 3).
4 Hour only when minutes != 0 ( 3:45 or 15:45)
This format prints the hour only when the minutes are zero, and the full time otherwise (3:45 appears as 3:45, but 4:00 appears as 4).

Formats 3 and 4 are space savers. If necessary, you can limit the amount of space taken up by the time to leave more space for text.

VALUE

Some objects have a basic value that is specified using the VALUE property. For example, a text object has a string as its value. For the text object, the property is specified as:
VALUE "This is a string to be printed."

Paper Format Description

This section describes the paper format description file format. Each paper format is described by a text file that is parsed during run time to handle features such as number of virtual pages on a physical page, their placement on the physical page, and so on. This is a flexible mechanism that allows you to describe any available paper format.

Comments

Comment lines are any lines that start with a semicolon (;). Tabs, spaces, and new lines are all considered to be white space.

Header

The header describes the basic page format. The following lines must be specified in the order shown, for example:

FORMAT "Avery 41-357", 750, 1000
MARGINS 1, 0, 5, 0, 5, 0, 5, 0, 5, MIRROR
FONTSIZE 0
HINTS 1
PAGESIZE 325, 675

FORMAT

The FORMAT line specifies the name of the page format in quotes, followed by the size in logical units of the physical page. The size of the physical page is the size within the margins. The logical units can be arbitrary integers. However, to avoid overflow, it is recommended that you not use large numbers.

An orientation is associated with the physical page size. This orientation describes the primitive page format orientation. The default is PORTRAIT. It can be changed to landscape by appending the keyword LANDSCAPE after the physical page size, separated by a comma. The primitive page format orientation should not be confused with the user-specified orientation, which is usually specified in the Print dialog box.

MARGINS

The MARGINS line specifies the default margins. The first number specifies the margin type, which is the same as the MTYP in the DEVMODE structure. The example in the Header section shows that 1 represents one inch. The next eight numbers are the actual margins in the following order: top, left, right, bottom.

Each margin is represented by a pair of numbers. The first number is the integer part and the second number is the fractional part. In the example above, all the margins are 0.5 inches. You can specify the optional MIRROR keyword after the margins, separated by a comma. This keyword indicates that the page format must have mirrored margins. In this case, the user- specified mirror margins setting is ignored.

FONTSIZE

The FONTSIZE line consists of a single number that determines the preferred font size for the actual view. The FONTSIZE line can have one of the following values, which you can override in the Print dialog box.

Value Description
0 Small
1 Medium
2 Large

See the example in the Header section for the correct syntax.

HINTS

The HINTS line consists of a single number that determines the preferred duplex printing mode. The HINTS line can have one of the following values, which you cannot override in the Print dialog box.

Value Description
0 No preference
1 Long side duplex
2 Short side duplex

The HINTS line should be set to 0 for formats that have only a single virtual page, 2 for formats specified in LANDSCAPE mode, and 1 for all other formats.
See the example in the Header section for the correct syntax.

PAGESIZE

The PAGESIZE line specifies the size in logical units of the virtual page. The paper format might require multiple virtual pages on a single physical page, but they must all be the same size.
See the example in the Header section for the correct syntax.

Style Definitions

The style definitions follow the header. Style definitions are used by print layouts and are unique to page formats. The page format determines the required font size.

Note A page format must include all of the styles that a view requires; otherwise the view will not print onto that page format. Therefore, it is important to define a large set of styles. See the list of recommended formats later in this section.

The style definitions start with the keyword STYLE, and are followed by specifications for each style. They look like this:

STYLE {style name}, ["{friendly name}"], "{font name}", SWISS | ROMAN | MODERN | DECORATIVE | 
DONTCARE, {point-size-small}, {point-size-medium}, {point-size-large} [, BOLD | ITALIC | STRIKEOUT]

Point sizes for small, medium, and large must be specified to support the user interface, which can prompt for either the small font set, medium font set, or large font set. As a guideline, only styles that are used by appointment or task text should have different sizes for small, medium, and large. Style names should not be the same as other keywords.
The friendly name is a name that describes the style. For Schedule+ this entry should be Null.
The style specifications are repeated as many times as necessary. The keyword STYLE does not need to be repeated.

Page Descriptions

Page descriptions, each of which describes a virtual page, follow the style definitions. A maximum of four virtual pages can be specified for a single side of the physical page. Most complex page formats must have virtual pages explicitly defined for duplex printing.

The page order, the page location, or the number of pages can change on the duplex side. If the duplex side needs to be described differently, a maximum of eight virtual pages can be described. For page order, you can think of the physical pages as moving through the print engine in a given order depending on the print view, the print range, and the specified Include Blank Pages flag. For example, printing the daily view for four days normally moves four pages, ordered 1, 2, 3, and 4, through the print engine. For a given paper format, the page description is flexible enough to print pages 2 and 3 on the first side of the page, and 1 and 4 on the duplex side of the page.

Each page description has the following format:

PAGE 300, 500
PAGEINFO 1, 1, 0
INVERT 0, 0

The following example describes a number of different formats. For a normal page, it is only necessary to describe a single page, as follows:

PAGE 0, 0
PAGEINFO 1, 1, 0
INVERT 0, 0

Note It is not necessary to explicitly define the page in duplex mode.

PAGE

The PAGE line describes the location of the virtual page within the logical page. The examples in the Page Descriptions section show that the page is located at the x, y coordinate 300, 500.

PAGEINFO

The PAGEINFO line specifies information required to place the page on the correct side. The examples in the Page Descriptions section show that the first number (1) is the page order number for a simplex page, the second number (1) is the page order number for a duplex page, and the third number (0) indicates to which side (0 = first side, 1 = second side) this page description applies.

If a page is intended to be for the second side in duplex mode, then the first number must be zero. See INVERT for more information on pages.

INVERT

The INVERT line determines whether to invert a given page and can have one of the following values.

Value Description
0 Normal
1 Inverted

The examples in the Page Descriptions section show that the first number is for the page in simplex mode and the second number is for the page in duplex mode.