Abstract:
The present invention includes as one embodiment a method for ascertaining resource requirements of a print job sent to a printer via a print driver. The method includes creating a document of the print job with the print driver and reading the print job into memory directly from the print driver, sampling a task requiring a consumable resource to provide a sample by overlaying a sample window over a portion of the document and providing low resolution level analysis data with respect to resource requirements of the task, analyzing the sample window and low resolution level analysis of the task with respect to resource requirements thereof and providing task sample requirement data in response thereto and ascertaining the resource requirements of the task based on the task sample requirement data.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of Invention 
     This invention relates to printers, plotters and other such devices. Specifically, the present invention relates to systems and methods for analyzing print job requirements and estimating printer or plotter resource availability for same. 
     2. Description of the Related Art 
     Job length assurance is a feature being designed into state of the art printers, plotters and other devices employing consumable resources. Job length assurance involves: 1) monitoring of printer resources (e.g. toner); 2) analyzing print jobs to estimate the resource requirements for same; and 3) either printing the job or providing an indication of insufficient resources. 
     Numerous methods are known in the art for determining the amount of resources required for a given print job. See for example, U.S. Pat. No. 5,937,225, issued Aug. 10, 1999 to D. J. Samuels and entitled PIXEL COUNTING TONER OR INK USE MONITOR AND PIXEL COUNTING METHOD FOR MONITORING THE TONER OR INK USE and the references cited therein, the teachings of which are incorporated herein by reference. These references illustrate that conventional techniques for analyzing the print job to estimate resource, particularly toner, requirements require a number of calculations by the printer driver on the computer and/or the printer. For each job, the driver must typically rasterize each of a number of jobs that may be in the queue. 
     As the number and intensity of the calculations may unduly burden the computer and the printer and delay print and other operations, a need remains in the art for a system or method for analyzing print job requirements more quickly and easily for job length assurance applications. 
     SUMMARY OF THE INVENTION 
     The need in the art is addressed by the systems and methods for ascertaining resource requirements of the present invention. One embodiment of the invention provides a method for ascertaining resource requirements including the steps of: sampling a task requiring a consumable resource to provide a sample; analyzing the sample of the task with respect to resource requirements thereof and providing task sample requirement data in response thereto; and ascertaining the resource requirements of the task based on the task sample requirement data. 
     In a specific implementation of the invention, the method further includes the steps of reading a file containing the document into a buffer; formatting the file in the buffer in print format; overlaying a sample window over the print formatted file in the buffer, the window having an area of 1/x times the area of the document, and performing a Raster Image Processing analysis within the sample window to determine window coverage. The step of ascertaining the resource requirements of the task further includes the step of multiplying the window coverage by x to determine the page coverage of the document. The page coverage is then multiplied by the number of pages in the task to determine job requirements. Job requirements are then compared to available resources and the job is executed if sufficient resources are available. Otherwise, a message is displayed or resources are automatically provided if such capability is enabled. 
     In a second embodiment, the inventive method includes the steps of: sampling a task requiring a consumable resource to provide low resolution level analysis data with respect to resource requirements of the task and comparing the low level analysis data to data relating to an availability of the resource and providing an output in response thereto. In a more specific implementation of the second embodiment, actual data is used to improve the accuracy of the low level analysis. 
     The two embodiments may be used in combination for further improvements in speed and further reductions in computational intensity. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram showing a network topology consistent with the teachings of the present invention. 
         FIG. 2  is a block diagram of an illustrative implementation of a client computing system adapted for use in accordance with the teachings of the present invention. 
         FIG. 3  is a diagram showing the architecture of the client system software in accordance with the present teachings. 
         FIG. 4  is a flow diagram illustrating the segmenting method of sampling a print job to ascertain the consumable resource requirements thereof in accordance with the teachings of the present invention. 
         FIG. 5  is a flow diagram illustrating the low resolution method of sampling a print job to ascertain the consumable resource requirements thereof in accordance with the teachings of the present invention. 
     
    
    
     DESCRIPTION OF THE INVENTION 
     While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility. 
       FIG. 1  is a block diagram showing a network topology consistent with the teachings of the present invention. As shown in  FIG. 1 , the system  10  includes a number of client machines (of which five are shown for illustration)  20 ,  22 ,  24 ,  26  and  28  which are connected to a print server  30  via a network  40 . A printer  50  is shown as is typical in a local area network (LAN) configuration. However, a printer may be driven by any of the client machines directly. Further, those skilled in the art will appreciate that the teachings of the present invention are not limited to LAN implementation. The present teachings may be utilized in an Internet, Intranet, wide area network (WAN), wireless or other network topology. 
       FIG. 2  is a block diagram of an illustrative implementation of a client computing system adapted for use in accordance with the teachings of the present invention. The client system  20  includes a central processing unit  200  which communicates with the network  40  via a network interface  210 . Also included is a conventional printer interface  212 . The CPU  200  executes software stored in a random-access memory  220 , a read-only memory  230  and a storage medium  240  and communicates with a user via an input/output interface  250  in a manner well-known to those skilled in the art. 
     As discussed more fully below, the client system  20  executes a variety of software applications such as word processing programs, spreadsheets, etc. (referred to herein as the “native” application) as is currently common practice. When a user, working in an application, desires to print a document, a print command is executed which issues a ‘print job’ to the printer  50 . 
       FIG. 3  is a diagram showing the architecture of the client system software in accordance with the present teachings. The client side software architecture  300  includes a native application  302  which communicates with a user interface  304  and print driver  306 . In response to user inputs, in a normal local print mode, the print job is passed to the printer (not shown) via the print driver  306 , and a port monitor  308  monitors the printer port  212  which is under control of the operating system  312 . In a network printing scenario, the print job is passed to the network printer ( 50 ) via the print driver  306  and network interface  310  under control of a network operating system running on the print server  30 . 
     On receipt of the print job, the driver  306  performs a job length assurance analysis. As mentioned above, job length assurance is a feature being designed into state of the art printers, plotters and other devices employing consumable resources. Job length assurance involves: 1) monitoring of printer resources (e.g. toner); 2) analyzing print jobs to estimate the resource requirements for same; and 3) either printing the job or providing an indication of insufficient resources. 
     Numerous methods are known in the art for determining the amount of resources required for a given print job. See for example, the above-cited U.S. Pat. No. 5,937,225, issued Aug. 10, 1999 to D. J. Samuels and entitled PIXEL COUNTING TONER OR INK USE MONITOR AND PIXEL COUNTING METHOD FOR MONITORING THE TONER OR INK USE and the references cited therein, the teachings of which have been incorporated herein by reference. These references illustrate that conventional techniques for analyzing the print job to estimate resource, particularly toner, requirements require a large number of calculations by the printer driver on the computer and/or the printer. For each job, the driver must typically rasterize each of a number of jobs that may be in the queue. Rasterizing the job involves analyzing each document to compute a ratio of laser on and laser off times. This ratio provides an indication of the amount of toner and other resources to be consumed by the job. This calculation is time intensive and is conventionally performed for each document. As the number and intensity of the calculations may unduly burden the computer and the printer and delay print and other operations, a need exists in the art for a system or method for analyzing print job requirements more quickly and easily for job length assurance applications. 
     The present invention addresses this need. There are two significant features of the invention. A first feature results from a provision of a system for segmenting the document to provide a sample window. A RIP (Raster Image Processing) analysis is performed with respect to the sample to determine a ratio of laser on and laser off times for same. On the basis of the RIP analysis with respect to the sample data, the requirements of the entire document are estimated. The resource requirements of the entire job are then estimated, page by page, in a similar manner and compared to a resource (e.g. toner) availability data provided by the printer. If adequate resources are available, the job is printed. If adequate resources are not available, a message is provided to the user or, if the printer is automatically supplied with additional resources. This is illustrated in  FIG. 4 . 
       FIG. 4  is a flow diagram illustrating the segmenting method of sampling a print job to ascertain the consumable resource requirements thereof in accordance with the teachings of the present invention. In accordance with the inventive method  400 , at step  402 , each document in the print job is read into a buffer. At step  404 , the document is organized in the buffer in a print format. This format is consistent with the layout of the document on the print media. Next, a sample window is overlayed over the document in memory (step  406 ). In practice, this would involve reading data in the buffer associated with the document from predetermined row and column memory locations so as to create an area of known size, less than the total anticipated size of the printed document. That is, if the document has an area A, the window might have a size of ¼ A. 
     Within the window, the laser on and off times are computed in accordance with the conventional RIP analysis at the desired resolution of the print document (step  408 ). The on/off times computed within the window are multiplied by a scale factor x to determine the page coverage (step  410 ). In the present example, x is ‘4’. At step  412 , the page coverage is multiplied by the number of pages to determine the job requirements. As an alternative, steps  402 – 410  could be repeated for each page in the job to ascertain the job requirements. 
     In any event, in steps  416 – 424 , the job requirements are compared to the printer resources (steps  416 ,  418 , and  420 ) and if sufficient resources are not available, a message is displayed (step  422 ) advising the user that toner or paper are low. If sufficient resources are available, then at step  424 , the document is printed. 
     A second feature of the invention resides in a provision of a system for performing a RIP analysis of the entire document (or job) at a first low level of resolution (e.g. 50 dots per inch) and comparing the result to printer resource data. If adequate resources are available, the job is printed. (Those skilled in the art will appreciate that the invention is not limited to a 50 dpi implementation. Other “low” resolution levels may be used without departing from the scope of the present teachings.) Actual resource consumption data is then used to improve on future estimates. If adequate resources are not available, a message is provided to the user or, the printer is automatically supplied with additional resources is an automated replenishment system is provided. This is depicted in  FIG. 5 . 
       FIG. 5  is a flow diagram illustrating the low resolution method of sampling a print job to ascertain the consumable resource requirements thereof in accordance with the teachings of the present invention. In accordance with the inventive method  500 , first a print job is initiated  502 , next, at step  504  each document in the print job is read into a buffer and organized in a print layout format as per steps  402  and  404  as per the method  400  depicted in  FIG. 4 . At step  504 , a RIP analysis is performed on each document in the job at a first low level of resolution, e.g. 50 dots per inch (dpi). If any portion of a low level pixel analyzed to contain print “turns on” the entire pixel. As an alternative, in accordance with the teachings provided in the flow chart  400  above, the low level RIP analysis may be performed within a window on each document. The low level requirements for each document may be extrapolated in the manner provided above. 
     In any event, the process is repeated for each document in the job to ascertain the job requirements. Then at steps  506 – 514 , the job requirements are compared to the printer resources (steps  506 ,  508  and  510 ) and if sufficient resources are not available, a message is displayed (step  512 ) advising the user that toner or paper are low. If sufficient resources are available, then at step  514 , the document is printed. 
     At step  516 , the actual resources required to print the job are computed. This data may be supplied on command by the printer which would simply subtract the toner supply after printing the job from the supply before printing the job. At step  518 , the actual requirements are compared to the requirements predicted by the low level RIP analysis and, at step  520 , a correction factor or error value is computed. This correction factor is used at step  522  to update the RIP data to more accurately estimate future jobs. 
     Those skilled in the art will appreciate that the systems and methods disclosed herein provide a method for performing a job length analysis that is less computationally intensive and substantially faster than the conventional technique. 
     Thus, the present invention has been described herein with reference to a particular embodiment for a particular application. Those having ordinary skill in the art and access to the present teachings will recognize additional modifications, applications and embodiments within the scope thereof. 
     It is therefore intended by the appended claims to cover any and all such applications, modifications and embodiments within the scope of the present invention.