Printers typically receive print jobs, arrange the incoming print jobs in a page queue, and print the pages in the order arranged in the page queue. However, it may be desired to print a “priority” or “interrupt” print job in an accelerated manner in advance of print jobs in the page queue. Accordingly, there is a need for a method for printing an interrupt print job, as well as a method for printing an interrupt print job which ensures easy processing of the interrupt print job.
In one embodiment, the present invention is a method for printing an interrupt print job wherein the printer includes an interrupt processor to process the interrupt print job. The dedicated interrupt processor ensures easy processing and handling of the interrupt print job.
In particular, in one embodiment the invention is a method for printing an interrupt print job including the steps of receiving a primary print job and processing the primary print job with a primary processor to provide a plurality of primary pages to a page queue. The method further includes the steps receiving an interrupt print job and processing the interrupt print job with an interrupt processor to provide at least one interrupt page. The method further includes the step of printing the at least one interrupt page prior to printing at least one primary page in the page queue.
Other objects and advantages of the present invention will be apparent from the following description and the accompanying drawings.
As shown in
The printer hardware 14 may include a plurality of external ports 20 and internal ports 22 operatively coupled to the controller 16. Each external port 20 may be coupled to an external print job source 24 that is a separate, stand alone component that is coupled to the printer 10/printer hardware 14 to transmit data streams and/or print jobs thereto (for the purposes of this application, “data stream” and “print job” are used interchangeably and have the same inclusive meaning). For example, the external print job sources 24 may include an external facsimile machine 26, external copier 28, external scanner 30 or external computer 32. The external print job resource 24 may also be a multi-function device, such as a combination printer/copier/scanner or any other device or source capable of providing a data stream. The external ports 20 may include network ports, USB ports, parallel ports, serial ports, or other type of ports as desired to receive data streams/print jobs from the various external print job sources 24.
Each internal port 22 may be coupled to an internal print job source 34 that is formed as part of, or integral with, the printer 10 such that each internal print job source 34 is located inside the housing 12. For example, the printer 10 may include an internal scanner 38, internal facsimile machine 40 or other capabilities or internal devices 36 such that the printer hardware 14 can print the data streams/print jobs provided from such internal print job sources 34. The internal ports 22 may be of the same or different configuration as the external ports 20.
As shown in
When the printer hardware 14 detects that a data stream/print job is being received at a port 20, 22, as shown at block 42, the controller 16 then examines or analyzes certain data of the data stream to obtain a preliminary view of the data stream (i.e., to ascertain its format, size, arrangement, organization, etc). Thus, the examination at block 42 may involve a limited review, analysis and/or processing of the data stream received through the ports 20, 22. Next, assuming that the data stream/print job received from the data port 20, 22 is determined to be a normal data stream/print job (i.e., not an interrupt data stream/print job as will be discussed in greater detail below), the data stream/print job is forwarded to a first, primary or normal processor 44.
The primary processor 44 utilizes an emulator or raster image processor 46, in conjunction with a graphics engine 48 to process the data stream. The primary processor 44 and its various components may reside in the controller 16. The primary processor 44 determines the format of the data stream (e.g., Postscript, PCL, XL, or other formats) or is provided the format of the data stream as a result of the examining step at block 42. The primary processor 44 then accesses or utilizes the appropriate emulator to match the format of the data stream. Thus the primary processor 44 may include a Postscript emulator 46a, a PCL emulator 46b, an XL emulator 46c, and/or other emulators 46d, as necessary. For example, if the received data stream is in Postscript format, the primary processor 44 invokes the Postscript emulator 46a.
The primary processor 44, by using the appropriate emulator 46, then processes or “rips” the received data streams on a page-by-page basis by converting the data streams into pages or pagemaps. The pagemaps may be in the form of uncompressed bitmaps, compressed bitmaps, display lists, or any other format which represents a page image and can be read and processed by the print head 18. The emulator 46 may refer to the graphics engine 48 during the processing of the data stream.
Upon conversion, the generated pagemaps are submitted to a page queue 50. The page queue 50 may then provide the pagemap to the print head 18 in the desired order and manner.
The data stream may include embedded flags, markers or other indicators which delineate the start of a page and the end of a page of data. Further, the data stream may include embedded flags, markers or other indicators which delineate the start and end of the data stream/print job. Alternatively, the controller 16 and/or primary processor 44 may add or embed flags, markers or other indicators which delineate the start and end of the data stream. The pages in the page queue 50 may be arranged in any desired manner, such as, for example, first-in-first-out (“FIFO”), last-in-first-out (“LIFO”) or any other desired arranging or ordering scheme.
As shown in
A user may desire to interrupt the normal processing order of data stream. A user may also desire to interrupt the normal printing order in the page queue 50 to print an interrupt print job or pages in an accelerated manner in advance of pages pending in the page queue 50. For example, when the printer 10 includes a scanner 38, a user may desire to make immediate copies of a document by scanning the document and printing out copies in advance of the pages in the page queue 50. For many processors, once a data stream is received and begun to be processed, the processor must continue to process the data stream to its completion. In other words, it may be difficult, inefficient or time consuming for the primary processor 44 to process the interrupt job 66 in advance of the data stream currently being processed. Thus, in order to process and print an interrupt print job 66, an interrupt or secondary processor 68 may be utilized, as will be discussed in greater detail below.
In order to process an interrupt print job, the incoming data stream must first be identified as an interrupt print job (block 42 of
Returning to
Once the operation of the primary processor 44 is suspended, the interrupt processor 68 processes the interrupt data stream (block 78 of
It should be noted that although the primary processor 44 and interrupt processor 68 may be implemented on computer chips or central processing units known as “micro-processors” or “processors,” the primary processor 44 and interrupt processor 68 are not necessarily limited to such devices. Instead, the primary processor 44 and interrupt processor 68 should carry out the processing functions described herein, and may be implemented in or upon, or include micro-processors or processors as described above, as well as central processing units, controllers, chips, computers, circuits or various other hardware and/or software.
As the interrupt processor 68 processes the interrupt data stream 66, the pagemaps are submitted to the page queue 50 (see
Once the pagemaps of the interrupt print job 66 are generated by the interrupt processor 68 and submitted to the page queue 50, the primary processor 44 may resume its processing of any remaining data streams (i.e., print jobs 58, 60, 62) (block 88 of
In the example outlined above, the pagemaps of the processed interrupt data stream 66 are inserted into the front of the page queue 50. However, the pagemaps of the interrupt data stream 66 may be inserted at other locations in the page queue 50. For example, in one embodiment, the pages of the interrupt data stream 66 may be printed at the first job boundary 90 in the page queue 50. For example referring to
The interrupt printing system may be configured to allow various multiple levels of interrupt printing. For example, additional interrupt print jobs may be added in the page queue 50 before or while the original interrupt data stream 66 is processed and/or printed. The newly added interrupt print job(s) may be added after the pending preexisting interrupt print job 66 such that the newly added interrupt print job(s) is printed after the original interrupt print job 66 is processed or printed. Alternatively, the newly added interrupt print job may be printed at the next page break of the original interrupt print job 66 (i.e. in an “interrupt of the interrupt” configuration) and thereby printed in advance of the original interrupt print job 66.
The interrupt processor 68 helps to ensure smooth processing of the interrupt data stream/print job 66. In particular, as outlined above, existing processors (such as the primary processor 44) may not be able to interrupt processing of a print job and/or may be not be configured to allow re-ordering or interrupting of the processing operations, or may not be able to do so in an efficient manner. Accordingly, the use of an interrupt processor 68 provides a second processor to process the interrupt print jobs and ensure smooth transition or reentry back to the primary processor 44 once the interrupt print job(s) is processed. The interrupt processor 68 also allows immediate processing and printing of the interrupt job 60.
Having described the invention in detail and by reference to the preferred nts, it will be apparent that modifications and variations thereof are possible without from the scope of the invention.