The invention relates to printing techniques and devices, and more particularly concerns controlling the priority of print jobs.
In a computer network environment, network users often share the same printing resources. If two or more network users are attempting to use the same printing device at the same time, unwanted delays can occur in the printing of higher priority print jobs. For example, a large low-priority print job can seriously hold up several smaller print jobs that were initiated later but may be more important and needed sooner than the large job. This essentially allows one user or print job to disrupt or retard the work flow of several others, and can have a considerable impact on network productivity. Even relatively small print jobs placed in the print queue of a printing device can cause delays and productivity loss, because it is not possible to anticipate changes in job and/or user priorities. The problem is not limited to networked environments with plural users, because even a dedicated printing device still prints jobs according to the sequence of those jobs in its print queue. After sending a print job that will occupy the printer for a time, the user may have the need arise to process a higher priority job.
Some computer printers, copiers, facsimile machines and the like (all being examples of printers or printing devices as referred to herein) have the capability of canceling existing print jobs simply by pressing a function key on the printer or peripheral device coupled to the printer. This “cancel print job” function may cause the device to continue to read data from the active input/output (I/O) connection up until the next job boundary is reached, but to discard the data read up to that job boundary. Canceling existing print jobs in the printer enables the printer more quickly to proceed to printing the next job, as compared to waiting for the previous job to finish printing. But canceling jobs has various adverse effects such as waste of time and paper or other media, risk of inadvertent failure to attend to reprinting the canceled job later, etc. Users may have a limited capability to prioritize print jobs before they are sent to the printer, e.g., by canceling and re-sending jobs that are waiting in a Windows queue or similar software buffer to become active print jobs. However, once the print server receives a print job into its print queue, the print jobs are printed according to their position in the queue, and there is no opportunity or capability to prioritize jobs, except by canceling jobs in progress.
In certain instances, it may be desirable to enable a user to merely delay printing of a particular print job residing in a print server's print queue and allow a higher priority job to be printed first. An improved mechanism for controlling the priority of print jobs is desired.
According to an aspect of the invention, a method for controlling printing of print jobs in a printing device where the print jobs are received in a print queue for sequential printing comprises interrupting printing of a current print job upon reaching a boundary location in response to a first signal received at the printing device. An indicator for the interrupted print job is stored. Another of the print jobs residing in the print queue is selected from a memory containing identifiers of the print jobs in the print queue, and a printing operation is performed on the selected print job. In response to a second signal received at the printing device, printing of the previously interrupted print job is resumed according to the stored indicator.
According to another aspect, a printing device for carrying out print jobs comprises a print queue for storing print jobs fed to the printing device. A user interface enables selecting one of a first mode of operation and a second mode of operation. A processor responsive to selection of the second mode of operation determines a boundary location associated with a current print job while being printed and operates to interrupt and suspend further printing of the current print job upon reaching the boundary location. Storage circuitry is configured for storing an indicator of the boundary location of the interrupted print job. The processor then causes the print jobs in the print queue to be stored in a memory location accessible using the user interface. A control on the user interface enables selection and initiation or resumption of printing of another one of the print jobs in the print queue. In response to de-selection of the second mode of operation at the user interface, the processor can be configured to proceed to resume printing of the interrupted print job according to the indicator.
Printing device 10 is configured to fix images on print media 12. The images are not limited as to content and could include, for example, one or more of characters, iconic symbols, lines, colors, shading, pictures, patterns, drawings and other forms of information, decoration and graphic depiction. Typical forms of media 12 comprise paper, envelopes, transparencies, labels or other material. The printing device 10 may be embodied as a laser printer, ink jet printer, dot matrix impact or thermal printer, dry medium printer, multiple function peripheral device, photocopier, facsimile machine, plotter, combination device or other arrangement configured to form images on media 12.
Aspects of the invention are applicable to embodiment as a method or apparatus. Furthermore, the steps that the processor and the printing device as a whole undertake in coordination with one another are determined and managed according to the programming of the associated processor(s) as well as according to the data to be printed. The programming that controls operation likewise can be contained in the printing device or distributed and made available to the processor that employs it. In this respect, the printing device and its processors can be responsive to programming stored in a data carrier such as a semiconductor memory or on disk or CD or downloaded to a memory (e.g. volatile memory) from another source. The programming instructions that actually are executed by the processor can be complete as supplied, or can be generated as the output of another process associated with the printing device or associated processor, for example. They can exist as software program(s) comprised of program instructions in source code or object code, executable code or other formats, and can include hardware, firmware and combinations thereof. Any of the above may be embodied on a computer readable medium, which include storage devices and signals, in compressed or uncompressed form. Exemplary computer readable storage devices include conventional computer system RAM (random access memory), ROM (read only memory), EPROM (erasable, programmable ROM), EEPROM (electrically erasable, programmable ROM), flash memory, and magnetic or optical disks or tapes. Exemplary computer readable signals, whether modulated using a carrier or not, are signals that a computer system hosting or running the computer program may be configured to access, including signals downloaded through the Internet or other networks. Examples of the foregoing include distribution of the program(s) on a CD ROM or via Internet download. The same is true of computer networks in general.
Referring to the embodiment shown in block form in
Additional hardware of the depicted printing device 10 includes input tray(s) 21 and output and finishing tray(s) 22. Print processor 23, for example comprising a microprocessor or CPU, is configured to manage functions of the printing device 10 in coordination with print controller 19. The print engine controller 19 and associated print engine 20 are coupled to bus 17 and provide print output capability for the printing device 10.
During printing of a current print job from print queue 55 of device 10, sheet media is extracted from input tray 21, operated upon by print engine 20, and directed to output and finishing tray 22. Page boundary information, including start and end boundary locations for each page of a print job stored in the print queue, is maintained in memory to enable operation of the print process on a page basis. The boundary location can be the occurrence of a page feed in a multi-page print job, a line boundary or line feed, or otherwise as appropriate to the type of print job. Boundary location information defining line and page boundaries enables printing to proceed more or less continuously up to a point at a perimeter of the print medium, such as at a predetermined margin. Printing pauses as a new sheet is loaded or as a print carriage is reversed or repositioned (not shown). Printing then proceeds toward the next boundary.
Output and finishing tray 22 includes, in an exemplary embodiment, finishing feature mechanisms such as abutments that may be movable to ensure sheet registration, devices for binding, stapling, punching, and the like, and possibly also separate cubby holes, shelves or bins for collation or “mailbox” sorting purposes. Input tray 21 may also include a plurality of input trays enabling selection among choices of print media such as different paper sizes or orientations.
As shown in
Print operation requests are sent from host device 8 to printing device 10 via print driver 83 to request execution of a print job. The print signal 26 coupled from print driver 83 includes identification information for executing printing operations by device 10, including, for example, content information and an identifier for the requested print job. The identifier may include for example, one or more of the user name requesting the print job, the host device location or identifier, a unique job ID that may contain a sequence number or time stamp, and the like. The identifier enables the requested job to be distinguished from other jobs resident in the print queue.
The print signal 26 can contain data that controls printing parameters, or data that is used by the printing device 10 to generate controls based on the data, or both. Control and parameter data that can be provided to printing device 10 can include general information concerning the print job, a data file of character contents to be printed (e.g. text character data, graphics, etc.) and/or commands in a page description language (PDL). The print data is communicated to print processor 23 of printing device 10 via I/O interface 51 for initiating and executing the printing operation. The print job requested to be printed on printing device 10 is stored in print queue 55 for printing. The print queue 55 comprises a spool or memory buffer for storing printing jobs to be printed in the sequential order that the jobs are received and loaded into the queue.
According to an aspect of the invention, printing device 10 includes a printer user interface 14 configured on a control panel or similar device to display status information of the printing device 10 and to enable certain user selections. The printer user interface 14 as shown in
Scroll button 144 enables a user to show and selectively to scroll through and to select among queued print jobs whose identifications are at least partly displayed in display window 149. The user can scroll from one print job to a next print job without discarding from the queue the jobs that are passed over during such scrolling and selection.
Selection of a given print job from the display window 149 for immediate printing is accomplished by depressing selection button 146, which transmits a request to print the selected print job immediately. The print processor is configured to execute operations to retrieve from memory parameter information associated with the selected print job, including the start and end job boundary locations, image data, and the like, and to execute the print operation so that the selected job is printed out of order from its original sequential position in the print queue. When the desired print job(s) for priority printing are completed, toggling button 142 causes a request to be transmitted to the print processor to exit this mode of operation and to resume sequential printing of the print jobs from the print queue. In another configuration, the interrupted job can automatically resume after the immediately printed priority job or after a given time period where no operator input has occurred. These alternatives can be made as programmed fixed arrangements or as default processes that the user can override by making setup selections, or as selections that the user makes whenever interrupting a job in progress.
Referring to
In an exemplary operation of printing device 10, an operator is allowed to selectively control the priority of print jobs in the print queue in the event that a given job is deemed to require higher priority within the printing device by operating a control 142 on the front menu panel of printing device 10 (see
As shown in the example of
The print jobs that are in the print queue 55 (see
Upon completion of the print operation, the processor waits for additional input from the operator to either select another print job from the displayable list for printing (step S100), or to de-select the print interrupt condition (step S110). The operator optionally can be prompted, e.g., by an audible signal. De-selection can occur automatically in lieu of operator input, for example, upon lapse of a predetermined delay time. Upon de-selection of the print interrupt condition at the control panel of the printing device (step S110), or upon selection by the operator of the interrupted print job, the page boundary location reference associated with the interrupted print job is retrieved from memory (step S120). Printing of the interrupted print job is resumed at the page location boundary (step S130), i.e., normally at the beginning of the sheet following the last completed sheet of the job. Upon completion of the previously interrupted print job, the remaining print jobs in the print queue can be printed in regular sequential order.
In one configuration, the printing device may include means for enabling only authorized users to suspend a print operation from the print queue and to adjust the order of printing already-queued jobs to control print job priorities. This may be accomplished, for example, by requiring a user to enter an authorization code such as a PIN in response to a request to suspend print operations, and/or a request to select another print job for priority printing. Such authorizations can be logged and made available for display.
In another embodiment, operator control of the order or priority of print jobs waiting in the print queue can be displayed and adjusted at least partly by using a control panel display associated with host device 8. This allows job monitoring and priority adjustment (namely job suspensions while printing and changes in the printing order of jobs in the print queue) without requiring operator presence in the immediate vicinity of the printing device, as otherwise necessary to perform control operations on the printing device console. This embodiment is also useful in connection with certain printing devices that may not include a local operator control and display panel or console for performing priority print control by means of indicators and switches mounted on the printing device itself.
Addressing a request via web browser 18 of host device 8 to the address 65 of printing device 10 causes the printing device to return data representing the current state of the print queue, entered in the home page virtual display panel 60. Virtual buttons such as buttons 62, 64, 66 provide a linking to other pages and cause the printing device to respond according to the control operations initiated by the operator at the host device. Additional functions such as drag-and-drop lines and icons can be served.
In accordance with the architecture depicted in
While aspects of the present invention have been described in the context of an image forming system, those of ordinary skill in the art will appreciate that the processes according to the invention are capable of being embodied and distributed in the form of a computer readable medium of instructions in a variety of forms. The invention applies equally to such forms, regardless of the particular type of signal bearing media actually used to carry out the distribution and regardless of the nature of the programming instructions, factors or other specific programming techniques. Examples of computer readable media include recordable-type media, such as a floppy disk, hard disk drive, RAM, ROM, CD-ROM, DVD-ROM, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are executable as well as formats that are interpreted or decoded for actual use in a particular data processing system.
Although the invention has been described and pictured in exemplary forms with a certain degree of particularity, it is understood that the present disclosure of such forms is made by way of example, and that numerous changes in the details of construction and combination and arrangement of parts may be made without departing from the spirit and scope of the invention as hereinafter claimed. It is intended that the patent shall cover by suitable expression in the appended claims, whatever features of patentable novelty exist in the invention disclosed.