Embodiments herein generally relate to printing systems and more particularly to systems and methods that automatically calculate the compatibility of different printers and print drivers and produce a compatibility matrix of such devices and drivers.
In large-scale enterprise printing environments, one challenge is to keep printing costs to a minimum, while not impacting the day-to-day productivity of the employees. Part of that challenge involves ensuring that users can print successfully. Once a user submits a print job, and it does not successfully print, there could be many reasons why the print job was unsuccessful. There may be physical problems with the printer, or network issues that prevent the print job from successfully printing. Or, in environments where a print control system is employed, the print job may be blocked from printing for violating some policy.
Normally, when a print job is unsuccessful, the user needs to resolve the issue, either by calling the help desk and requesting help, or resubmitting the print job to a different device. The job will be spooled again before being sent to the new choice of printer. For large jobs, the repeated process of spooling could take significant time, and impact critical print server resources.
Current solutions require manual setup of redirection rules, and do not ensure that the alternate printer is compatible with the original. Instead, determination of compatibility is left to the user who configured the system. This requires ongoing maintenance to ensure new printers are compatible, and existing redirection rules are accurate. Other solutions force the use of a generic universal print driver, which restricts the functionality of the devices, in order to enable redirection between printers. This is also expensive to implement.
One exemplary method embodiment herein creates a printer compatibility matrix. The methods herein determine which print drivers are being used within a printing environment and identify a plurality of print queues. Each of the print queues is associated with one of the print drivers.
The methods herein submit a plurality of test documents (which are sometimes referred to herein as “witness” documents) to each of the print queues to produce a plurality of page description language (PDL) files. The test documents include printing items spanning a range of items expected to be submitted to the printing environment. Each of the print drivers produces one PDL file for each of the test documents within a corresponding one of the print queues.
The methods herein determine the type of each of the PDL files that were produced by the print drivers in response to the submission of the test documents. Then, the methods herein identify print drivers that produce different types of PDL files as being non-compatible with each other.
Rather than just labeling the other print drivers (that produce the same type of PDL files) as then being compatible (which may not always be the correct conclusion) the embodiments herein go further and compare all commands within header portions of corresponding ones of the same type PDL files (in any order). Then, only if corresponding same-type PDL files produced by different ones of the print drivers (in response to the test documents) contain all identical header commands (in any order) do the embodiments herein identify the different print drivers as being compatible.
Additionally, the methods herein do not just conclude that the remainder of such print drivers are non-compatible. To the contrary, if PDL files produced by different print drivers (in response to the test documents) do not contain all identical header commands, the methods herein identify the different ones of the print drivers as being merely “potentially” non-compatible, and continue to see if conversion/adaptation of the PDL files can make such print drivers compatible.
Thus, for the print drivers identified as being potentially non-compatible, the method embodiments herein perform a command conversion process on the PDL files produced by the potentially non-compatible print drivers to create converted PDL files. The command conversion process converts the commands within the header portions into standardized PDL commands. The embodiments herein can then compare the standardized PDL commands within the converted PDL files.
If corresponding ones same-type of the converted PDL files associated with different ones of the potentially non-compatible print drivers contain all identical header commands, the methods herein identify the different ones of the potentially non-compatible print drivers as being “compatible with adaptation.” However, if the corresponding ones of the converted PDL files associated with different ones of the potentially non-compatible print drivers do not contain identical header commands, the embodiments herein must identify such different ones of the potentially non-compatible print drivers as being non-compatible.
The foregoing allows the embodiments herein to produce a compatibility matrix listing which of the print drivers are non-compatible, which of the print drivers are compatible, and which of the print drivers are compatible with adaptation. Each of the print queues is associated with a target printer. Thus, the compatibility matrix lists which print drivers can be used with target printers.
In another embodiment herein, a computerized device includes a processor, and a communications port operatively connected to the processor. The communications port is also connected to a computerized network external to the computerized device. The computerized device is operatively connected to a printing device and to a plurality of different printing devices through the computerized network.
The processor determines which print drivers are being used within a printing environment. The processor identifies a plurality of print queues. Each of the print queues is associated with one of the print drivers. The processor submits a plurality of test documents to each of the print queues to produce a plurality of page description language (PDL) files. The processor identifies print drivers that produce different types of PDL files as being non-compatible.
If corresponding PDL files produced by different ones of the print drivers in response to the test documents contain all identical header commands (in any order) the processor identifies the different ones of the print drivers as being compatible. If corresponding PDL files produced by different ones of the print drivers in response to the test documents do not contain all identical header commands, the processor identifies the different ones of the print drivers as being non-compatible. The processor produces a compatibility matrix listing which of the print drivers are non-compatible and which of the print drivers are compatible.
These and other features are described in, or are apparent from, the following detailed description.
Various exemplary embodiments of the systems and methods are described in detail below, with reference to the attached drawing figures, in which:
This disclosure describes various processes for determining printer compatibility. Printer compatibility can be determined by a scheduled task, and printer compatibility data is made available to any applications that can make use of it. Printer compatibility is determined by, for example, comparing page description language (PDL) files produced by different drivers and testing the PDL files for adaptability.
With embodiments herein, printer compatibility is determined automatically. No manual determination of printer compatibility is required and input is minimized. The database of printer compatibility information requires no manual maintenance, as long as the printer compatibility process is scheduled to execute periodically.
Provisions are made by embodiments herein to allow the administrator of the print output management system to override the data in cases where the process erroneously determines that two incompatible printers are compatible. In addition, the administrator of the print output management system may choose to force any two printers to be reported as compatible in cases where the process considers them incompatible.
The embodiments herein automatically determine compatibility, require less ongoing maintenance or expensive custom development, reduce the number of help desk calls, and increase the success rate of a user's print job, ensuring minimal impact on user productivity.
The processes and systems herein provide a process that makes use of different technologies to build and store a compatibility matrix for a set of output devices. The process can be scheduled to run in the background at some regular interval. The process may be chosen to be run at a time when no actual printing is allowed. The compatibility matrix that is produced contains information indicating whether automatic redirection of a print document from one output device in the set to another output device in the set is possible without re-spooling. The information in the compatibility matrix may be used in any system that has reason to re-direct print jobs. Examples are load balancing systems, print control systems or systems that attempt to provide a user with an alternative when the printer they tried to use is not available for any reason.
The solutions provided herein are intended for use in an office environment where multiple office level devices are in use, and more than one of those devices is of the same manufacturer/family of devices. This environment yields the best chance that a PDL document that was headed for one device could be automatically re-directed to another.
Many print devices support a common set of page description languages (PCL5, PCL6 and PostScript). By querying the device, one can automatically determine which standard page description language is supported by that device. The fact that two devices support the same page description language implies that a PDL file produced for one device could be re-directed to the other device. In practice, this is not always true because many manufacturers embed non-standard commands in the PDL file produced for their devices. These non-standard commands typically appear in the print job header portion of the PDL file. Non-standard commands in the PDL file may not be recognized by all devices and are likely to cause errors in output produced if that PDL is re-directed to another device.
With embodiments herein, a list of output devices to be tested for compatibility is obtained. For each device to be tested, the following is generally available: the model of the device; the PDL types supported by the device (the device can be queried for this information); and the driver being used for each queue to the device.
The embodiments herein utilize test documents to produce the PDL files, that are never actually printed. These test documents are sometimes referred to herein as “witness” documents and are used to determine which of the output devices being tested are compatible with each other. The witness documents contain data that covers a suitable range of possibilities for printer input (images, text, different fonts, copy count etc.).
The machine that is running the embodiments herein will have access to any applications required to submit the witness documents to output devices. For example, if image files are used as witness documents, then the process must have access to an image viewer that can be used to send the images to a printer. In some cases, a script may be required in order to facilitate automatic submission of the witness documents to print queues. When the embodiments herein are run, each of the witness documents will be submitted to all printers being tested for compatibility, and a copy of each corresponding PDL file produced is captured during spooling.
The processes described herein are automatically carried out and may be run at off-peak times or run in the background. None of the steps described here require any manual intervention.
One exemplary embodiment herein begins by enumerating the print drivers that are being used in the environment. For each print driver being used, this exemplary method selects one queue that uses the print driver. If there are multiple queues that use the same print driver, there is no reason to test both queues during this process.
Next, each witness document is submitted to each queue. The embodiments herein then capture a snapshot of the PDL that is produced, without actually letting the job print. For example, rather than having the PDL file sent to an actual printer, it is redirected to a different location and stored. Alternatively, any known methodology of capturing files being transmitted to printing devices can be utilized with embodiments herein The captured PDL is examined to determine what type of PDL file is being produced by each driver, and the results are recorded.
For each PDL file that was captured, this exemplary method inspects the header portion of the PDL. For each pair of drivers produced, the methods herein compare the commands specified in header of the PDL that was produced. Any comments in the header are ignored. Only commands are considered when comparing same-type PDL. If two same-type drivers produce the same set of commands for all witness documents, then they are considered compatible. The order of appearance of commands in the PDL is not important, as long as all commands appearing in the PDL file produced by both drivers are the same. The embodiments herein then record all cases where two drivers are found to be compatible.
As shown in
Next, the embodiments herein run a PDL adaptation process on all of the PDL files found to be not compatible, above. This process converts the commands found in the PDL header into standard PDL commands in the body of the PDL. While any conversion/adaptation methodology may be utilized with embodiments herein, one exemplary adaptation process is disclosed in co-pending patent application Ser. No. 12/626,750 (U.S. Patent Publication Number 2011/0128563; U.S. Pat. No. 8,451,465) the complete disclosure of which is incorporated herein by reference.
Next, the embodiments herein re-examine the PDL files after the adaptation process. For any driver that produced PDL files with commands that could all be converted to standard PDL, the embodiments herein flag that driver as one that produces completely adaptable PDL files. In the example shown in
Next, using the post-adaptation versions of the PDL files, this exemplary method repeats the process of comparing the commands specified in header of the PDL described above for each driver pair that has not already been determined to be compatible. The embodiments herein flag all new cases where two drivers are found to be compatible with “Requires PDL Adaptation”. Thus, as shown in
With the known information about the print devices being available (summarized in
In some cases, the embodiments herein determine that output from a driver is compatible with a printer, but in practice the two drivers do not turn out to be compatible. The method may also determine that output from a driver is not compatible with a printer when the administrator knows that they are in fact compatible. In order to deal with these potential issues, the embodiments herein provide other optional features. The first is a table of incompatibility overrides. This table contains mappings of drivers to printers that must not be considered compatible. Mappings appearing in the compatibility table are not considered valid if they also appear in this table. The second table is a table of compatibility overrides. This table contains mappings that must be considered compatible. These mappings are added to the list of options for re-direction (if they are not already there) when compatibility data is requested. These additional tables ensure that the data in the compatibility matrix is useful even if the foregoing processes make an incorrect decision about compatibility.
Once the compatibility matrix shown in
Optionally, witness documents are organized into different categories, such as documents that contain images only or text only. This allows the embodiments herein to consider categories and to determine whether two printers that are not always compatible could be considered compatible in certain situations. The embodiments herein then execute the foregoing process, once for each document category. A separate compatibility table is then produced for each document category. In order to make effective use of this data, the systems and methods herein identify incoming print documents as belonging to one of the witness document categories.
A further option herein allows custom witness document categories created by the user or administrator. In this case, an administrator provides a set of witness documents that are treated as a custom document category. The system and methods herein execute the process described above using the provided witness documents. A separate compatibility table is then produced for this custom document type.
The custom witness document type functionality adds effectiveness to this process in environments where a particular type of document makes up a large percentage of the overall set of jobs printed. This functionality allows more printers to be considered compatible in such situations, and greatly increases the instances where print jobs are automatically re-routed without re-spooling. Thus, the print systems/methods herein are able to identify incoming print documents as belonging to the custom document categories, through the document name or some other indicator.
One feature of embodiments herein is that they are fully automatic and they intelligently determine in which cases there is the option to redirect a print job to a device other than the originally intended destination. This allows the system to make some level of guarantees about compatibility without placing a burden on a system administrator to configure the compatibilities.
Further, the compatibility matrix can be created by running a process at a time when no printing is taking place, in order to improve responsiveness of the system. Incorporating these embodiments into a printing environment improves the user experience in any case where their print job was not able to be printed at its original destination print device. The user is able to get their job printed quickly and efficiently by simply selecting one of the alternatives provided to them.
Also, the printing device 300 can include at least one accessory functional component (such as a scanner/document handler 304, sheet supply 302, finisher 308, etc.) and graphic user interface assembly 306 that also operate on the power supplied from the external power source 328 (through the power supply 322).
The input/output device 326 is used for communications to and from the multi-function printing device 300. The processor 324 controls the various actions of the printing device. A non-transitory computer storage medium 320 (which can be optical, magnetic, capacitor based, etc.) is readable by the processor 324 and stores instructions that the processor 324 executes to allow the multi-function printing device to perform its various functions, such as those described herein.
Thus, a printer body housing 300 has one or more functional components that operate on power supplied from the alternating current (AC) 328 by the power supply 322. The power supply 322 connects to an external alternating current power source 328 and converts the external power into the type of power needed by the various components. As shown in
As would be understood by those ordinarily skilled in the art, the printing device 300 shown in
As shown in
The processor 424 determines which print drivers are being used within a printing environment. The processor 424 identifies a plurality of print queues. Each of the print queues is associated with one of the print drivers. The processor 424 submits a plurality of test documents to each of the print queues to produce a plurality of page description language (PDL) files. The processor 424 identifies print drivers that produce different types of PDL files as being non-compatible.
If corresponding PDL files produced by different ones of the print drivers in response to the test documents contain all identical header commands (in any order) the processor 424 identifies the different ones of the print drivers as being compatible. If corresponding PDL files produced by different ones of the print drivers in response to the test documents do not contain all identical header commands, the processor 424 identifies the different ones of the print drivers as being non-compatible. The processor 424 produces a compatibility matrix listing which of the print drivers are non-compatible and which of the print drivers are compatible.
The processor 424 compares all commands within header portions of corresponding ones of the same type PDL files (in any order). Then, only if corresponding PDL files produced by different ones of the print drivers (in response to the test documents) contain all identical header commands (in any order) does the processor 424 identify the different print drivers as being compatible.
Additionally, if PDL files produced by different print drivers (in response to the test documents) do not contain all identical header commands the processor 424 identifies the different ones of the print drivers as being merely “potentially” non-compatible, and continues to see if conversion/adaptation of the PDL files can make such print drivers compatible.
Thus, for the print drivers identified as being potentially non-compatible, the processor 424 performs a command conversion process on the PDL files produced by the potentially non-compatible print drivers to create converted PDL files. The command conversion process converts the commands within the header portions into standardized PDL commands. The processor 424 can then compare the standardized PDL commands within the converted PDL files.
If corresponding ones of the converted PDL files associated with different ones of the potentially non-compatible print drivers contain all identical header commands, the processor 424 identifies the different ones of the potentially non-compatible print drivers as being “compatible with adaptation.” However, if the corresponding ones of the converted PDL files associated with different ones of the potentially non-compatible print drivers do not contain identical header commands, the processor 424 identifies such different ones of the potentially non-compatible print drivers as being non-compatible.
As shown for example in
The methods herein submit different test documents to each of the print queues to produce page description language (PDL) files in item 504. The test documents include printing items spanning a range of items expected to be submitted to the printing environment (images, text, etc.) Each of the print drivers produces one PDL file for each of the test documents within a corresponding print queue.
In item 506, the methods herein determine the type of each of the PDL files that were produced by the print drivers in response to the submission of the test documents. In item 508, the methods herein identify print drivers that produce different types of PDL files as being non-compatible with each other (to item 540).
Rather than just labeling the other print drivers (that produce the same type of PDL files) as then being compatible (which may not always be the correct conclusion) the embodiments herein go further and compare all commands within header portions of corresponding ones of the same-type PDL files (in any order) in item 510. Then, only if corresponding PDL files produced by different ones of the print drivers (in response to the test documents) contain all identical header commands (in any order) do the embodiments herein identify the different print drivers as being compatible (to item 520).
Additionally, the methods herein do not just conclude that the remainder of such print drivers are non-compatible. To the contrary, if PDL files produced by different print drivers (in response to the test documents) do not contain all identical header commands (in item 510) the methods herein identify the different ones of the print drivers as being merely “potentially” non-compatible, and continue to see if conversion/adaptation of the PDL files can make such print drivers compatible.
Thus, for the print drivers identified as being potentially non-compatible in item 510, the method embodiments herein perform a command conversion process on the PDL files produced by the potentially non-compatible print drivers to create converted PDL files in item 512. The command conversion process converts the commands within the header portions into standardized PDL commands. The embodiments herein can then compare the standardized PDL commands within the converted PDL files in item 514.
If corresponding ones of the converted PDL files associated with different ones of the potentially non-compatible print drivers contain all identical header commands in item 514, the methods herein identify the different ones of the potentially non-compatible print drivers as being “compatible with adaptation” (to item 530). However, if the corresponding ones of the converted PDL files associated with different ones of the potentially non-compatible print drivers do not contain identical header commands in item 514, the embodiments herein must identify such different ones of the potentially non-compatible print drivers as being non-compatible (to item 540).
The foregoing allows the embodiments herein to produce a compatibility matrix listing which of the print drivers are non-compatible, which of the print drivers are compatible, and which of the print drivers are compatible with adaptation in item 516. Each of the print queues is associated with a target printer. Thus, the compatibility matrix lists which print drivers can be used with target printers.
Many computerized devices are discussed above. Computerized devices that include chip-based central processing units (CPU's), input/output devices (including graphic user interfaces (GUI), memories, comparators, processors, etc. are well-known and readily available devices produced by manufacturers such as Dell Computers, Round Rock Tex., USA and Apple Computer Co., Cupertino Calif., USA. Such computerized devices commonly include input/output devices, power supplies, processors, electronic storage memories, wiring, etc., the details of which are omitted herefrom to allow the reader to focus on the salient aspects of the embodiments described herein. Similarly, scanners and other similar peripheral equipment are available from Xerox Corporation, Norwalk, Conn., USA and the details of such devices are not discussed herein for purposes of brevity and reader focus.
The terms printer or printing device as used herein encompasses any apparatus, such as a digital copier, bookmaking machine, facsimile machine, multi-function machine, etc., which performs a print outputting function for any purpose. The details of printers, printing engines, etc., are well-known by those ordinarily skilled in the art and are discussed in, for example, U.S. Pat. No. 6,032,004, the complete disclosure of which is fully incorporated herein by reference. The embodiments herein can encompass embodiments that print in color, monochrome, or handle color or monochrome image data. All foregoing embodiments are specifically applicable to electrostatographic and/or xerographic machines and/or processes.
It will be appreciated that the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims. The claims can encompass embodiments in hardware, software, and/or a combination thereof. Unless specifically defined in a specific claim itself, steps or components of the embodiments herein cannot be implied or imported from any above example as limitations to any particular order, number, position, size, shape, angle, color, or material.
Number | Name | Date | Kind |
---|---|---|---|
5271065 | Rourke et al. | Dec 1993 | A |
5819014 | Cyr et al. | Oct 1998 | A |
6032004 | Mirabella, Jr. et al. | Feb 2000 | A |
6529286 | King | Mar 2003 | B1 |
7161705 | Klassen | Jan 2007 | B2 |
20040196496 | Klassen | Oct 2004 | A1 |
20040196497 | Klassen et al. | Oct 2004 | A1 |
20050141007 | Shirai et al. | Jun 2005 | A1 |
20070070377 | Hirabayashi | Mar 2007 | A1 |
20070146767 | Sakura | Jun 2007 | A1 |
20090257082 | Kohli et al. | Oct 2009 | A1 |
20090284783 | Kaneda | Nov 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20120127498 A1 | May 2012 | US |