WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Operating system with object-oriented printing interface    
United States Patent5495561   
Link to this pagehttp://www.wikipatents.com/5495561.html
Inventor(s)Holt; L. Bayles (San Jose, CA)
AbstractAn object-oriented printing interface includes document grouping or folio objects which, once created, provide complete and flexible printing capability that is transparent to an application program. The printing interface objects include objects that are capable of automatically paginating printable information in several different formats, providing page composition including the addition of margins, footnotes, page numbers and registration marks, n-up printing and page imposition and combining text material with graphic material.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5495561
Operating system with object-oriented printing interface - US Patent 5495561 Drawing
Operating system with object-oriented printing interface
Inventor     Holt; L. Bayles (San Jose, CA)
Owner/Assignee     Taligent, Inc. (Cupertino, CA)
Patent assignment
All assignments
Publication Date     February 27, 1996
Application Number     08/080,245
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 21, 1993
US Classification     358/1.15 358/1.13
Int'l Classification     G06K 015/00
Examiner     Evans; Arthur G.
Assistant Examiner    
Attorney/Law Firm     Stephens; Keith
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/117 395/114 395/115 395/112 395/133 395/138 395/275 395/325
Patent Tags     operating object-oriented printing interface
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5353388
Motoyama
358/1.18
Oct,1994

[0 after 0 votes]
5337258
Dennis
714/47
Aug,1994

[0 after 0 votes]
5204960
Smith
717/145
Apr,1993

[0 after 0 votes]
5193190
Janczyn

Mar,1993

[0 after 0 votes]
5193191
McKeeman

Mar,1993

[0 after 0 votes]
5187789
O'Hair
707/4
Feb,1993

[0 after 0 votes]
5175856
Van Dyke

Dec,1992

[0 after 0 votes]
5170465
McKeeman
717/145
Dec,1992

[0 after 0 votes]
5140671
Hayes
706/60
Aug,1992

[0 after 0 votes]
5129086
Coyle, Jr.
719/328
Jul,1992

[0 after 0 votes]
5124989
Padawer
714/38
Jun,1992

[0 after 0 votes]
4953084
Meloy
717/131
Aug,1990

[0 after 0 votes]
4943932
Lark
706/60
Jul,1990

[0 after 0 votes]
4910663
Bailey
714/34
Mar,1990

[0 after 0 votes]
4809170
Leblang
717/122
Feb,1989

[0 after 0 votes]
4589068
Heinen, Jr.
717/127
May,1986

[0 after 0 votes]
5201050
McKeeman
717/111
Dec,1969

[0 after 0 votes]
5182806
McKeeman
717/145
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


Having thus described our invention, what we claim as new, and desire to secure by Letters Patent is:

1. A computer system for controlling a print device to generate a printed output having a format, the computer system comprising:

(a) an application program for generating printable information;

(b) storage apparatus;

(c) a processor for storing the printable information in the storage apparatus and retrieving the printable information from the storage apparatus;

(d) an operating system stored in the storage apparatus and cooperating with the processor for controlling the print device; and

(e) a first printing interface object created by the application program from commands and functions stored in the operating system, the printing interface object controlling the processor to manipulate the printable information received from the application program to change the format of the printed output.

2. A computer system as recited in claim 1 wherein the first printing interface object controls the processor to manipulate the printable information received from the application program to generate printable information with a first format and the computer system further comprises a second printing interface for controlling the processor to manipulate the printable information received from the application program to generate printable information with a second format.

3. A computer system as recited in claim 2 wherein the first printing interface object controls the processor to paginate the printable information received from the application program to produce paginated printable information.

4. A computer system as recited in claim 3 wherein the second printing interface object controls the processor to produce an n-up printing arrangement from the paginated printable information received from the first printing interface object.

5. A computer system as recited in claim 3 wherein the second printing interface object controls the processor to produce an imposition printing arrangement from the paginated printable information received from the first printing interface object.

6. A computer system as recited in claim 3 wherein the paginated printable information has an order and the first printing interface object comprises means for creating a page iterator object which can rearrange the order of the paginated printable information.

7. A computer system as recited in claim 2, further comprising a third printing interface object which is responsive to the printable information with a first format and to the printable information with a second format for combining the printable information with the first format and the printable information with the second format into a single document.

8. A computer system as recited in claim 2, wherein the first printing interface object is derived from a polymorphic paginator object which is responsive to a predetermined set of parameters received from the application program for paginating the printable information in a format selected from a predetermined plurality of formats.

9. A computer system as recited in claim 8, wherein pagination is conducted in a predetermined order and the polymorphic paginator object comprises means for creating a paginator iterator which is responsive to the printable information for changing the predetermined pagination order.

10. A computer system as recited in claim 9, wherein the paginator iterator comprises means for creating a scan order object which determines a raster scan order for changing the predetermined pagination order.

11. A computer system as recited in claim 9, wherein the paginated printable information has an order and the first printing interface object comprises means for creating a page iterator object which can rearrange the order of the paginated printable information and wherein the page iterator object is derived from the paginator iterator object.

12. A computer system for controlling a print device to generate a printed output having a format, comprising:

(a) an application program for generating printable information;

(b) storage apparatus;

(c) a processor for storing the printable information in the storage apparatus and retrieving the printable information from the storage apparatus;

(d) interface apparatus connected to the print device and responsive to the printable information for controlling the print device to print;

(e) an operating system stored in the storage apparatus and cooperating with the processor for transferring the printable information from the storage apparatus to the interface apparatus, said operating system comprising printing commands and functions; and

(f) a first printing interface object created by the application program from the printing commands and functions comprising the operating system, the printing interface object controlling the processor to manipulate the printable information retrieved from the storage apparatus before the printable information is provided to the interface apparatus in order to change the format of the printed output.

13. A computer system as recited in claim 12, wherein the first printing interface object controls the processor to retrieve the printable information from the storage apparatus in pieces of pre-determined size in order to produce paginated printable information.

14. A computer system as recited in claim 13, wherein the first printing interface object comprises means responsive to parameters received from the application program for determining the size of the pieces.

15. A computer system as recited in claim 14, wherein the parameters received from the application program comprise an overall size of the printable information and a total number of pieces.

16. A computer system as recited in claim 14, wherein the parameters received from the application program further comprise a width of gaps desired between pieces and a margin size.

17. A computer system as recited in claim 13, further comprising a second printing interface object responsive to paginated printable information received from the first printing interface object for controlling the processor to combine a predetermined number of pieces into a single document.

18. A computer system as recited in claim 17, wherein the second printing interface object comprises means for arranging the pieces in the document so that each piece has the same relative orientation with respect to the other pieces.

19. A computer system as recited in claim 17, wherein the second printing interface object comprises means for arranging the pieces in the document so that each piece has a different relative orientation with respect to the other pieces in order to allow the document to be cut and folded to produce a printed document.

20. A computer system as recited in claim 13, wherein the first printing interface object comprises means for creating a first page iterator object which can transfer the pieces between the storage apparatus and the interface apparatus in a first predetermined order.

21. A computer system as recited in claim 20, further comprising:

(a) a second printing interface object created by the application program from the printing commands and functions comprising the operating system, the printing interface object controlling the processor to manipulate the printable information retrieved from the storage apparatus before the printable information is provided to the interface apparatus in order to change the format of the printed output; and

(b) a third printing interface object which is responsive to first printable information produced by the first printing interface object and to second printable information produced by the second printing interface object for combining the first and second printable information into a single document.

22. A computer system as recited in claim 21, wherein the second printing interface object comprises means for creating a second page iterator object which can transfer the pieces between the storage apparatus and the interface apparatus in a second predetermined order and the third printing interface object comprises a queue object for temporarily storing the first and the second page iterators.

23. A computer system as recited in claim 20, wherein the pieces are retrieved from the storage apparatus in a predetermined order and the first printing interface object comprises means for creating a paginator iterator which is responsive to commands received from the application program for changing the predetermined retrieval order.

24. A computer system as recited in claim 23, wherein the paginator iterator comprises means for creating a scan order object which determines a raster scan order for changing the predetermined retrieval order.

25. A computer system as recited in claim 23, wherein the page iterator object is derived from the paginator iterator object so that the paginator iterator is automatically created when the page iterator object is created.

26. A method for controlling a print device by means of a computer system having an application program and an operating system in order to generate a printed output having a format, the method comprising the steps of:

(a) generating printable information at a predetermined location by means of the application program;

(b) creating a first printing interface object from commands and functions stored in the operating system;

(c) passing the predetermined location of the printable information to the first printing interface object;

(d) using the first printing interface object to manipulate the printable information to format the printable information in a first format; and

(e) forwarding the formatted printable information to the print device for printing.

27. A method as recited in claim 26, wherein step (d) comprises the step of (d1) paginating the printable information to produce paginated printable information.

28. A method as recited in claim 27, wherein step (d) comprises the step of (d2) producing an n-up printing arrangement from the paginated printable information.

29. A method as recited in claim 27, wherein step (d) comprises the step of (d3) producing an imposition printing arrangement from the paginated printable information.

30. A method as recited in claim 26, wherein step (b) comprises the step of (b1) creating a page iterator object which can rearrange the order of the paginated printable information; and step (d) comprises the step of (d4) using the page iterator object created in step (b1) to paginate the printable information in a predetermined order.

31. A method as recited in claim 26, further comprising the steps of:

(f) creating a second printing interface object from commands and functions stored in the operating system;

(g) passing the predetermined location of the printable information to the second printing interface object; and

(h) using the second printing interface object to manipulate the printable information to format the printable information in a second format.

32. A method as recited in claim 31, further comprising the steps of:

(i) creating a third printing interface object;

(j) providing the printable information with the first format to the third printing interface object;

(k) providing the printable information with the second format to the third printing interface object; and

(l) using the third printing interface object to combine the printable information with the first format and the printable information with the second format into a single document.

33. A method as recited in claim 26, wherein step (b), comprises the step of (b2) deriving the first printing interface object from a polymorphic paginator object which is responsive to a predetermined set of parameters received from the application program for paginating the printable information in a format selected from a predetermined plurality of formats.

34. A method as recited in claim 33, wherein step (b2), comprises the step of (b2a) creating a paginator iterator object for paginating the printable information in a predetermined pagination order.

35. A method as recited in claim 34, wherein step (b2) comprises the step of (b2b) creating a scan order object which determines a raster scan order for changing the predetermined pagination order.

36. A method as recited in claim 35, further comprising the step of (m) deriving a page iterator object which can rearrange the order of the paginated printable information from the paginator iterator object.

37. A method for generating a printing interface for an application program which cooperates with an operating system in order to manipulate printable information to generate printable information with a format, the method comprising the steps of:

(a) creating a first printing interface class including pagination commands and functions in the operating system;

(b) referencing the first printing interface class in the application program to create a first printing interface object derived from the first printing interface class; and

(c) creating an instance of the first printing interface object to manipulate the printable information to generate printable information formatted into a plurality of pages.

38. A method as recited in claim 37, wherein step (a) comprises the step of (a1) creating the first printing interface class as a polymorphic class which paginates the printable information in a manner determined by parameters received from the application program.

39. A method as recited in claim 37, wherein step (a) comprises the step of (a2) creating the first printing interface class which includes at least one function that creates a page iterator object which can sequence through the plurality of pages of the formatted printable information.

40. A method as recited in claim 39 wherein step (b) comprises the step of (b1) referencing the first printing interface class in the application program and providing predetermined parameters to create a first printing interface object derived from the first printing interface class which paginates the printable information in a predetermined manner.

41. A method as recited in claim 40, further comprising the steps of:

(d) creating a second printing interface class including a queue structure for storing page iterator objects and functions for manipulating the queue structure in the operating system;

(e) referencing the second printing interface class in the application program to create a second printing interface object derived from the second printing interface class; and

(f) creating an instance of the second printing interface object to further manipulate the formatted printable information generated in step (c).

42. A method as recited in claim 41, further comprising the steps of:

(g) creating a third printing interface class in the operating system, the third printing interface class including commands and functions for further manipulating the plurality of pages in the formatted printable information;

(h) referencing the third printing interface class in the application program to create a third printing interface object derived from the third printing interface class; and

(i) creating an instance of the third printing interface object to further manipulate the formatted printable information generated in step (f).

43. A method as recited in claim 42, wherein step (g) comprises the step of (g1) including commands and functions for creating an n-up print arrangement from the plurality of pages in the formatted printable information in the third printing interface class.

44. A method as recited in claim 43, wherein step (g1) comprises the step of (g1a) including a command for translating each of the plurality of pages in the formatted printable information to a predetermined position.

45. A method as recited in claim 42, wherein step (g) comprises the step of (g2) creating a third printing interface class in the operating system, the third printing interface class including commands and functions for creating an imposition print arrangement from the plurality of pages in the formatted printable information.

46. A method as recited in claim 44, wherein step (g2) comprises the steps of including a command for translating each of the plurality of pages in the formatted printable information to a predetermined position and a command for rotating each of the plurality of pages in the formatted printable information to a predetermined position.
 Description Submit all comments and votes
 


COPYRIGHT NOTIFICATION

Portions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office.

1. Field of the Invention

This invention generally relates to improvements in computer systems and, more particularly, to operating system software for printing graphics and textual documents.

2. Background of the Invention

One of the most important aspects of a modem computer system is the ability to generate a "hard" copy of textual information or graphics which can be manipulated by the computer, visually displayed and stored. In order to accomplish this task, a computer system generally includes a printing device which is electrically connected to the computer system and controlled by it in order to generate a permanent image on a selected medium. Examples of printing devices in common use are dot matrix, ink jet and laser printers which fix permanent images on paper under control of the computer. Although paper is the most common medium, other media are often used, such as photographic film.

In order to print a document which is displayed on the monitor or stored within the memory, several actions must take place. First, since the print medium generally has a fixed size, the printable information must be divided into pieces which are small enough to fit on the selected medium, a process which is called pagination. In addition, the information may need to be reformatted from the format in which it is either displayed or stored into a format which is suitable for controlling the printing device to actually perform the printing on the medium. The reformatting in this latter step may include the insertion of control commands into the printable information in order to control the printing device. These added commands may, for example, include such commands as carriage returns, line feeds, form feeds, spaces and font information, all of which format the printable information. The reformatting may also include a conversion step in which a graphical display is converted into the form used by the printing device.

The pagination and reformatting necessary to convert the printable information into a form which can be printed a given printing device is generally performed by software programs running within the computer system. Software programs operating on a computing system generally can be categorized into two broad classes: operating systems which are usually specific to a type of computer system and consist of a collection of a utility programs that enable the computer system to perform basic operations, such as storing and retrieving information on a peripheral disk memory, displaying information on an associated video display, performing rudimentary file operations including the creation, naming and renaming of files and, in some cases, performing diagnostic operations in order to discover or recover from malfunctions.

By itself, the operating system generally provides only very basic functions and must be accompanied by an "application" program. The application program interacts with the operating system to provide much higher level functionality and a direct interface with the user. During the interaction between the application program and the operating system, the application program typically makes use of operating system functions by sending a series of task commands to the operating system which then performs the requested tasks. For example, the application program may request that the operating systems store particular information on the computer disk memory or display information on the video display.

FIG. 1 is a schematic illustration of a typical computer system utilizing both an application program and an operating system. The computer system is schematically represented by dotted box 100, the application program is represented by box 102 and the operating system by box 106. The interaction between the application program 102 and the operating system 106 is illustrated schematically by arrow 104. This dual program system is used on many types of computers systems ranging from mainframes to personal computers.

The method for handling printing, however, varies from computer to computer, and, in this regard, FIG. 1 represents a prior art personal computer system. In order to provide printing functions, the application program 102 interacts (as shown schematically by arrow 108) with printer driver software 110. Printer driver software 110 is generally associated with an application program and reformats and converts the printable information as necessary. Since each printer has its own particular format and control command set, which must be embedded in the text properly to control the printer, the printer driver software 110 must be specifically designed to operate with one printer or one type of printer.

The printer driver software 110 produces a reformatted information stream containing the embedded commands as shown schematically as arrow 114. The converted information stream is, in turn, applied to a printer port 112 which contains circuitry that converts the incoming information stream into electrical signals. The signals are, in turn, sent over a cable 116 to the printer 118. Printer 118 usually contains a "imaging engine" which is a hardware device or a ROM-programmed computer which takes the incoming information stream and converts it into the electrical signals necessary to drive the actual printing elements. The result is a "hard copy" output on the selected medium.

While the configuration shown in FIG. 1 generally works in a satisfactory manner, it has several drawbacks. Since the printer driver software 110 is specific to each type of printer, a separate driver had to be provided for each printer type with which the application program is to operate. In the personal computer market, there are a large number of different printer types that are compatible with each type of computer and, therefore, as the number of printer types proliferated, so did the number of printer drivers which were required for each application program so that the program was compatible with most available printers. Therefore, application program developers had to provide larger and larger numbers of printer drivers with each application program, resulting in wasted time and effort and wasted disk space to hold the drivers, only one or two of which were of interest to any particular user. Unfortunately, if a user purchased an application program and it did not include a printer driver which could control the printer which the user owned, unpredictable operation occurred, resulting in program returns and user dissatisfaction.

In addition, it was also necessary for each application program to provide high level printing functions such a is pagination and page composition (including addition of margins, footnotes, figure numbers, etc.) if such functions were desired. Consequently, each application program developer had to spend time developing programs to implement common printing functions which programs were specific to each application program, thereby resulting in duplicated effort and wasted time.

In order to overcome the aforementioned difficulties, the prior art arrangement was modified as shown in FIG. 2. In this new arrangement, computer system 200 is still controlled by application program 202 which cooperates, as shown schematically by arrow 204, with operating system 206. However, in the system shown in FIG. 2 operating system 206 includes printer drivers 214. A separate printer driver must still be provided for each different type of printer, but the printer drivers are sold with, and part of, the operating system. Consequently, it is not necessary for each application program to have its own set of printer drivers. An application program, such as application program 202, communicates with the printer driver 214 by means of a standardized interface 210. Two common interfaces are called "grafports" or "device contexts". Illustratively, application program 202 provides information (shown schematically shown by arrow 208) in a standardized form to the grafport 210. The grafport 210, in turn, forwards information, as shown by arrow 212, to printer driver 214 which reformats and converts the information as previously described into the format required by the printer. The output of printer driver 214 is provided (illustratively shown as arrow 216) to printer port 218 where it is converted to electrical signals that are transmitted, via cable 220, to the printer 222.

The configuration shown in FIG. 2 has the advantage that the application program developer need not worry about the specific computer and printer combination on which the program will ultimately run in order to provide printing capabilities to the application program. However, it still suffers from the drawback that, if desired, high level printing capabilities such as pagination and page composition must still be designed into each application program, thereby duplicating program code and wasting programming resources.

Accordingly, it is an object of the present invention to provide a flexible, and largely autonomous, printing interface so that an application program can provide high level printing capabilities by means of a simple command structure without being concerned with actual implementation details.

It is another object of the present invention to provide a flexible printing interface which allows application program developers who need detailed control over the printing process to achieve this control by means of a full set of printing commands which are available, but need not be used, by each application program.

SUMMARY OF THE INVENTION

The foregoing problems are overcome and the foregoing object is achieved in an illustrative embodiment of the invention in which an object-oriented printing interface includes document grouping or folio objects which, once instantiated provide complete and flexible printing capability that is transparent to the application program. The printing interface objects include objects that are capable of automatically paginating printable information in several different manners, providing page composition including the addition of margins, footnotes, page numbers and registration marks and combining text material with graphic material.

The inventive object-oriented printing interface communicates with the remainder of the operating system by means of a standard interface such as a grafport and printer drivers are provided for each printer type within the operating system. Thus, an application not only need not worry about the particular printer/computer combination with which it is to operate, but also need not have a built in document formatting capability.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and further advantages of the invention may be better understood by referring to the following description in conjunction with the accompanying drawings, in which:

FIG. 1 is a schematic block diagram of a prior art computer system showing the relationship of the application program to the operating system and the printer driver.

FIG. 2 is a schematic block diagram of a modification of the prior art system shown in FIG. 1 to allow the application program to interface to a standard printing interface.

FIG. 3 is a block schematic diagram of a computer is system, for example, a personal computer system on which the inventive object-oriented printing interface operates.

FIG. 4 is a schematic block diagram of modified computer system in which the operating system includes an inventive object-oriented printing interface.

FIG. 5 is a block schematic diagram of the information paths and hardware by which printable information is channeled through intermediate storage to a print device.

FIG. 6 is a schematic diagram showing illustrative printing objects in the printing interface which can be referenced by the application program.

FIG. 7 is a simplified class hierarchy diagram illustrating the base, subclasses and associated classes involved in the construction of a filed page folio object.

FIG. 8 is a schematic view indicating how a layout of printable information called a "view" is broken into "page-sized" pieces by the inventive pagination object.

FIG. 9 is a schematic illustration of a grid system that can be superimposed over a view to facilitate scan order sequencing.

FIG. 10 is a collection of pages illustrating eight sample "raster" scan orderings.

FIG. 11 is an illustrative flowchart of a method by which a view is paginated into page size pieces in accordance with one pagination model used by the paginator object.

FIG. 12 is an illustrative flowchart of a method by which a view is paginated into page size pieces in accordance with a second pagination model used by the paginator object.

FIG. 13 is an illustrative flowchart of a method by which a view is paginated into page size pieces in accordance with a third pagination model used by the paginator object.

FIGS. 14A-14C are schematic diagrams of pages produced in accordance with each of the three paginator models used by the illustrative paginator object.

FIG. 15 is an illustrative flowchart of a method for seeking the next page in an illustrative scan order denoted as the "right down" scan order.

FIG. 16 is an illustrative flowchart of a method for seeking the next page in an illustrative scan order denoted as the "left up" scan order.

FIG. 17 is an illustrative flowchart of a printing routine used by a page iterator to select the first page in a preselected scan order for printing.

FIG. 18 is an illustrative flowchart of a printing routine used by a page iterator to select the next page in a preselected scan order for printing.

FIG. 19 is an illustrative flowchart of a routine used to print pages of a page folio object.

FIG. 20 is a simplified class hierarchy diagram illustrating the base, subclasses and associated classes involved in the construction of a compound page folio object.

FIG. 21 is an illustrative flowchart of a printing routine used by a compound page folio iterator to select the first page in a preselected scan order for printing.

FIG. 22 is an illustrative flowchart of a printing routine used by a compound page folio iterator to select the next page in a preselected scan order for printing.

FIG. 23 is a simplified class hierarchy diagram illustrating the base, subclasses and associated classes involved in the construction of a page