Abstract:
Methods and apparatus for selecting staple positions for printed documents are disclosed. A system and method for printing documents is disclosed which provide a user with extended staple position options. A user of a printer may specify where he wishes staples to be put into his document. The user is provided with a view of a sheet of paper on his computer screen, and can select with his mouse where he wants the staples to be put. By knowing the paper size, feed orientation and image orientation, the printer driver can then map the user&#39;s selected staple positions to the physical capabilities of the printer. The printer driver instructs the printer controller of the stapling position for the job, and how much rotation (if any) the controller should apply to the image before printing.

Description:
NOTICE OF COPYRIGHTS AND TRADE DRESS  
         [0001]    A portion of the disclosure of this patent document contains material which is subject to copyright protection. This patent document may show and/or describe matter which is or may become trade dress of the owner. The copyright and trade dress owner has no objection to the facsimile reproduction by any one of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright and trade dress rights whatsoever.  
         BACKGROUND OF THE INVENTION  
         [0002]    1. Field of the Invention  
           [0003]    The present invention relates generally to configuration of printer drivers, and particularly to providing enhanced stapling options for computer-generated printed documents.  
           [0004]    2. Description of Related Art  
           [0005]    Microsoft Windows, like most contemporary operating systems, permits a user to print to any number of printers. These printers may be attached directly to the user&#39;s computer, or may be accessible through a network. For each brand and model of printer, and for each operating system, a printer driver is provided. The printer driver aids the operating system in communicating with the corresponding printer.  
           [0006]    A printer driver is a software program which resides on the computer, typically on the computer&#39;s hard drive and run from memory (e.g., RAM), rather than the printer itself. The purpose of a printer driver is to give the computer an understanding of the capabilities of the printer, so that all the printer features can be used. Most operating systems are supplied with printer drivers for the popular models of printers, but printer drivers may be provided separately. In some operating systems, the printer drivers are associated with particular application programs.  
           [0007]    The printer driver will normally tell the computer what printer language the printer uses, which fonts are built in, how many paper feeders it has, what sizes of paper it can support, whether it can print duplex, etc. If a computer software package does not have this information it cannot make full use of the printer, or send the commands required to control the features of the printer.  
           [0008]    Most printers have numerous features and options available to the users. These options may be physical or logical. Physical options include paper size, paper type, paper source (tray, feeder) and print resolution. Logical options include layout (landscape or portrait), font mapping, use of PCL or Postscript, overlays/watermarks, number of copies of generate and graphics performance.  
           [0009]    Under the Windows operating systems, as in most operating systems, from within any given application, the user can select one of the available printers as the destination for print jobs from that application. Windows also gives the user access to the printer driver from within applications so that the user can select from the options and features available to the selected printer.  
           [0010]    The language used by a printer is the set of commands it obeys to format data sent from a computer. These commands are embedded in the data by the computer, and interpreted by the printer.  
           [0011]    Printer languages generally fall into two categories, Page Description Languages (PDLs) and Escape Code languages. Page Description Languages are generally more versatile and sophisticated allowing more complex pages and graphics to be created, and are suitable for typographically advanced documents such as presentation materials, technical manuals, catalogues, advertising brochures etc. Page Description Languages are normally used to produce sophisticated, highly formatted output, including graphics design programs, advanced word-processing packages, spreadsheets with extensive charting capabilities, and desktop publishing packages.  
           [0012]    Escape Code languages are generally characterized by the structure of the commands they use, each command is prefixed by a special code (normally the Escape code, (1B hexadecimal, 27 decimal) hence the name) to signify that the following characters are a command, and not data to be printed. Escape Code languages do not offer the flexibility of PDLs, and are suited to simple documents such as letters, database printouts, and documents containing simple graphics. Most Escape Code languages do not offer sophisticated typographic features, so while they may be able to use a range of different fonts, most Escape Code languages can only print text in a limited number of sizes, and cannot handle special effects such as printing text at an angle or on a curved line.  
           [0013]    Laser printers are very attractive to anyone working with graphics because of their print quality. As a result of this, some laser printers have the ability to emulate other graphics output devices such as pen plotters. The majority of pen plotters use a language called HPGL (Hewlett-Packard Graphics Language), and it is common for a laser printer to offer the ability to use HPGL.  
           [0014]    Printers normally use cut-sheet stationery (there are a very few high speed printers using continuous stationery). The page size used in most printers is fixed by the size of the paper input tray/cassette—the paper container which inserts into the paper feeder mechanism. Most printers are supplied with single-size paper trays for the standard business stationery, which in North America is “Letter” size (8.5″×11″), and in the rest of the world is A4 (210 mm×297 mm). Other paper sizes can be handled using different paper trays, which are normally optional extras, or via a “manual feed” facility, which allows individual sheets of odd-sized paper to be used. The manual feed process is cumbersome, as each sheet of paper has to be fed by hand into the printer. A few models of printer provide an adjustable paper tray capable of taking a range of paper sizes, either as standard or as an optional extra.  
           [0015]    In addition to paper, most printers will print on other materials including lightweight card, adhesive labels, and overhead projection transparencies. Individual models of printer each have their limitations in handling these materials, depending on the design of the printing mechanism, these limitations are normally specified by the printer manufacturer in the user manual. Most printers will also print on envelopes using the manual feed facility. Envelope feeders are also often available for holding and feeding a stack of envelopes.  
           [0016]    The number and capacity of paper input feeders on a printer varies enormously, depending on the size and type of printer. The majority of personal printers provide one input feeder holding about 100 sheets of standard paper, and a manual feed facility. Paper feeders on larger printers tend to be correspondingly larger, office printers typically hold 250 sheets per tray, and often allow two trays to be loaded at once. Workgroup printers sometimes have special “high capacity feeders,” motor-driven paper feeders holding around 1,000 sheets. Large production printers may have several motor-driven feeders holding up to 2,500 sheets each (a 90 p.p.m. production printer can use 5,000 sheets in an hour).  
           [0017]    The printer&#39;s controller is a dedicated computer which creates an image from commands it receives from the host computer sending the document. A controller has to perform several tasks, including communication (talking to the host computer), interpretation (finding and understanding the commands sent to it, which are normally embedded in the data to be printed), formatting (preparing to create an image, including setting the paper size, margins, selecting fonts etc.), rasterizing (rasterizing is the creation of the image as an array of dots ready for the laser), and finally passing the image to the print engine. Different printer languages make different demands on the controller, and different manufacturers use different approaches to the design of controllers, so each make and model of printer controller operates in a slightly different way, but each has the same effect. The controller is typically integrated into the body of the printer, but it may also be an adjunct to the printer&#39;s main body, with a separate power supply, too.  
           [0018]    The communications function of a printer controller “talks” to the computer which is sending the document to be printed. It receives data from the computer through a communications port, and tells the computer when to stop sending data so that it can process the data it has received, and when to start sending data again. This process is known as handshaking, there are many different handshaking protocols, the protocol used depends on the type of computer and communications port used. Many office and workgroup printers have several ports, allowing simultaneous connection to several computers, in which case the communications function has to talk to all of them concurrently without mixing up which data comes from which computer, or ask the other computers to wait while it processes the current job.  
           [0019]    As it receives the data from the computer the communications function either passes the data directly to the interpreter, or stores it in a queue. The queuing system is known as Job Spooling, and is common on large workgroup and production printers. The incoming data is stored, normally on a hard disk built into the printer, and can be held until the printer operator activates it for printing. On production printers this is the normal way of working, as the computer can then send data at any time, and the printer operator does not have to print it until he or she is ready. On workgroup printers the normal way of working is for the data to be put in the job spool and held until the interpreter is ready (when it has finished printing the current job), at which point the job is automatically printed. The main value of this feature is when several users are sharing a printer, as they can all send their print jobs at the same time, and the printer will store them in the job spool until it&#39;s ready to print. A secondary feature of the job spool is in printing multiple copies of a document. The print job only needs to be sent to the printer once to store it in the job spool, but it can be printed several times from the job spool, which reduces the amount of time the computer needs to spend sending the data to the printer.  
           [0020]    The interpretation function of the controller, normally called the interpreter, examines the data sent from the computer and identifies the command embedded in the data. The commands will fall into several categories, such as printer control, page format, font management, text layout and graphics, and must be arranged and submitted to the formatter in the correct order and priority, incorrect or invalid commands must also be processed and signaled to the user. The interpreter is usually responsible for implementing the printer control commands, these are commands which perform generic operations such as selecting duplex or simplex, manual feed, and other commands which have no impact on the formatting of the page. In some printers this is all that the interpreter does, in other printers the interpreter may also translate the commands into a shorthand or “tokenized” form which the formatter can process more efficiently. The interpreter passes the structured print data to the formatter.  
           [0021]    The formatting function of the controller, called the formatter, takes the structured print data and arranges the page. The first priority is normally to set the paper size, and then the margins, until these are set the line length is unknown. When the line length is set the formatter can arrange the text. Some computer programs send all the commands required to position the text on the page, specifying exactly where each character is placed so that the formatter has very little to do, other programs send the minimum of commands, and expect the printer to work out the details. If, for instance, the formatter receives a command to justify the text between the margins, it must, using the font width information for each letter, space out and calculate the exact position of each letter in the line so that the end of the line of text is both the end of a word, and exactly flush with the right margin. If the font requested by a command is not available in the printer, the formatter must choose a substitute and use that instead. Once the formatter has determined how much can be fitted on the line, it inserts a new line command to start the next line. The formatter lays out the text until it has reached the bottom of the page, or the end of the data. The formatter will also process any graphics on the page, converting vector graphics command to bitmaps and checking the validity of any bitmap graphics sent to the printer. When the complete page is formatted, the formatter passes it, as a very detailed set of commands specifying the font and position of each letter and the position of each bitmap graphic, to the rasterizer.  
           [0022]    The rasterizer is the final stage in the process of preparing an image for printing, and converts the commands received from the formatter into an array of dots. It takes the bitmap for each character of text, and places it at the specified position in the array, then overlays the array with any bitmap graphics, to form the pattern to be printed.  
           [0023]    Typical printers do an adequate job of printing documents, but few provide “finishing” capabilities such as collating and stapling. With a newer generation of printers based upon digital copiers, some of the features of the copier are made available during printing. Thus, a number of printers now permit a user to quickly print multiple copies of his document, have the copies collated or sorted, and also have the copies stapled.  
           [0024]    The finishers of such printers and of typical copiers allow stapling at only a single position, typically the top left corner of the document. Some special-purpose or high end copiers also allow booklet stapling, where two staples are placed along the left edge of the document a spaced distance apart. In these copiers, the sorter includes two staplers in fixed positions, with one of the staplers being used in both the one- and two-staple modes. Thus, stapling options at best have been limited to two types: a single staple at the top left corner of the document, or two staples along the left edge of the document.  
           [0025]    It has been suggested, though, to provide more flexible stapling options in a printer. According to one proposed system, the position of a stapler in a device is moveable with respect to a printed page. In this system, the finisher can place staples at any of the four corners of the document, as well as at any of four angles (horizontal, vertical, angled left, or angled right). Although it was speculated that the staple position and angle could be made selectable by a user from a computer attached to a printer, devices and methods for actually achieving the suggested ends were not disclosed.  
           [0026]    It is therefore the object of the invention to provide enhanced printer stapling capabilities. It is a further object to increase the number of possible staple positions without adding additional staplers to the finisher. It is a further object to make fully available the stapling capabilities of a printer across all paper types and feed directions. It is a further object to provide enhanced printer stapling capabilities without requiring modification of the printer or finisher.  
         SUMMARY OF THE INVENTION  
         [0027]    The previously described objects are achieved in a system and method for printing documents which provide a user with extended staple position options. In accordance with the invention, a user of a printer may specify where he wishes staples to be put into his document. The user is provided with a view of a sheet of paper on his computer screen, and can select with his mouse where he wants the staples to be put. By knowing the paper size, feed orientation and image orientation, the printer driver can then map the user&#39;s selected staple positions to the physical capabilities of the printer. The printer driver instructs the printer controller of the stapling position for the job, and how much rotation (if any) the controller should apply to the image before printing.  
           [0028]    In accordance with the method of the invention, there is provided an object instance having at least one page which is to be printed from a computer workstation to a printer. The computer workstation includes a display, a user input device and a printer driver. The printer includes a stapling unit capable of placing cinching devices in at least two positions. The method then comprises the steps of a user at the computer workstation indicating that the object instance is to be printed; invoking the printer driver; the printer driver obtaining staple or other cinching device position capabilities, paper size capabilities and feed orientation capabilities of the printer; the printer driver obtaining a desired paper type and a desired image orientation of the object instance; the printer driver determining, as logical staple positions, where on the printed pages of the object instance the stapling unit could attach cinching devices; the printer driver displaying on the display a representation of at least one page of the object instance and the logical staple positions; the user, using the input device, indicating to the printer driver which of the logical staple positions where the user wishes to have the printer place cinching devices on a printed copy of the object instance; and the printer driver sending one or more commands to the printer indicating an amount of rotation for the object instance and where to place cinching devices to achieve the logical staple positions indicated by the user.  
           [0029]    Still further objects and advantages attaching to the device and to its use and operation will be apparent to those skilled in the art from the following particular description.  
       
    
    
     DESCRIPTION OF THE DRAWINGS  
       [0030]    Further objects of this invention, together with additional features contributing thereto and advantages accruing therefrom, will be apparent from the following description of a preferred embodiment of the present invention which is shown in the accompanying drawings with like reference numerals indicating corresponding parts throughout and which is to be read in conjunction with the following drawings, wherein:  
         [0031]    [0031]FIG. 1 is a block diagram of a computer network for use in conjunction with the invention.  
         [0032]    [0032]FIG. 2 is a representative screen shot showing a step in selecting a printer configuration in accordance with the invention.  
         [0033]    [0033]FIG. 3 is a representative screen shot showing another step in selecting a printer configuration in accordance with the invention.  
         [0034]    [0034]FIGS. 4A and 4B are representative partial screen shots showing stapling options in accordance with the invention.  
         [0035]    [0035]FIGS. 5A and 5B show possible physical staple positions for a rotated page.  
         [0036]    [0036]FIGS. 6A and 6B show possible physical staple positions for an unrotated page.  
         [0037]    [0037]FIG. 7 is a flow chart of a method of selecting staple positions for a printed document in accordance with the invention. 
     
    
       [0038]    These and additional embodiments of the invention may now be better understood by turning to the following detailed description wherein an illustrated embodiment is described.  
       DETAILED DESCRIPTION OF THE INVENTION  
       [0039]    Throughout this description, the preferred embodiment and examples shown should be considered as exemplars, rather than limitations on the apparatus and methods of the present invention.  
         [0040]    Referring now to FIG. 1, there is shown a block diagram of a LAN  100  in accordance with the invention. The LAN  100  includes a file server  120 , computer workstations  150 , and printers  180   a ,  180   b , coupled to one another via network communications lines  160 . The file server  120  and computer workstations  150  are preferably those well known in the art, such as computers having Intel Corporation (Santa Clara, Calif.) microprocessors and running Microsoft Corporation (Redmond, Wash.) Windows operating systems. On computer workstations such as computer workstations  150  there typically will be a number of application programs with which a user may create, edit and print object instances by use of input output devices such as a display  150   a , a mouse and a keyboard (not shown). These application programs may be for word processing, graphics, spreadsheets, presentations and many other purposes.  
         [0041]    The LAN  100  may also include hubs, routers and other devices (not shown). Furthermore, printers may be coupled directly to the file server  120  and computer workstations  150 . Additional printers and other devices, such as multifunction peripherals (MFPs) and fax devices, may be coupled to the LAN  100  as described above.  
         [0042]    Before proceeding further, a few terms are defined. By “server,” it is meant hardware or software which provides network services. By “file server,” it is meant a computer which controls access to file and disk resources on a network, and provides security and synchronization on the network through a network operating system. By “computer workstation,” it is meant a client computer which routes commands either to its local operating system or to a network interface adapter for processing and transmission on the network. A computer workstation may function as a server by including appropriate software, and may be for example, a print server, archive server or communication server. Furthermore, a computer workstation may be used in non-networked environments, wherein, for example, a printer would be directed connected to the computer workstation. By “software” it is meant one or more computer interpretable programs and modules related and preferably integrated for performing a desired function. By “object instance” it is meant an instance of that logical construct which a given application creates and manipulates, e.g. the object instance of a word processing document is a document, the object instance of a spreadsheet program is a spreadsheet.  
         [0043]    By “printer driver” it is meant (1) a program which takes into account the physical characteristics of a printer and which is used to convert graphics and text into device-specific data at the time of printing, or (2) a file which describes the physical characteristics of a printer and which is used by an operating system or other software to convert text and graphics into device-specific data at the time of printing.  
         [0044]    By “printer” it is meant an output device that produces a hard copy record of data, typically on paper, and includes laser printers, ink jet printers and print-capable multifunction peripherals. A printer in accordance with the invention includes a stapling unit. By “stapling unit” it is meant an electromechanical device which is integrated with a printer either internally or as an adjunct through, e.g., a stapler-sorter or finisher, and is responsive to instructions sent to the printer to attach a bendable cinching device, e.g., a staple, to hard copy output of the printer.  
         [0045]    Those of ordinary skill in the art are knowledgeable about the operation of object oriented operating systems such as MS Windows and application programs designed to operate therewith. Hence, most of the matter appearing in the drawings, including the functionality represented by objects shown in the drawings, will be understood by those of ordinary skill in the art with limited description. Explanation of the use of MS Windows and various applications programs are widely available in publications such as Windows 95 For Dummies, 2nd Edition and WordPerfect 8 For Windows For Dummies (both published by IDG Books), which are incorporated herein by reference.  
         [0046]    The method of configuring a printer in accordance with the invention will now be explained with reference to FIG. 7, showing a flowchart of the method, and FIGS.  2 - 6 , showing representative screen shots and partial screen shots. In the first step, a user indicates an object instance for printing and activates a printer driver at one of the computer workstations  150  (step  700 ). In MS Windows, object instances may be selected for printing from within a particular application while editing the object instance, such as a word processor, or from views of lists of files, such as the Windows Explorer. The object instance may be, for example, a document, or one or more selected pages of a document.  
         [0047]    [0047]FIG. 2 shows a screen shot of a typical word processing application program, WordPerfect. WordPerfect is published by Corel Corporation (Ottawa, Canada). In FIG. 2, the editing of a document by WordPerfect is shown. Like many MS Windows applications, to print a document from WordPerfect, the user selects “File”  210  from the menu bar at the top of the screen, then “Print”  220 . Short cuts are also typically provided and implemented through, for example, macros, short-cut keys, and on-screen icons/buttons.  
         [0048]    Once the user has selected the Print function, WordPerfect, like most MS Windows applications, generates a dialog window  300  such as that shown in FIG. 3. From this dialog box the user may select from a list  320  a particular printer to print to, if more than one are available. FIG. 1 shows two printers  180   a ,  180   b  accessible to computer workstations  150 .  
         [0049]    The dialog window  300  typically allows the user to activate the printer driver of the selected printer to modify certain default properties for print jobs sent to the selected printer, or to take advantage of certain capabilities of the printer. This is typically achieved by pressing a “Properties” button  310  with the mouse.  
         [0050]    This ability to modify the printer&#39;s properties from the printer driver should not be confused with the ability to modify an object instance&#39;s print characteristics. For example, WordPerfect allows the user to select different paper types, fonts, and many other print output characteristics. However, these options are available irrespective of the capabilities of the selected printer, or any printer which might be available. Typically, if the user has selected a particular output characteristic which the printer does not support, the printer will attempt to match the selected characteristic with the selected printer&#39;s actual capabilities.  
         [0051]    Once the printer driver has been invoked, it gathers two types of information. The first type relates to the capabilities of the selected printer. The second type of information relates to the object instance to be printed.  
         [0052]    In step  710 , the printer driver obtains the staple position capabilities, paper size capabilities and feed orientation capabilities of the selected printer. There are well known techniques for printer drivers to obtain a printer&#39;s capabilities, and no particular technique is meant to be excluded. These include interrogation of the printer, and reliance upon installation defaults or other defaults. Since a printer with a stapling unit is necessary for performing the method, it is presumed for the present purposes that the selected printer includes a stapling unit. By “staple position capabilities” it is meant the locations on printed pages where the stapling unit can place staples and this may be paper-size dependent. By “paper size capabilities” it is meant the types and sizes of paper for which the printer is to configured to have available for printing. An empty or improperly filled paper source could affect this. By “feed orientation” it is meant the direction which the printer feeds out hard copy, and is typically defined as “long edge” feed or “short edge” feed. Long edge feed (“LE”) means that, for example, for letter-size paper, the paper feeds along the 11″ edge, and feeds out an 8½″ edge.  
         [0053]    Next, in step  720 , the printer driver obtains a paper type selection and image orientation selection for the object instance. Many application programs have means for allowing the user to select paper type and image orientation. Because some application programs lack such a feature, most printer drivers provide a similar feature. Typically, selections made from the application program will override selections made through the printer driver. Preferably, the user or the printer driver insures that the application paper size settings and orientation are the same as that selected from the printer driver.  
         [0054]    In typical application programs, when a user creates a document, the application program assigns a default paper type and default image orientation to the document and this is stored as part of the document. The paper sizes typically offered by application programs include letter, legal and A4. The image orientations typically offered by application programs are portrait and landscape. Image orientation should not be confused with feed orientation. Whereas feed orientation refers to how the paper comes out of the printer, the image orientation refers to how the object instance appears on the selected paper size.  
         [0055]    Typical application programs include means for allowing the user to change the paper type and image orientation. Even for non-Windows operating systems, there is usually a default paper size and image orientation.  
         [0056]    Because a printer driver typically knows more about the capabilities of an associated printer though, a printer driver typically allows a user to select settings which more closely conform to the physical capabilities of the associated printer. Typical printer drivers present a user with a list of available paper sources, such as cassettes, and the user selects from the list. Typical printer drivers also present a user with a list of available paper types, and the user selects from this list. Typical printer drivers also present a user with a list of available image orientations, and the user selects from this list. The preferred printer driver includes these capabilities.  
         [0057]    Preferably, if the user selects a paper source from the printer driver, the printer driver limits the list of paper types to only those which the printer driver knows are available from the selected paper source. For example, if the user selects a paper cassette which has legal size paper, then the printer driver limits the user&#39;s choice of paper types to legal.  
         [0058]    With the paper type and image orientation now selected, and knowing the printer&#39;s capabilities with respect to paper types, feed orientation and stapling, the printer driver determines at what positions the stapling unit can put staples on a printed copy of the object instance (step  740 ). These potential staple positions are referred to herein as “logical staple positions.” If the user did not select a paper source, then the printer driver preferably defaults to selecting a paper source with long edge feed stock. The determination of logical staple positions may be either according to an algorithm or by looking up the logical staple positions in a table. The table may, for example, be incorporated into the printer driver or in the printer and accessible to the printer driver.  
         [0059]    Next, the printer driver displays on the computer workstation&#39;s display  150   a  a representation of at least one page of the object instance (step  760 ) and the logical staple positions (step  765 ). Preferably only the first page is shown. The printer driver in accordance with the invention may generate a dialog  400 A,  400 B such as those shown in FIGS. 4A and 4B.  
         [0060]    For the sake of this example, it is assumed that a letter size paper and source have been selected, and that the printer can put staples in three places along the left edge of the paper. It is also assumed that the paper is long edge fed.  
         [0061]    In FIG. 4A, there is shown on a “Stapling” tab  410 A a reduced-size representation  420 A of one page of the selected object instance (the first page of this patent application). On the representation  420 A, the printer driver preferably superimposes one or more check boxes  430 A at each logical stapling position. The representation  420  is a letter size, portrait orientation document. The representation  420 A is preferably proportional to what will be printed and preferably appears top-side up (rather than up-side down or otherwise rotated).  
         [0062]    In FIG. 4B, there is shown a similar “Stapling” tab  410 B with a reduced-size representation  420 B of one page of a landscape orientation document. Check boxes  430 B show the logical stapling positions.  
         [0063]    Assuming that two documents are to be printed to the same printer, using the same cassette and the same paper size, but only their image orientations differ, the logical stapling positions relative to the page should be the same. This is shown in FIGS. 4A and 4B. In FIG. 4A, the logical stapling positions are three places on each of the long edges of the paper. In FIG. 4B, the logical stapling positions are also three places on each of the long edges of the paper.  
         [0064]    As mentioned, the hypothetical printer of the example can put staples only in three places on the left side of a long edge fed letter-size paper. However, the printer driver has recognized that if the image were rotated 180° before printing, a mirrored set of staple positions are obtainable along the right edge of the paper.  
         [0065]    In FIG. 4A, check box  431 A is shown checked. This is preferably achieved by the user moving a mouse cursor over the check box  431 A and clicking with the mouse (step  770 ). However, other techniques for the user selecting stapling positions are also within the scope of the invention, and may include the user moving “logical staples” onto the page at desired positions, typing with a keyboard names of positions, radio buttons, etc. In one embodiment, when the mouse cursor is moved over the bitmap area representing the logical view of the page, the pointer changes to a hand at any logical stapling position. If the user pushes the left-mouse button when over one of the logical stapling positions, then that position is selected as well as the corresponding item in the radio button group.  
         [0066]    In some embodiments, selection of one logical stapling position might foreclose others. For example, the stapling unit may only be capable of putting staples on one edge of the page. However, if the page is rotated 180°, the stapling unit could put staples on the opposite edge of the page. In such instances, preferably if the user selects a logical stapling position which forecloses other logical stapling positions, the printer driver makes the foreclosed logical stapling positions unselectable. This is preferably done by greying the affected check boxes  430 A and not checking them if the user attempts to select them. Alternatively, the check boxes  430 A could be not displayed. In the example of FIGS. 4A and 4B, selection of any logical stapling position  430 A,  430 B will foreclose all of the logical stapling positions on the opposite side of the page.  
         [0067]    Although the FIGS. 4A and 4B show reduced-size representations of one page of an object instance, other representations are also within the scope of the invention. Preferably, a large letter (e.g., “T” or “A”) is used as the representation, since this provides a simpler implementation. Alternatively, a graphic could be used. The important feature of the representation is that it convey to the user the logical staple positions in relation to the printed appearance of the object instance.  
         [0068]    The user then confirms his selections by clicking the mouse on an “OK” button  440 A,  440 B or an “Apply” button  445 A,  445 B. Without any further user interaction, the printer driver then determines whether, for the stapling unit to put staples at the selected logical stapling positions, the image of the object instance must be rotated, and also the physical stapling positions which correspond to the selected logical stapling positions on the page as rotated or not.  
         [0069]    The printer driver then, in step  780 , issues instructions to the printer to print the object instance as selected by the user, including instructions of which physical stapling positions were selected and whether to rotate the image before printing.  
         [0070]    As shown in FIG. 5A, the image  520 A of the printed object instance was rotated 180° so that a staple  531  A could be placed at logical stapling position  431 A (FIG. 4A). Similarly, as shown in FIG. 5B, the image  520 B of the printed object instance was rotated 180° so that a staple  531 B could be placed at logical stapling position  431 B (FIG. 4B). Such a result might be achieved, for example, by sending a printer command to rotate the image 180° and put a staple at position “3.” 
         [0071]    In contrast, as shown in FIGS. 6A and 6B, if staples  631 A,  631 B are to be placed on the opposite side of the pages from those shown in FIGS. 5A and 5B, then the image is printed without rotation and the staples are attached  631 A,  631 B to the respective printed pages without rotations.  
         [0072]    There are many possible combinations of printer capabilities with respect to orientation, paper type, feed direction and physical stapling position. Thus, it should be appreciated that it may be necessary or preferable to rotate the image of the object instance at 90°, 180°, 270° or possibly even other amounts. All of these rotations are within the scope of the invention. The important feature is that the printer driver is able to make available all possible logical stapling positions to the user, and once the user has selected stapling positions, the printer driver sends appropriate instructions to the printer identifying the physical stapling positions and pre-printing image rotation to achieve this.  
         [0073]    Although exemplary embodiments of the present invention have been shown and described, it will be apparent to those having ordinary skill in the art that a number of changes, modifications, or alterations to the invention as described herein may be made, none of which depart from the spirit of the present invention. All such changes, modifications and alterations should therefore be seen as within the scope of the present invention. For example, although the invention is described with respect to LAN  100 , features of the invention as defined by the claims could also be used to great benefit in a non-networked environment.