The same reference number represents the same element on all drawings.
In step 902, the printing system provides at least one snapshot, each snapshot including at least one printer setting for operating a printer. The snapshots may already be stored in memory, may be provided by a printer operator, may be provided with the print job, etc.
In step 904, the printing system associates a snapshot with a print job based on information in the print job. Based on the information in the print job, the print job may be ripped and/or printed to the printer settings in the print job. Ripping involves rasterizing the print job to convert the print job into a bitmap format for printing. Further, the snapshot may be captured for later restoration and use by other print jobs. Should the print job be ripped to a specified snapshot but not be printed before the loaded snapshot on the printer changes, the associated snapshot with the print job may be used to restore the specified printer settings needed for the print job to print.
The associated snapshot with the print job may alternatively be specifically named in the print job. In step 904B, the associating step may further comprise determining the snapshot associated with the print job based on a named specific snapshot in the information in the print job. For example, a print job may comprise the payroll for a company, and a snapshot “Payroll” may be stored on the printer specifying the printer settings desired for payroll jobs. The print job may be received by the printing system and designate the “Payroll” snapshot for the print job. A printer operator may then load the “Payroll” snapshot on the printer before printing the print job.
Alternatively, the associated snapshot with the print job may be determined by the snapshot presently loaded on the printer when the print job is received. In step 904C, the associating step may further comprise determining the snapshot associated with the print job based on a specific snapshot presently loaded on the printer at the time the print job is received by the printer. For example, a print job may not specify an associated snapshot when received by the printing system. However, a snapshot may be presently loaded on the printer when the print job is received. The printing system may associate the presently loaded snapshot on the printer with the print job when the print job is received. The associated snapshot with the print job may specify the printer settings to print the print job, allowing the printer operator to restore the printer settings later to print the print job should the snapshot loaded on the printer change before the print job is printed.
Alternatively, the associated snapshot with the print job may be determined by the snapshot presently loaded on the printer when the print job is ripped. In step 904C, the associating step may further comprise determining the snapshot associated with the print job based on a specific snapshot presently loaded on the printer at the time the print job is ripped by the printer. For example, a print job may not specify an associated snapshot when the print job is ripped by the printing system. However, a snapshot may be presently loaded on the printer when the print job is ripped. The printing system may associate the presently loaded snapshot on the printer with the print job when the print job is ripped. The associated snapshot with the print job may specify the printer settings to print the print job, allowing the printer operator to restore the printer settings later to print the print job should the snapshot loaded on the printer change before the print job is ripped.
In addition to specifying the printer settings for printing a print job, a snapshot may also be used to determine job eligibility for printing a print job, as described below.
The printing system 100 includes a queue 150 for storing received print jobs. The printing system 100 also includes a job eligibility checker 120 communicatively coupled with at least one snapshot 110. The job eligibility checker 120 is adapted to determine eligibility for printing a print job 105 based on at least one printer setting 112 in a snapshot 110 associated with the print job 105 and based on at least one current operating parameter 132 of the printer 130. The job eligibility checker 120 is further adapted to release the print job 105 to the printer 130 for printing responsive to determining that the print job 105 is eligible to be printed on the printer 130.
The snapshot 110 associated with the print job 105 may be embedded in the page description languages (PDL) and/or print job languages (PDL) used for encoding raw print jobs. A print job 105 may be ripped to the printer settings 112 in the snapshot 110. For example, these may include paper size, N-up layout, etc.
The job eligibility checker 120 may determine that because the current operating parameters 132 of the printer 130 do not match the printer settings 112 of the snapshot associated with the print job 105, that the print job 105 may not be eligible to print. For example, the snapshot 110 may comprise a printer setting 112 indicating that the print job 105 is to print on a specified paper size. If the specified paper size is not loaded into the printer 130, the job eligibility checker 120 may determine that the print job 105 is not eligible to print.
For example, if a print job 105 is determined to be ineligible to print, the print job 105 may be held until the current operating parameters 132 of the printer are changed to match the snapshot 110. The job eligibility checker 120 may be configured to periodically re-check a print job 105 being held in an ineligible queue 150 to determine if the print job 105 is now eligible to print. Alternatively, the job eligibility checker 120 may be configured to re-check the print job 105 being held in the ineligible queue 150 to determine if the print job 105 is now eligible to print once the current operating parameters 132 of the printer 130 change. The job eligibility checker 120 may also be configured to change the current operating parameters 132 of the printer 130 to match the relevant printer settings 112 of the snapshot 110, and allow the print job 105 to be eligible to print.
A print job 105 may be held in the ineligible queue 150 until the printer settings 112 become available in the current operating parameters 132 of the printer 130. The print job 105 may be held as a raw print job, and may be ripped when the job eligibility checker 120 determines that the print job 105 becomes eligible to print. In an alternate embodiment, an ineligible print job 105 may not be released to the printer 130 for printing, but the print job 105 may still be ripped, with the output bitmaps of the print job 105 stored in the queue 150, awaiting the loading of the specified printer settings 112 of the snapshot 110 associated with the print job 105. This allows improved printer 130 through-put by taking advantage of spare processing cycles while other print jobs are printing.
Those of ordinary skill in the art will readily recognize a variety of additional features and functions useful or required within a fully operational printing system 100. Such additional functions and features are omitted herein simply for brevity of this description. Still further, the functional elements shown in
The printing system is provided with at least one snapshot 220, each snapshot 220 including at least one printer setting for operating a printer. The snapshots 220 may already be stored in memory, may be provided by a printer operator, may be provided with the print job, etc.
In step 202, the printing system receives a print job. In step 204, the printing system queues the print job. Those of ordinary skill in the art will readily recognize a variety of techniques are available for receiving a print job and placing the print job in a queue.
In step 206, an asynchronous process on the print system awaits a queued print job. A queued print job may comprise a newly received print job, or a previously held print job in the queue, etc.
In step 208, the printing system determines eligibility for printing the print job based on at least one printer setting in a snapshot 220 associated with the print job and based on at least one current operating parameter of the printer. To determine eligibility of the print job to print, the printer settings of the snapshot 220 may be considered. The print job may be determined ineligible to print if at least one of the printer settings does not match the current operating parameters of the printer. Otherwise, if the current operating parameters of the printer match the printer settings of the snapshot 220, then the print job may be printed.
In step 210, if the print job is determined eligible to print, then the print job is released for printing. In step 212, if the print job is determined ineligible to print, then the print job is marked as held in the queue. If the print job is determined ineligible to print because at least one printer setting specified as relevant to determining eligibility in the snapshot associated with the print job, then the print job is held until the print job becomes eligible to print. Ineligible print jobs may periodically be re-evaluated to determine whether the print job has become eligible to print based on a change of the current operating parameters of the printer.
Printing system 300 also includes a job eligibility checker 320 communicatively coupled with at least one snapshot 310. The job eligibility checker 320 is adapted to determine eligibility for printing a print job 305 based on at least one printer setting 312 in a snapshot 310 associated with the print job 305 and on at least one current operating parameter 332 of the continuous form printer 330. The job eligibility checker 320 is further adapted to release the print job 305 to the continuous form printer 330 for printing responsive to determining that the print job 305 is eligible to be printed on the continuous form printer 330.
The printing system 300 further comprises a queue 350 for storing print jobs. The queue 350 may receive a print job 305 and store the print job 305 until the print job 305 is eligible to print and is released to the continuous form printer 330.
The printing system 300 further comprises a user interface 340 communicatively coupled with the job eligibility checker 320. The user interface 340 may be adapted to allow a printer operator to manually release the print job 305 to the continuous form printer 330 for printing. The user interface 340 may further be adapted to allow the printer operator to change at least one current operating parameter 332 of the continuous form printer 330.
The print job 305 may identify a snapshot 310 to be used by the job eligibility checker 320 to determine that the print job 305 is eligible to be printed on the continuous form printer 330. The printer settings 312 in a snapshot 310 may be configured to have an influence on the eligibility of the print job 305. For example, each printer setting 312 of the snapshot 310 may have corresponding eligibility criteria 314, which may be a Boolean value. The eligibility criteria 314 may specify whether the printer setting 312 is relevant to determining eligibility for printing of the print job 305. A printer setting 312 that is critical to the print job 305, such as a paper size, may have the Boolean value of eligibility criteria 314 for the printer setting 312 set to true. This may mean that the particular current operating parameters 332 of the printer must match the printer setting 312 (i.e., that paper size is available in the printer) of the snapshot 310 associated with the print job 305. The job eligibility checker 320 may determine that because the current operating parameters 332 of the continuous form printer 330 do not match the relevant printer setting 312 of the snapshot associated with the print job 305, that the print job 305 may not be eligible to print. For example, the snapshot 310 may comprise a printer setting 312 indicating that the print job 305 is to print on 11″ by 18″ sized paper. The eligibility criteria 314 may be set to true for that printer setting 312. If 11″ by 18″ sized paper is not loaded into the continuous form printer 330, the job eligibility checker 320 may determine that the print job 305 is not eligible to print.
On the other hand, a printer setting 312 may designate a non-critical state for the current operating parameters 332 of the printer. This may indicate that the print job 305 is desired to print with the designated printer setting 312, but the user may be unwilling to allow the print job 305 to be held if the printer setting 312 is not matched in the current operating parameters 332. In this case, the eligibility criteria 314 for the printer setting 312 may be set to false. If the current operating parameters 332 of the continuous form printer 330 do not match the printer setting 312 of the snapshot 310, the job eligibility checker 320 will determine that the print job 305 is eligible to print, because the specified printer setting 312 is indicated as not affecting the eligibility of the print job 305. For example, the snapshot 310 may comprise a printer setting 312 indicating that the print job 305 is to print on heavy paper. The eligibility criteria 314 may be set to false for that printer setting 312, indicating that the printer setting 312 is not relevant to determining eligibility to print. If heavy paper is not loaded into the continuous form printer 330, then the job eligibility checker 320 may determine that the print job 305 is eligible to print, and the print job 305 may be released to the continuous form printer 330 for printing.
If a print job 305 is determined to be ineligible to print, the print job 305 may be held until the current operating parameters 332 of the printer are changed to match the snapshot 310 associated with the print job 305. The job eligibility checker 320 may be configured to periodically re-check the print job 305 being held in the ineligible queue 350 to determine if the print job 305 is now eligible to print. Alternatively, the job eligibility checker 320 may be configured to re-check the print job 305 being held in the ineligible queue 350 to determine if the print job 305 is now eligible to print once the current operating parameters 332 of the continuous form printer 330 change. The job eligibility checker 320 may also be configured to change the current operating parameters 332 of the continuous form printer 330 to match the relevant printer settings 312 of the snapshot 310 and allow the print job 305 to be eligible to print.
A print job 305 may be held in the ineligible queue 350 until the relevant printer settings 312 become available in the current operating parameters 332 of the continuous form printer 330. The print job 305 may be held as a raw print job 305, and may be ripped when the job eligibility checker 320 determines that the print job 305 becomes eligible to print.
If the print job 305 does not specify an associated snapshot 310, then the printing system 300 may automatically set the associated snapshot 310 for the print job 305 to a predetermined snapshot 310. For example, the predetermined snapshot 310 may correspond to the current operating parameters 332 of the continuous form printer 330 (e.g., the current snapshot loaded in printer 330). The predetermined snapshot 310 may also correspond to a default snapshot 310 of the continuous form printer 330, or may correspond to another snapshot 310 captured by the printer operator for later restoration. The current operating parameters 332 of the continuous form printer 330 may be automatically changed to match the printer settings 312 in the snapshot 310 associated with the print job 305 received by the printing system 305. The printer settings 312 for operating the continuous form printer 330 may include form settings, printer definitions, print quality, and print registration. The printer settings 312 for operating the continuous form printer 330 may further include physical paper size, physical paper weight, media type, IPDS resolution, contrast, boldness, oil rate and fuser temperature.
Those of ordinary skill in the art will readily recognize a variety of additional features and functions useful or required within a fully operational printing system 300. Such additional functions and features are omitted herein simply for brevity of this description. Still further, the functional elements shown in
In step 402, the printing system provides at least one snapshot, each snapshot including at least one printer setting for operating a printer. The snapshots may already be stored in memory, may be provided by a printer operator, may be provided with the print job, etc. The printer settings may further comprise eligibility criteria, indicating which of the printer settings of the snapshot is relevant to determining eligibility of the print job to print.
In step 404, the printing system may receive a print job. The print job may identify a snapshot to be used to determine whether the print job is eligible to be printed on the printer. If no snapshot is associated with the print job, then a predetermined snapshot may be associated with the print job. The predetermined snapshot may further comprise a snapshot corresponding to the current operating parameters of the printer may be associated with the print job. A next job may also be retrieved or received from the queue 450. The queue 450 may store newly received print jobs as well as held ineligible print jobs.
In step 406, the printing system determines eligibility for printing the print job based on at least one printer setting in a snapshot associated with the print job and based on at least one current operating parameter of the printer. The printer settings of the snapshot may indicate whether a particular printer setting is relevant to determining eligibility of the print job to print. To determine eligibility of the print job to print, the indicated printer settings relevant to eligibility may be considered, while the printer settings indicated as irrelevant to eligibility may be ignored. The print job may be determined ineligible to print if at least one of the indicated printer settings relevant to eligibility does not match the current operating parameters of the printer. Otherwise, if the current operating parameters of the printer match the indicated printer settings relevant to eligibility, then the print job may be printed. The printer settings indicated as irrelevant to eligibility may be ignored, so if a printer resource indicated by the snapshot is unavailable, the print job may still be eligible to print.
In step 408, if the print job is determined eligible to print, then the print job is released for printing. In step 410, after the print job is released for printing, the printing system may check the queue for held jobs that have updated eligibility and are now available for printing. The printing system may also wait for a new print job. The method may further include changing at least one current operating parameter of the printer, and determining eligibility for printing the print job that has not been released for printing based on at least one printer setting in the snapshot associated with the print job and based on at least one current operating parameter of the printer. If the print job is determined to be eligible to print, the print job is released for printing in step 408. The cycle begins again at step 404 once a new print job is received or an ineligible job becomes eligible for printing.
In step 412, if the print job is determined ineligible to print because at least one printer setting specified as relevant to determining eligibility in the snapshot associated with the print job, then the print job is held until the print job becomes eligible to print because of a change of the operating parameters of the printer.
Those of ordinary skill in the art will readily recognize a variety of techniques for choosing the next print job to be printed. For example, the printer may use a first in first out method, may use a job priority method, a source of job method, may always check ineligible jobs before printing new jobs, etc.
In step 502, the printing system provides a set of eligibility criteria in a snap shot. The eligibility criterion comprise a printer setting, the set of eligibility criteria indicating whether the printer settings are relevant to determining the eligibility to print a print job associated with the snapshot. The printer settings that are relevant to determining the eligibility to print the print job comprise a relevant printer setting.
In step 504, the printing system receives a print job associated with the snapshot and stores the print job in a queue. In step 506, the printing system determines the set of current operating parameters of the printer.
In step 508, the printing system compares the set of current operating parameters of the printer with the set of eligibility criteria for the snapshot associated with the print job to determine if all of the relevant printer settings of the set of eligibility criteria match the set of current operating parameters of the printer.
In step 510, the print job is released from the queue if all of the relevant printer settings match the set of operating parameters of the printer. If all of the relevant printer settings do not match the set of operating parameters of the printer, then the print job is held in the queue. In step 512, responsive to releasing the print job from the queue, the print job is printed.
As noted above, in step 504, a print job is received with an associated snapshot. In some cases, the print job may not have an associated snapshot for the printing system to determine job eligibility.
In step 602, the printing system receives a print job with no associated snapshot. In step 604, the snapshot associated with the print job is set to the snapshot corresponding to the set of current operating parameters of the printer (e.g., a predetermined or default snapshot). If a print job is received with no corresponding snapshot, then the print job may be ripped to the presently loaded snapshot of the continuous form printer and held in the queue. After the print job is ripped, the current operating parameters of the continuous form printer may change and may be no longer compatible with the print job. By associating a snapshot with the print job, the printer operator may restore the continuous form printer back to the printer settings that the print engine had when the print job came in and was ripped to so the print job may be printed. In step 606, the print job is released for printing.
As noted above in method 500, a print job is released from the queue if all of the relevant printer settings of the set of eligibility criteria match the set of operating parameters of the printer. However, if the current operating parameters of the printer never change, a print job may always be determined ineligible. It may become necessary to change the current operating parameters of the printer to make a print job eligible to print.
In step 702, the print job is held in the queue. In step 704, at least one current operating parameter of the printer is changed. The current operating parameters of the printer may be changed automatically by the printing system, or may be changed manually by a printing operator.
In step 706, the current operating parameters are compared with the relevant printer settings of the set of eligibility criteria for the snapshot associated with the print job.
In step 708, if all of the relevant printer settings of the snapshot associated with the print job match the current operating parameters of the printer, then the print job is released from the queue for printing. Otherwise, the print job is held in the queue if at least one of the relevant printer settings of the snapshot associated with the print job does not match the current operating parameters of the printer. The eligibility of the print job held in the queue may be periodically re-checked to determine if the print job has become eligible to print. In step 710, responsive to releasing the print job for printing, the print job is printed on the printer.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium 812 providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor 800 coupled directly or indirectly to memory elements 802 through a system bus 850. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices 804 (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. One particular I/O device useful in a data processing system adapted as a printing system 100 is a print engine interface 810 for coupling the printing system 100 to the signals and protocols of the print engines adapted for marking pixels on paper.
Network adapters or other host system interfaces 808 may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or storage devices through intervening private or public networks. Modems, cable modems, IBM Channel attachments, SCSI, Fibre Channel, and Ethernet cards are just a few of the currently available types of network or host interface adapters.
Although specific embodiments were described herein, the scope of the invention is not limited to those specific embodiments. The scope of the invention is defined by the following claims and any equivalents thereof.