PaperHandling.mesa
Copyright Ó Xerox Corporation 1983, 1984, 1985, 1986, 1987. All rights reserved.
Last edited by Jacks 24-Jun-85 14:53:43
Tim Diebert: March 31, 1987 8:43:20 am PST
DIRECTORY
PaperTypes USING [PaperSize],
PrintingTypes USING [Option];
PaperHandling: CEDAR DEFINITIONS = BEGIN
Engine independent paper handling:
PrintOrder: TYPE = {firstPageOutFirst, lastPageOutFirst};
Paper handling where the option differs for different types of print engines; the records have variants for each different type of engine:
Banner: TYPE = RECORD [
var: SELECT engine: PrintingTypes.Option FROM
raven, fx3500, bansheeDl, feps9700, fax295, d1 => [banner: BannerMode],
fax495 => [banner: Fax495BannerMode],
unknown => []
ENDCASE
];
BannerMode: TYPE = {oncePerDocument, oncePerJob, suppressed};
Fax495BannerMode: TYPE = RECORD[
local: BannerMode,
remote: BannerMode
];
The raven and the fax devices are the only engines that need the user to set the paper supply, so their paper size variants are defined here.
PaperSupply: TYPE = RECORD [
var: SELECT engine: PrintingTypes.Option FROM
raven => [paper: TwoPaperSizes], --size1 = bottom tray; size2 = top tray
fax495, fax295 => [paperWidth: CARDINAL --millimeters--],
unknown => [],
ENDCASE
];
TwoPaperSizes: TYPE = RECORD --applies only to engines with 2 paper sources
[size1, size2: PaperTypes.PaperSize];
ThreePaperSizes: TYPE = RECORD --applies only to engines with 3 paper sources
[size1, size2, size3: PaperTypes.PaperSize];
Registration: TYPE = RECORD [
var: SELECT engine: PrintingTypes.Option FROM
raven => [reg: RavenRegistration],
fx3500 => [reg: FX3500Registration],
d1 => [reg: D1Registration],
bansheeDl, fax495, fax295, feps9700, unknown => [],
ENDCASE
];
RavenRegistration: TYPE = RECORD [ --applies to raven engine
long: RavenRegLong,
short: RavenRegShort
];
FX3500Registration: TYPE = RECORD [ --applies to fx3500 engine
long: FX3500RegLong,
short: FX3500RegShort
];
D1Registration: TYPE = RECORD [ --applies to fx3500 engine
long: D1RegLong,
short: D1RegShort
];
RavenRegLong: TYPE = RegistrationTab [10..43];
RavenRegShort: TYPE = RegistrationTab [1..30];
FX3500RegLong, D1RegLong: TYPE = RegistrationTab [1..30];
FX3500RegShort, D1RegShort: TYPE = RegistrationTab [1..30];
RegistrationTab: TYPE = CARDINAL; --unit is registrationTabSize
registrationTabSize: CARDINAL = 6; -- Dictated by Alignment Test Pattern (unit: 6 pixels)
Paper handling that only applies to certain print engines:
PaperFeed: TYPE = --applies only to engines with top and bottom paper trays
{fromBottom, fromBottomBannerFromTop, fromBottomOrTop, fromTop, alternateBottomAndTop};
PaperStacking: TYPE = --applies only to engines equiped with stacking hardware
{aligned, documentOffset, jobOffset};
END. --PaperHandling
LOG
7-Nov-83 10:17:09 - Jacks - Created. Took code from PSState so that any module in Print Service may depend on this.
14-Dec-83 10:29:29 - Jacks - Added Banner and FaxBannerMode; removed PaperFeed variant record and renamed PaperFeedMode1 to PaperFeed adding 'alternateBottomAndTop'; moved PaperStacking and PaperFeed to engine dependent section; defined new variant for PaperSupply; redefined Registration (creating RavenRegistration and FX3500Registration) and moved it to variant rec section.
19-Sep-84 13:29:24 - Jacks - Added fax295, banshee and remote9700 variants; renamed PaperSupplyMode1 to TwoPaperSizes; renamed FaxBannerMode to Fax495BannerMode.
24-Jun-85 14:53:43 - Jacks - Added d1 variants; added ThreePaperSizes (for XSIS ravens); added registrationTabSize.