SWITCHABLE PAGE ORDER BOOKLET PRINTING USING PAGE ROTATION
FIELD OF THE INVENTION The present invention relates to computer printers and software thereof, and more particularly relates to ordering pages for booklet printing.
BACKGROUND AND SUMMARY OF THE INVENTION
In booklet printing, the booklet typically is printed with two side-by- side page images on each side of a sheet of paper. The printed sheets can then be stacked and folded along a central lateral fold between the side-by-side page images in the style of a folio or newspaper. If desired, the booklet can then be bound with staples, a ribbon or other binding along the folded edge.
When the page images are printed on the paper sheets, it is important to correctly place the page images on the sheets so that the page images are arranged in a correct order when the booklet is folded and bound. In accordance with a left- to-right page order convention for example, a first and last page of the booklet are printed on a front side of a first sheet of paper, while a second and penultimate page are printed on a back side of the first sheet. When folded, the booklet can be paged through in a left-to-right order from first to last page in the manner of a book or novel.
A problem arises that in different parts of the world left-to-right and right-to-left page order conventions are used. Each of these conventions requires a different placement of page images on the sheets in order to achieve the proper arrangement of the pages according to the respective convention in the folded booklet. Accordingly, it has not been possible to use a page placement routine for left-to-right booklet printing to also do right-to-left booklet printing. Rather, it has been necessary to provide separate page placement routines for these competing conventions. The present invention achieves booklet printing according to either left- to-right or right-to-left page order conventions using the same page placement
routine. In accordance with an embodiment of the invention illustrated herein, print software for a printer incorporates a page placement routine for booklet printing. When printing a booklet according to a first of the page order conventions, the print software uses the page placement routine to correctly position page images to be printed on paper sheets, so as to provide the correct page order according to that convention with the sheets centrally and laterally folded. For printing a booklet according to a second of the page order conventions, the print software uses the same page placement routine to determine where page images are positioned on the sheets of paper, and additionally rotates each page image in place on the sheet by 180°. This results in the correct page order according to this second convention with the sheets folded in the same manner.
The booklet printing according to the illustrated embodiment of the invention thus produces either right-to-left or left-to-right page orders using a single, shared page placement routine.
Additional features and advantages of the invention will be made apparent from the following detailed description of an illustrated embodiment which proceeds with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of a computer system that may be used to implement a method and apparatus embodying the invention for booklet printing.
Figures 2 and 3 are views of front and back sides, respectively, of a sheet of paper having pages printed thereon with left-to-right booklet printing according to an illustrated embodiment of the invention.
Figures 4 and 5 are views of front and back sides, respectively, of a sheet of paper having pages printed thereon with right-to-left booklet printing according to the illustrated embodiment of the invention.
Figure 6 is a block diagram of printing software in the computer system of Figure 1 that implements left-to-right and right-to-left booklet printing as per Figures 2-5.
Figure 7 is a block diagram of a printer properties dialog with controls for a user to select printer settings of a printer in the computer system of Figure 1 , including a two-sided printing feature control for selecting left-to-right booklet printing as per Figures 2 and 3 or right-to-left booklet printing as per Figures 4 and 5, among other selections.
Figure 8 is a flow diagram of a process in the printing software of Figure 6 for left-to-right and right-to-left booklet printing as per Figures 2-5.
DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS The present invention is directed toward a booklet printing feature which switches page order conventions using page rotation. In one embodiment illustrated herein, the invention is incorporated into a printer device driver and/or in-printer firmware of a computer printer (hereafter referred to as the "illustrated printer software"). Exemplary Operating Environment
Figure 1 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. While the invention will be described in the general context of computer-executable instructions of a computer program that runs on a computer and/or computer printer, those skilled in the art will recognize that the invention also may be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The illustrated embodiment of the invention also can be practiced in networked computing environments, or on stand-alone computers. With reference to Figure 1, an exemplary system for implementing the invention includes a conventional computer 20 (such as personal computers,
laptops, palmtops, set-tops, servers, mainframes, and other variety computers), including a processing unit 21, a system memory 22, and a system bus 23 that couples various system components including the system memory to the processing unit 21. The processing unit may be any of various commercially available processors, including without limitation Intel x86, Pentium and compatible microprocessors from Intel and others, including Cyrix, AMD and Nexgen; Alpha from Digital; MIPS from MIPS Technology, NEC, IDT, Siemens, and others; and the PowerPC and other processors from IBM and Motorola. Dual microprocessors and other multi-processor architectures also can be used as the processing unit 21.
The system bus may be any of several types of bus structure including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of conventional bus architectures such as PCI, VESA, AGP, MicroChannel, ISA and EISA, to name a few. The system memory includes read only memory (ROM) 24 and random access memory (RAM) 25. A basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within the computer 20, such as during start-up, is stored in ROM 24.
The computer 20 further includes a hard disk drive 27, a magnetic disk drive 28, e.g., to read from or write to a removable disk 29, and an optical disk drive 30, e.g., for reading a CD-ROM disk 31 or to read from or write to other optical media. The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical drive interface 34, respectively. The drives and their associated computer-readable media provide nonvolatile storage of data, data structures, computer-executable instructions, etc. for the computer 20. Although the description of computer-readable media above refers to a hard disk, a removable magnetic disk and a CD, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored in the drives and RAM 25, including an operating system 35, one or more application programs 36, other program modules 37 (including printer and like device drivers), and program data 38. A user may enter commands and information into the computer 20 through a keyboard 40 and pointing device, such as a mouse 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48. A printer 49 is connected to the system bus 23 via a printer port interface 50, or alternatively via a network (described below). The printer 49 can be a laser, inkjet, or other type printer available from Hewlett Packard, or other manufacturers. In addition to the monitor, computers typically include other peripheral output devices (not shown), such as speakers.
The computer 20 may operate in a networked environment using logical connections to one or more remote computers in a local area network (LAN) or other type network. When used in a LAN networking environment, the computer 20 is connected to the local network 51 through a network interface or adapter 53. The computer 20 may connect to the printer 49 via the network 51, for example to permit sharing of the printer with other computers. It will be appreciated that the network connections shown are exemplary and other means of establishing a commumcations link between the computer 20 and printer 49, such as an infrared connection, may be used.
In accordance with the practices of persons skilled in the art of computer programming, the present invention is described below with reference to acts and symbolic representations of operations that are performed by the computer 20, unless indicated otherwise. Such acts and operations are sometimes referred to as being computer-executed. It will be appreciated that the acts and symbolically
represented operations include the manipulation by the processing unit 21 of electrical signals representing data bits which causes a resulting transformation or reduction of the electrical signal representation, and the maintenance of data bits at memory locations in the memory system (including the system memory 22, hard drive 27, floppy disks 29, and CD-ROM 31) to thereby reconfigure or otherwise alter the computer system's operation, as well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, or optical properties corresponding to the data bits.
Booklet Printing Overview With reference now to Figures 2-5, the illustrated booklet printing software has a booklet printing feature capable of printing a document containing text and graphic images in a page sequence on the printer 49 (Figure 1) as a booklet having the page sequence in either a left-to-right page order (shown in Figures 2 and 3) or right-to-left page order (shown in Figures 4 and 5). For such booklet printing, the illustrated printing software prints two pages of the document in side-by-side orientation per side of one or more sheets of paper. Generally, the printing is done on both sides of each sheet of paper, which results in four document pages being printed on each sheet of paper. Accordingly, the booklet will have document pages numbered in sequence from (1) through (4n) and printed on (n) sheets of paper, where (n) is an integer and the sheets are printed on both sides. Alternatively, with single side printing, the booklet will have document pages numbered in sequence from (1) through (2n) printed on (n) sheets of paper, where (n) is an integer. Where the actual number of pages in the original document is not a multiple of 4 (or 2 with single sided printing), the illustrated booklet printing software uses the next higher multiple of 4 (or 2) as the document's page count for purposes of the booklet printing process.
After printing, the sheets are stacked, and folded along a central lateral fold (with a first page to the outside) to form the booklet. The illustrated booklet printing software arranges the printed document pages on the sheets such that the pages will be in their proper sequence (1) through (4n) according to the left-to- right or right-to-left page order convention with the sheets so folded into booklet
form. If desired, the booklet can be bound at the crease, such as with staples or a ribbon.
More particularly, the illustrated booklet printing software arranges images 71-74 of pages for left-to-right booklet printing on a first sheet 70 of paper as shown in Figures 2 and 3. The images 71, 74 of first and last pages in the document page sequence (i.e., page numbers (1) and (4n)) are placed side-by-side on a front side 76 (Figure 2) of the sheet 70, with page (1) at the right and page (4n) at the left. Images 72, 73 of second and penultimate pages (i.e. , page numbers (2) and (4n-l)) are placed on a back side 78 (Figure 3) of the sheet 70, with page (2) at the left and page (4n-l) at the right. In this way, page (2) is immediately behind page (1), and page (4n-l) is immediately behind page (4n). In other words, the pages are arranged in pairs according to a sequence, (4n, 1), (2, 4n-l), (4n-2, 3), (4, 4n-3), etc. , where each number pair (left, right) denotes the page numbers in the document page sequence that are placed left and right on successive sides of sheets of paper fed front and back through the printer 49 in the indicated direction 75 (i.e., in horizontal or landscape orientation in this illustration, although the sheets can alternatively be fed in vertical or portrait orientation with the page images printed sideways at top and bottom of the sheet). More generally, the document pages on each sheet are the document page numbers (4n-(x-l)) at left and (x) at right on the sheet's front side and (4n-x) at right and (x+ 1) at left on the sheet's back side, where (n) is the total number of sheets and (x) is the consecutively numbered sheet. In this way, the pages (1) through (4n) are in left-to-right order when the printed sheets are folded along central lateral fold 79 into a booklet. For right-to-left booklet printing, the illustrated booklet printing software places the page images 71-74 on a sheet of paper 80 in the same arrangement as in left-to-right booklet printing. More particularly, the first and last page images 71, 74 are placed at right and left, respectively, on a front side 86 (Figure 4) of the sheet 80. The second and penultimate page images 72, 73 are placed at left and right, respectively, on the back side 88 (Figure 5) of the sheet 80. The illustrated booklet printing software additionally rotates each page image
individually by 180°. The sheet 80 is fed through the printer in the same direction 75. The result of the page image rotations is that the pages (1) through (4n) are in right-to-left page order when the sheets are folded along central lateral fold 89 into a booklet and the booklet is oriented such that the individual page images are right- side up.
In an alternative single-sided booklet printing, the pages are arranged for left-to-right page order in the sequence (2n,l), (2n-l, 2), etc. , where each number pair (left, right) denotes the page numbers in the document page sequence that are placed left and right on successive sides of sheets of paper fed one side only through the printer 49 in the indicated direction 75 (i.e., in horizontal or landscape orientation in this illustration, although the sheets can alternatively be fed in vertical or portrait orientation with the page images printed sideways at top and bottom of the sheet). This results in the document pages being in sequence (1) through (2n) in a left-to-right order when folded into a booklet. For single-sided, right-to-left booklet printing, the pages are arranged in a similar manner and the individual pages rotated by 180° to produce the sequence (1) through (2n) in a right-to-left order booklet after folding.
As just described, the illustrated booklet printing software normally arranges document pages on the sheets for a left-to-right booklet printing (i.e., with page (1) at the right, and page (4n or 2n) at the left on the outside sheet), and switches to right-to-left booklet printing by applying a 180° rotation to individual page images in the left-to-right booklet arrangement. However, in a booklet printing software according to an alternative embodiment of the invention, the document pages can be arranged normally for right-to-left booklet printing (i.e., with page (1) at the left and page (4n or 2n) at the right on the outside sheet), and individual page images rotated 180° to effect a switch to left-to-right booklet printing.
Booklet Printing Software With reference now to Figure 6, the illustrated booklet printing software 100 is implemented as a printer device driver 102 and printer firmware 104. The printer device driver 102 consists of code modules that reside on the
hard drive 27 of the computer 20 (Figure 1), and execute on the processing unit 21 under control of the operating system 35 as per conventional device drivers. The printer firmware 104 resides in the printer 49 (Figure 1) and runs on a microcontroller in the printer to control operation of the printer. The printer device driver 102 responds to print jobs initiated by application programs 36 on the computer 20 (Figure 1). For each print job, the printer device driver 102 receives document pages to be printed from an application. In response, the printer device driver 102 communicates with the printer firmware 104 via the printer port interface 50 or network 51 (Figure 1), providing print commands and print data appropriate to the printer 49 to effect printing of the application-requested print job on the printer 49. For example, with printers manufactured by Hewlett-Packard, the printer device driver transmits print commands and data to the printer 49 in the Hewlett Packard Page Control Language (PCL). For booklet printing, the printer device driver 102 contains a booklet page placement routine 110. This routine determines a placement of the document pages received from the application on the sheets of paper to effect booklet printing in a left-to-right page order as described in the Booklet Printing Overview above and shown in Figures 2-3. The printer firmware 104 contains a rotate routine 112 that operates in response to commands from the printer device driver 102 to rotate a page image transmitted to the printer 49 before printing in a designated position, so as to effect booklet printing in a right-to-left page order as described above. In alternative embodiments of the invention, the rotate routine can instead be included in the printer device driver 102. With reference to Figure 7, the printer device driver 102 also displays a printer set-up or printer properties dialog 130 on the computer's monitor 47. The dialog 130 presents interactive controls in tabbed property sheet format that a user operates to select various settings for the printer 49. In the dialog 130 of the illustrated booklet printing software 100, these controls include a "two-sided printing" setting 132 selected via a set of radio buttons 136-140 on a property sheet 142 under a tab 144 labeled "features. " The radio buttons include buttons
having the following labels: "none," "book," "tablet," "left-to-right booklet," and "right-to-left booklet." When the left-to-right booklet radio button 139 is selected, the printer device driver 102 causes documents to be printed with the above described booklet printing in left-to-right page order. When the right-to-left booklet radio button 140 is selected, the printer device driver 102 causes documents to be printed with the above described booklet printing in right-to-left page order.
Switchable Page Order Booklet Printing Process With reference to Figure 8, the illustrated booklet printing software 100 (Figure 6) prints documents using a process 160 when either left-to-right or right- to-left booklet printing is selected via the radio buttons 139-140 on the printer properties dialog 130 (Figure 7). As described above, the process 160 places document pages in the same arrangement on the sheets for booklet printing in either left-to-right or right-to-left page order. The process 160 switches between the two page orders by applying either no rotation to page images to effect left-to- right page order booklet printing, and applying a 180° in-place rotation to individual page images to effect right-to-left page order booklet printing. An alternative process can place pages in right-to-left page order arrangement, and apply individual page image rotation when left-to-right page order booklet printing is selected.
In the process 160, the printer device driver 102 (Figure 6) receives a print job data stream originating from the applications 36 (possibly via a print spool) and containing data for a sequence of pages to be printed as a booklet in either left-to-right or right-to-left page order (as selected in the printer properties dialog 130 of Figure 7). For each page in the sequence, the printer device driver 102 formats the page as for normal, non-booklet printing at a step 162, and then stores the formatted page data in memory (e.g. , to hard disk 27 in Figure 1) at step 163. As indicated at step 164, the printer device driver completes the formatting and storing of steps 162-163 for all pages in the sequence before proceeding in the process 160.
At a step 165, the printer device driver 102 retrieves data of a pair of the stored pages that are to be printed on a next successive side of the sheets according to the left-to-right page order booklet printing, e.g. , in the order (4n, 1), (2, 4n-l), (4n-2, 3), etc. The printer device driver 102 transmits this page pair data with appropriate printer commands to the printer at step 166. As indicated at steps 167-168, the printer device driver 102 additionally transmits a printer command that instructs the rotate routine 112 in the printer firmware 104 (Figure 6) to rotate the individual page images of the pair if right-to-left page order booklet printing is selected. If left-to-right page order booklet printing is selected, the page images are not rotated. At step 169, the pairs of page images are printed on successive front and back sides of the sheets of paper that are fed through the printer.
Having described and illustrated the principles of our invention with reference to an illustrated embodiment, it will be recognized that the illustrated embodiment can be modified in arrangement and detail without departing from such principles. It should be understood that the programs, processes, or methods described herein are not related or limited to any particular type of printer or computer apparatus, unless indicated otherwise. Various types of general purpose or specialized computer apparatus may be used with or perform operations in accordance with the teachings described herein. Elements of the illustrated embodiment shown in software may be implemented in hardware and vice versa. Further, although illustrated as implemented in a computer printer, the invention can be practiced in other printing apparatus, such as copiers, fax machines, combined purpose printers, etc. In view of the many possible embodiments to which the principles of our invention may be applied, it should be recognized that the detailed embodiments are illustrative only and should not be taken as limiting the scope of our invention. Rather, we claim as our invention all such embodiments as may come within the scope and spirit of the following claims and equivalents thereto.