Return to '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.
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.
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 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}
{view type}
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.
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.
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. |
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 |
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.
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.
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. |
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. |
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.
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. |
Parameter | Meaning |
---|---|
0 | Never highlight the current date. |
1 | Highlight today's date only. |
2 | Highlight the current date. |
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. |
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. |
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. |
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. |
The LINE object places on the page a one-pixel-wide line that stretches along the diagonal of the rectangle.
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. |
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
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. |
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. |
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. |
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. |
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. |
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. |
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 (&). |
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. |
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. |
Parameter | Description |
---|---|
< integer > | Specifies the number of time divisions per time slot, in minutes. |
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.
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 |
Format | Translates to |
---|---|
d MMMM,yyyy | 14 July, 1990 |
dddd, MMMM d, yyyy | Thursday, July 14, 1990 |
dd-MM-yyyy | 14-07-1990 |
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
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.
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}
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
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.
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.
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."
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.
Comment lines are any lines that start with a semicolon (;). Tabs, spaces, and new lines are all considered to be white space.
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
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.
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.
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.
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.
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.
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, 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.
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.
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.
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.