Class: TPageImpositionSequencer

Declaration: PageCompositor.h

Taxonomy Categories:

Member Functions:


Interface Category:

API.

Inherits From:

MCollectible

Inherited By:

TSample8PageImpositionSequencer

Purpose:

This is one of a number of possible companion classes to the TPageImpositor class that simply specifies all the metrics for page placement in an imposition. It gives the number of pages (page frequency) on a sheet, the total number of pages to a sheet side, whether or not the imposition is printed on both sides of a sheet, the number of sheets in a section, the total number of sections, the page number required for each piece of the imposition, which way to orient the impositions, and how much creep to add to the positioning of the imposition. Sections (signatures or sheaves) are collections of pages placed together like sections of a newspaper. The terms section, signature, or sheave are often used interchangeably; whereas in the more formal sense, section is any collection of folded sheets bound together, signature is all the pages of a publication printed on one folded sheet, and sheave is rather colloquial, referring to any stack of sheets. Imposition is the process of placing pages on sheets of paper for later binding so that the pages are all in proper order and orientation. TPageImpositionSequencer is a stateless class that returns information about a particular imposition method. Except for the number of pages in a sheave or section, an imposition sequencer cannot be altered; to define new behavior, a new sequencer must be derived from this abstract base class. An imposition sequencer defines the number of pages on a sheet, whether or not the sheet is printed on both sides, and the number of sheets in a sheave or section. Given a number in the imposition sequence, it returns the correct page number of the source document to be used for that position of the sequence. It also tells what rotation angle to use for that page in that position. A page is defined to be the page as it appears from a page iterator. A sheet is what one or more pages is printed on to generate the imposition.

Instantiation:

Always allocate on the heap. Because it is adopted by its target iterator, allocating it on the stack isn't too useful.

Deriving Classes:

This is an abstract base class for bearing the metric information needed for imposition printing. Anyone designing and implementing a page impositor of some sort should first design a TPageImpositionSequencer to produce the desired imposition. Override all pure virtual functions. The metrics for the imposition sequence can be calculated algorithmically or generated from tables.

Concurrency:

Not multithread safe.

Resource Use:

No special requirements.

Member Function: TPageImpositionSequencer::TPageImpositionSequencer

  1. TPageImpositionSequencer (const TPageImpositionSequencer &)
  2. TPageImpositionSequencer ()

Interface Category:

API.

Purpose:

  1. Copy constructor.
  2. Default constructor.

Calling Context:

  1. Called to copy an object.
  2. Called by the stream-in operators and derived classes.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::~TPageImpositionSequencer

virtual ~ TPageImpositionSequencer ()

Interface Category:

API.

Purpose:

Destructor.

Calling Context:

Called to destroy an object.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::GetPageFrequency

virtual TULongPair GetPageFrequency () const

Interface Category:

API.

Purpose:

A metric global to the entire imposition. Returns the expected page frequency of the page mapping to be used in the imposition. This is expected to remain constant throughout the imposition.

Calling Context:

Called directly to get the page frequency distribution. Also called by a page impositor containing this object.

Parameters:

Return Value:

Returns the page frequency for the imposition.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::NumberOfPagesPerSheetSide

virtual unsigned long NumberOfPagesPerSheetSide () const

Interface Category:

API.

Purpose:

A global metric defining the number of source pages that will be placed on a single output sheet.

Calling Context:

Called directly to obtain the number of pages on a side. Also called by a page impositor containing this object.

Parameters:

Return Value:

Returns the number of source pages on a destination sheet.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::DoubleSided

virtual bool DoubleSided () const

Interface Category:

API.

Purpose:

A global metric defining whether the sheet can be printed on both sides.

Calling Context:

Called directly to print double sided or not. Also called by a page impositor containing this object.

Parameters:

Return Value:

Returns true if the destination sheet should be printed double sided.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::SetNumberOfSheetsPerSection

virtual void SetNumberOfSheetsPerSection (unsigned long)

Interface Category:

API.

Purpose:

This is the only set function in the page imposition sequencer but it should only be changed between impositions, not during. It sets the number of sheets to be placed together in a section before binding and thus helps determine in what order the source pages are required.

Calling Context:

Called directly to change the number of sheets per section. Also called by any page impositor containing this object.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::NumberOfSheetsPerSection

virtual unsigned long NumberOfSheetsPerSection () const

Interface Category:

API.

Purpose:

A global metric that specifies the number of sheets to be placed together in a section before binding and thus helps determine in what order the source pages are required.

Calling Context:

Called directly to obtain the number of sheets per section. Also called by any page impositor object containing this object.

Parameters:

Return Value:

Returns the number of sheets per section.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::TotalNumberOfPagesPerSection

virtual unsigned long TotalNumberOfPagesPerSection () const

Interface Category:

API.

Purpose:

Obtains the total number of source pages that are being printed in a section.

Calling Context:

Called directly to obtain the total number of pages in a section. Also called by any page impositor object containing this object.

Parameters:

Return Value:

Returns the total number of source pages in a section.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::SourcePageNumber

virtual unsigned long SourcePageNumber (unsigned long) const

Interface Category:

API.

Purpose:

This is a sequence metric and changes for each step in the imposition sequence. For a given sequence number (as required by the imposition mapping), this function returns the proper source page number to ensure that output pages are in the proper order when the imposition sheet is folded and cut.

Calling Context:

Called directly to find the source page number required for this step in the imposition sequence. Also called by any page impositor object containing this object.

Parameters:

Return Value:

Returns the source page number required for this step.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::Rotation

virtual GDegrees Rotation (unsigned long) const

Interface Category:

API.

Purpose:

This is a sequence metric. For the step sequence number given in the argument, the rotation needed to properly orient that page is returned.

Calling Context:

Called directly to determine the proper orientation for the page. Also called by any page impositor object containing this object.

Parameters:

Return Value:

Returns the amount of rotation required to achieve proper orientation of the source page.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::Sequence

virtual unsigned long Sequence (GDegrees & rotation, unsigned long) const

Interface Category:

API.

Purpose:

A sequence metric that returns both the source page number and the proper orientation for that page.

Calling Context:

Called directly to get both the orientation and the page number. Also called by any page impositor object containing this object.

Parameters:

Return Value:

Returns the page number for the required source page.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::Creep

virtual TGPoint Creep (unsigned long) const

Interface Category:

API.

Purpose:

This is a sequence metric. For each step in the sequence, this function defines the adjustment in page position needed to prevent visual placement disparity of the printed pages as they appear on the output sheets when they are folded. Without this adjustment, pages appear to shift, due to the thickness of the paper, when the output sheets are folded.

Calling Context:

Called directly to adjust the position of the page to compensate for folded page creep. Also called by any page impositor object containing this object.

Parameters:

Return Value:

Returns a point to be used as the required adjustment.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TPageImpositionSequencer::operator=

TPageImpositionSequencer & operator =(const TPageImpositionSequencer &)

Interface Category:

API.

Purpose:

Assignment operator.

Calling Context:

Called when an object is assigned to another compatible object.

Parameters:

Return Value:

A reference to the left-hand side object.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.