Set:
PUBLIC
PROCEDURE [job: BansheeEngine.JobHandle]
RETURNS [valid:
BOOLEAN] =
BEGIN
IF job.document = NIL OR job.document.pages = 0 OR job.copyCount = 0 THEN RETURN[FALSE];
IF job.banner # suppressed
AND job.document.pages = 1
THEN
BEGIN
sole page in job is banner page
job.banner ← suppressed;
job.copyCount ← 1;
job.firstPage ← job.lastPage ← 0;
END
ELSE
job.lastPage ← MIN[LONG[job.lastPage], job.document.pages - 1 - (IF job.banner # suppressed THEN 1 ELSE 0)];
IF job.firstPage > job.lastPage THEN RETURN[FALSE]; **removed to fix AR
set up globals (pertaining to all pages in job)
plateCount ← job.lastPage - job.firstPage + 1 + (IF job.banner # suppressed THEN 1 ELSE 0);
pageCount ←
SELECT job.banner
FROM
oncePerDocument, suppressed => job.copyCount * plateCount,
ENDCASE => 1 + job.copyCount * (plateCount - 1);
RETURN[TRUE];
END;