Logical Page Eject Processing
A logical page eject can be caused by the following:
- Any Record ID that references a layout format with a specification of New Page.
- A relative baseline overflow (a Body or Group Header layout format that when processed against the current input record causes an overflow of the current print position into the bottom margin). If processing of the input record would cause a relative baseline overflow, the page eject is processed before any part of the input record is printed.
- A Data Map change or Medium Map change, or, in Mixed Mode, a Begin Document or Begin Page structured field.
Page Header, Page Trailer, and Group Header Data Records used with page ejects are activated in the following manner:
- If a Data Record specifies the Record ID of a PAGEDEF Page Header layout format, that Data Record is not printed on receipt but is saved as the active page header record (for that PAGEFORMAT). It is saved for the duration of the job or until a subsequent Data Record specifies a Page Header (for that PAGEFORMAT).
- If a Data Record specifies the Record ID of aPAGEDEF Page Trailer layout format, that Data Record is not printed on receipt but is saved as the active page trailer record (for that PAGEFORMAT). It is saved for the duration of the job or until a subsequent Data Record specifies a Page Trailer (for that PAGEFORMAT).
- If a Data Record specifies the Record ID of a PAGEDEF Group Header layout format, that Data Record is not printed on receipt but is saved as the active group header record. The PAGEDEF Group Header is printed when the next Data Record specifies a Body layout with a GROUP specification and on subsequent page ejects. The Group Header and its associated Data Record is kept active until a subsequent Data Record specifies a Body layout with a NOGROUP specification.
When a logical page eject occurs, the following actions are taken in the following order:
- For the current page:
- If this is the start of a line data document (no previous page ejects, group header records or body records have been processed with this PAGEDEF), current page items 1 through 3 are skipped.
- If an active page header record was in effect prior to this layout format, that record is presented on the current page using the matching layout. Otherwise, if the active PAGEFORMAT contains a default Page Header layout, that layout is used to present a page header.
- If an active page trailer record was in effect prior to this layout format, that record is presented on the current page using the matching layout. Otherwise, if the active PAGEFORMAT contains a default Page Trailer layout, that layout is used to present a page trailer.
- For the new page:
- The current print position is moved to the top of the new page and offset from the top of the new page by the top margin. If the PAGEFORMAT is changed, the new Data Map's Margin Definition and layouts are used.
- If an active group header record exists for this PAGEFORMAT, that record is presented on the new page using the matching Record layout. Note that the group header is not actually printed and causes no action until a Body layout with Group Indicator is processed for the page. If the layout specifies relative positioning, the baseline position of the layout is offset from the top of the page by the top margin plus one line.
- If the page eject was caused by a Body layout, the input record causing the page eject is presented on the new page using the layout referenced by the record. If the layout specifies relative positioning and is preceded on the page by a group header, the baseline position is relative to the last printed line of the group header. If the layout specifies relative positioning and is not preceded on the page by a group header, the baseline position of the layout is offset from the top of the page by the top margin plus one line.
Note: The actual locations of
top of pageand
top marginare affected by the text orientation. See Using Margins in Record Formatting for additional information.