The present invention relates to a printing system and associated methods to conduct conflict checks in printing operations. More particularly, the present invention relates to enabling dynamically configured conflict checking for print settings.
Print engines in printing devices support a defined set of print instructions. For example, a printing device may support a specific range of paper weights and sizes. Print engines also may have constraints around combinations of print ticketing values. Finished jobs, for example, only may be delivered to a subset of available trays. Print drivers, print submission utilities and, for digital front ends, the job management user interface all enforce printing ticketing constraints and conflicts between print ticketing settings. The conflicts, however, are hard coded. The conflicts may be adjusted based on the device's configuration. For example, larger paper sizes may be supported by an optional feeder. These adjustments, however, consist of adding or removing conflict checks that are themselves hard coded, or static.
A method for dynamic conflict checking for printing operations is disclosed. The method includes setting a plurality of configurable attributes relating to printing operations at a digital front end (DFE) of a first printing device. The method also includes defining a first plurality of settings for the first printing device based on the plurality of configurable attributes. The method also includes modifying the first plurality of settings based on a conflict with at least one of the plurality of configurable attributes. The method also includes storing the first plurality of settings in a first device capabilities file. The method also includes providing the first plurality of settings using the first device capabilities file during the printing operations at the first printing device.
A method for resolving conflicts between printing device settings for printing operations. The method includes defining a first setting for printing operations. The first setting corresponds to a plurality of configurable attributes. The method also includes defining a second setting for the printing operations. The second setting is dependent on the first setting and corresponds to a plurality of sub-attributes. The method also includes assigning a first plurality of settings including the first setting and the second setting to a device capabilities file. The method also includes providing the first plurality of settings within the device capabilities file. The method also includes selecting a printing device to receive a first print job to implement the first plurality of settings. The method also includes determining whether the first plurality of settings for the first print job are valid for the printing operations at the first printing device.
A printing system is disclosed. The printing system includes a first printing device, a processor, and a memory storing instructions. The instructions, when executed on the processor, configure the printing system to set a plurality of configurable attributes related to printing operations at the first printing device. The instructions also configure the printing system to define a first plurality of settings for the first printing device based on the plurality of configurable attributes. The instructions also configure the printing system to modify the first plurality of settings based on a conflict with at least one of the plurality of configurable attributes. The instructions also configure the printing system to store the first plurality of settings in a first device capabilities file. The instructions also configure the printing system to provide the first plurality of settings using the first device capabilities file during printing operations at the first printing device.
Various other features and attendant advantages of the present invention will be more fully appreciated when considered in conjunction with the accompanying drawings.
Reference will now be made in detail to specific embodiments of the present invention. Examples of these embodiments are illustrated in the accompanying drawings. Numerous specific details are set forth in order to provide a thorough understanding of the present invention. While the embodiments will be described in conjunction with the drawings, it will be understood that the following description is not intended to limit the present invention to any one embodiment. On the contrary, the following description is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the appended claims.
Existing conflict checking implementations may not support truly dynamic conflicts. This aspect makes it difficult to implement conflict checking for dynamically configured print settings. Conflict checking for these sort of print tickets would need to support arbitrary, user-defined values for print settings. In addition, the conflict checking would support valid attribute value combinations that are dynamically-defined by the user. The disclosed embodiments provide a printing system to enable conflict checking for print settings with arbitrarily-defined values. The disclosed embodiments also support dynamically-defined attribute value combinations.
The disclosed embodiments may implement a number of different ways to achieve these features depending on the dynamic attributes. Attributes may be configured by an administrator and used by an operator, who cannot change the available values. When the administrator defines the valid settings, the printing system will add these to a device capabilities file that is then used to populate the print ticketing user interface. The user may be presented with valid options based on the dynamically-configured user interface. To the user, the user interface may present a statically-defined set of values. These values, however, are configured uniquely for each system. The attributes are added to the capabilities as part of the configuration.
For attributes that may be configured by a user, such as print condition, the printing system will add new values to the device's capabilities. The user also may remove values in the same manner. Unlike the previous type of attribute, in this instance, the client application, such as the print driver, print submission application, or digital front end (DFE) user interface, must monitor the printing system's capabilities file for changes. When the file changes, the printing system should retrieve it and update its conflict checking with the updated information.
Multi-attribute conflicts would depend on the relevant configuration. In this instance, the user may store settings with a dependency on another setting. The user would define arbitrary values for one attribute in the context of values for another attribute. These contexts would represent the valid combinations that would need to dynamically be added to the conflict checking configuration.
For example, the printing system may store color adjustment presets that can be used to allow the tweaking of a print job's appearance. These presets may be adjustments to how the colors are reproduced. For example, adjustment to the hue or increasing contrast by a certain amount may occur. Several adjustment settings may be stored as a preset for easy recall. These adjustments may be assigned to a customer or a project. The customer or project attributes may be dynamic as disclosed above. The user or administrator defines the valid values for a given system.
For most cases, the adjustment data in the printing system contains the valid combination. For example, customer 1 supports adjustment 1, adjustment 2, and adjustment 3 while customer 2 supports adjustment 2 and adjustment 4. When the user selects attributes, the conflict checking engine evaluates the attributes to ensure that they are a valid combination. If the combination is not valid, then the printing system displays an error to the user. Additionally, if the user defines 1 value and not the other, then the conflict checking engine may be used to subset the values for the second attribute to only show valid values.
The features disclosed above may be extended to support N attributes. For example, a calibration may be associated with N papers or a specific type of media, a specific halftone, and a specific resolution. The disclosed embodiments would work in the same manner as above but the evaluation would involve N attributes. The features disclosed above would extend conflict checking to user-managed resources such as calibrations, spot color definitions, ICC profiles, color adjustments, paper catalogs, and the like. This sort of conflict checking makes using these sort of resources a lot simpler for users as arbitrary, multi-attribute constraints are created and enforced automatically.
The disclosed embodiments also enable adjustments to the dynamic conflict checks based on device configuration. The disclosed embodiments also use multiple severity levels for dynamic conflicts. Specifically, the disclosed embodiments implement a device capabilities file that covers all possible device configurations, including configurations that are mutually exclusive. For example, the feeders and finishers for printing systems or devices may be mutually exclusive.
For example, only one of two feeders and only one of two finishers may be installed on a printing device. These devices have different capabilities and constraints. As such, the different constraints should be reflected in the dynamic conflict checking. The disclosed embodiments provide a system that will list capabilities and conflicts for all modules in a printing device.
During startup, the printing system determines which devices are actually installed with the printing device and adjusts the following items to match the device configuration. These items include available print ticket settings. Available print ticket settings, for example, which includes items like stapling will not be available if the stapler is not installed. The items also include values for print ticket settings. For example, staple options may be limited to corner and side stapling if the booklet maker is not added to the finisher. Additionally, the printing system may adjust the dynamically configured conflicts based on the system configuration. For example, the maximum number of sheets that can be stapled will be based on which finisher option is installed with the printing device.
The disclosed embodiments also implement multiple severity levels for conflicts. The device capabilities would be extended so that they include more than just the inter-attribute conflicts but also severity levels for these inter-attribute conflicts. These severity levels would, in turn, result in different behavior. For example, a conflict may be detected between the number of pages in the print job and the maximum number of sheets that the currently-installed finisher that includes an error severity. If the operator chooses a combination of these attributes which is invalid, the printing system should display an error message next to each of these attributes with information letting the user know that the selected value conflicts with the selected value from the other attribute. The error messages may be for all attributes that conflict with each other. Given the severity of an error conflict, the printing system would prevent the operator from completing the operation, such as submit the job, add a paper catalog entry, reconfigure a tray, and the like, without first resolving the conflict.
A conflict between the selected print order and finishing may have a warning severity. If the operator chooses a combination of attributes that is invalid, then the printing system should display a warning message next to each of the attributes with information letting the operator know how the printing system will handle the conflict. For example, if the operator chooses forward, face down printing and stapling, then the printing system will display a warning icon and provide information to the operator letting him/her know that the print job will print in reverse, face up order as this is required by the finisher.
Conflicts with a warning severity will not prevent the operator from completing the operation but they will let the operator know that the printing system will not honor one of the conflicting settings. Alternatively, the printing system may provide the operator the option to auto-resolve the conflict. For example, in the previous scenario, the printing system may display a “fix conflict” button that the operator can click on to resolve the warning error. If the operator chooses to automatically fix the conflict, then the printing system would, in this example, change the print sequence from forward, face down to reverse, face up. If the operator chooses to submit the print job with the conflict, then the printing system will update the job status to reflect the fact that the job, while successfully completed, had active warnings.
A conflict between the selected paper and the user-defined print condition may have an informational severity. Print conditions are used to allow 1-click selection of alternate color management settings for specific papers in the paper catalog. For example, the operator selects a paper for which a print condition is not specified. In that case, the printing system will fall back to the default color management settings for the paper. Conflicts with an informational severity do not change how the print job is produced but may result in unexpected output so this sort of conflict is considered to be less severe than a warning, in which the printing system overrides operator selections, or an error, in which the printing system will not allow the operation to complete. If the operator chooses to submit the print job with the conflict, then the printing system will update job status to reflect the fact that the print job, while successfully completed, was not produced as specified.
The disclosed printing system may have multiple conflicts active at the same time and these may be of different severities. The printing system may display conflicts separately within a designated area based on their severity.
Printing device 104 receives print jobs through printing system 100, such as print job 103. After processing print job 103, printing device 104 prints or produces document 105 in a paper or media specified by the print job. Printing device 104 is disclosed in greater detail in
DFE 106 may use RIP firmware 290, shown in
Print engine 260, shown in
As noted above, print job 103 may be created at client device 102. Print job 103 includes a print ticket 110. Print ticket 110 includes one or more job settings 112. Job settings 112 may relate to a property of print job 103, such as the number of sheets to be printed or whether print job 103 includes a cover. Job settings 112 include parameters for print job 103, such as the type of media or paper used, texture, hole type, finishing instructions, and the like. Jobs settings 112 each may have attributes associated therewith. For example, an attribute for a type of paper may be the weight of the paper. For a cover, an attribute may be the cover weight. Attributes also are related to constraints imposed by printing device 104 on print jobs.
Printing device 104 also includes finisher 211. Finisher 211 performs finishing actions specified by job settings 112 of print job 103. For example, finisher 211 may include a stapler 114 to staple the finished sheets and cover, if applicable, of print job 103. Punch 116 may punch holes in the finished sheets and cover, if applicable. These finishing operations and the availability thereof also may constrain certain features within print job 103.
Receiver 181 receives print job 103 received within system 100 and outputs the print job to RIP firmware 290. Receiver 181 also may receive color information for the document or documents within the print job. It may output the color information to correcting unit 186. The print job received by receiver 181 is associated with image data to be printed on print media. It also may include print condition information including information for indicating single-sided printing or two-sided printing or print medium-type information along with other data associated with the print job.
RIP firmware 290 converts image data associated with the print job into raster data to thereby generate rendering data, and outputs the generated rendering data. RIP firmware 290 also converts the rendering data into rendering data in a CMYK format. When the rendering data is originally in the CMYK format, or CMYK rendering data, the conversion may not be performed. RIP firmware 290 may perform gradation conversion of the CMYK rendering data, with reference to one or more tone reproduction curves (TRCs). A TRC refers to data indicating the relationship between a colored gradation value for rendering data and print color, or print density, on a given print medium.
When print color provided by printing device 104 alters over time, the TRCs stored in CMYK data storage 184 may be each deviated from an actually measured relationship between a colored value and print color. When the TRC is shifted from the actual relationship, gradation conversion for each colored gradation value cannot match a desired print color. In this regard, correcting unit 186 corrects the deviation, from the actual relationship, of the TRC stored in CMYK data storage 184 in order to allow each colored gradation value to match a desired print color. Correcting unit 186 converts RGB color information obtained through receiver 181 into CMYK color information. Correcting unit 186 may use the converted CMYK color information to generate the TRC. The TRC stored in CMYK data storage 184 is replaced with the generated TRC. Correcting unit 186 may correct the TRC. Correcting unit 186 may rewrite a part of the TRC stored in CMYK data storage 184 to thereby correct the TRC.
The rendering data generated by RIP firmware 290 is transmitted within printing device 104 via input/output connector 185. The print condition information and the print medium type, as well as the rendering data, may be transmitted to engine 260 found in printing device 104 disclosed in
DFE 106 also includes web user interface 188 that may communicate with other printing devices, if it is located at a separate device, using, for example, input/output connector 185. Web user interface 188, or web application, allows a user of the DFEs of other printing devices to interact with content or software running on DFE 106.
Printing device 104 includes a computing platform 201 that performs operations to support these functions. Computing platform 201 includes a computer processing unit (CPU) 202, an image forming unit 204, a memory unit 206, and a network communication interface 210. Other components may be included but are not shown for brevity. Printing device 104, using computing platform 201, may be configured to perform various operations, such as scanning, copying, printing, receiving or sending a facsimile, or document processing. As such, printing device 104 may be a printing device or a multi-function peripheral including a scanner, and one or more functions of a copier, a facsimile device, and a printer. To provide these functions, printing device 104 includes printer components 220 to perform printing operations, copier components 222 to perform copying operations, scanner components 224 to perform scanning operations, and facsimile components 226 to receive and send facsimile documents. CPU 202 may issue instructions to these components to perform the desired operations.
Printing device 104 also includes a finisher 211 and one or more paper cassettes 212. Finisher 211 includes rotatable downstream rollers to move papers with an image formed surface after the desired operation to a tray. Finisher 211 also may perform additional actions, such as sorting the finished papers, binding sheets of papers with staples, doubling, creasing, punching holes, folding, and the like.
Paper cassettes 212 supply paper to various components 220, 222, 224, and 226 to create the image formed surfaces on the papers. Paper cassettes 212 also may be known as paper trays. Paper cassettes 212 may include papers having various sizes, colors, composition, and the like. Papers or media within paper cassettes 212 may be considered “loaded” onto printing device 104. The information for printing these papers may be captured in a paper catalog stored at DFE 106. Paper cassettes 212 may be removed to refill as needed. The printed papers from components 220, 222, 224, and 226 are placed within one or more output bins 227. One or more output bins 227 may have an associated capacity to receive finished print jobs before it must be emptied or printing paused. The output bins may include one or more output trays.
Document processor input feeder tray 230 may include the physical components of printing device 104 to receive papers and documents to be processed. Feeder tray also may refer to one or more input trays for printing device 104. A document is placed on or in document processor input feeder tray 230, which moves the document to other components within printing device 104. The movement of the document from document processor input feeder tray 230 may be controlled by the instructions input by the user. For example, the document may move to a scanner flatbed for scanning operations. Thus, document processor input feeder tray 230 provides the document to scanner components 224. As shown in
Memory unit 206 includes memory storage locations 214 to store instructions 215.
Instructions 215 are executable on CPU 202 or other processors associated with printing device 104, such as any processors within components 220, 222, 224, or 226. Memory unit 206 also may store information for various programs and applications, as well as data specific to printing device 104. For example, a storage location 214 may include data for running an operating system executed by computing platform 201 to support the components within printing device 104. According to the disclosed embodiments, memory unit 206 may store the tokens and codes used in performing the deferral operations for printing device 104.
Memory unit 206 may comprise volatile and non-volatile memory. Volatile memory may include random access memory (RAM). Examples of non-volatile memory may include read-only memory (ROM), flash memory, electrically erasable programmable read-only memory (EEPROM), digital tape, a hard disk drive (HDD), or a solid-state drive (SSD). Memory unit 206 also includes any combination of readable or writable volatile memories or non-volatile memories, along with other possible memory devices.
Computing platform 201 may host one or more processors, such as CPU 202. These processors are capable of executing instructions 215 stored at one or more storage locations 214. By executing these instructions, the processors cause printing device 104 to perform various operations. The processors also may incorporate processing units for specific purposes, such as application-specific integrated circuits (ASICs) and field programmable gate arrays (FPGAs). Other processors may be included for executing operations particular to components 220, 222, 224, and 226. In other words, the particular processors may cause printing device 104 to act as a printer, copier, scanner, and a facsimile device.
Printing device 104 also includes an operations panel 208, which may be connected to computing platform 201. Operations panel 208 may include a display unit 216 and an input unit 217 for facilitating interaction with a user to provide commands to printing device 104. Display unit 216 may be any electronic video display, such as a liquid crystal display (LCD). Input unit 217 may include any combination of devices that allow users to input information into operations panel 208, such as buttons, a touch screen, a keyboard or keypad, switches, dials, and the like. Preferably, input unit 217 includes a touch-screen digitizer overlaid onto display unit 216 that senses touch to receive inputs from the user. By this manner, the user interacts with display unit 216. Using these components, one may enter codes or other information into printing device 104.
Printing device 104 also includes network communication processing unit 218.
Network communication processing unit 218 may establish a network communication using network communication interface 210, such as a wireless or wired connection with one or more other image forming apparatuses or a network service. CPU 202 may instruct network communication processing unit 218 to transmit or retrieve information over a network using network communication interface 210. As data is received at computing platform 201 over a network, network communication processing unit 218 decodes the incoming packets and delivers them to CPU 202. CPU 202 may act accordingly by causing operations to occur on printing device 104. CPU 202 also may retrieve information stored in memory unit 206, such as settings for printing device 104.
Printing device 104 also includes print engine 260, as disclosed above. Engine 260 may be a combination of hardware, firmware, or software components that act accordingly to accomplish a task. For example, engine 260 is comprised of the components and software to print a document. It may receive instructions from computing platform 201 after user input via operations panel 208. Alternatively, engine 260 may receive instructions from other attached or linked devices.
Engine 260 manages and operates the low-level mechanism of the printing device engine, such as hardware components that actuate placement of ink or toner onto paper. Engine 260 may manage and coordinate the half-toner, toner cartridges, rollers, schedulers, storage, input/output operations, and the like. Raster image processor (RIP) firmware 290 that interprets the page description languages (PDLs) would transmit and send instructions down to the lower-level engine 260 for actual rendering of an image and application of the ink onto paper during operations on printing device 104. RIP firmware 290 may be located in DFE 106, as disclosed above.
Printing device 104 may include one or more sensors 262 that collect data and information to provide to computing platform 201 or CPU 202. Each sensor 262 may be used to monitor certain operating conditions of printing device 104. Sensors 262 may be used to indicate a location of a paper jam, failure of hardware or software components, broken parts, operating system problems, document miss-feed, toner level, as well as other operating conditions. Sensors 262 also may detect the number of pages printed or processed by printing device 104. When a sensor 262 detects an operational issue or failure event, it may send a signal to CPU 202. CPU 202 may generate an error alert associated with the problem. The error alert may include an error code.
Some errors have hardware-related causes. For example, if a failure occurred in finisher 211, such as a paper jam, display unit 216 may display information about the error and the location of the failure event, or the finisher. In the instance when the paper jam occurs in paper cassettes 212, display unit 216 displays the information about the jam error as located in one of the paper cassettes.
Some errors have a type of firmware-related cause. For example, network communication processing unit 218 may cause a firmware or software error. Display unit 216 may display the firmware-related error, any applicable error codes, and provide recommendations to address the error, such as reboot the device.
Memory unit 206 may store the history of failure events and occurred errors with a timestamp of each error. Printing device 104 communicates with other devices within system 100 via network communication interface 210 by utilizing a network protocol, such as the ones listed above. In some embodiments, printing device 104 communicates with other devices within system 100 through REST API, which allows the server to collect data from multiple devices within system 100. REST API and SOAP are application protocols used to submit data in different formats, such as files, XML messages, JSON messages, and the like. By utilizing applicable network communication protocols and application protocols, printing device 104 submits and receives data from estimation system 108 as well as other printing devices within system 100.
As attributes are selected in user interface 302, conflicts engine 306 may check that selected setting attributes 304 do not violate constraints 312 set forth in printing device configuration settings 130 for printing device 104. For example, printing device 104 may impose constraints on the maximum number of sheets printed to output bin 227. Conflicts engine 306 includes a constraints file 308 that is derived from constraints 312 for printing operations at printing device 104. Constraints file 308 may be an Extensible Markup Language (XML) file that may include an XML Schema Definition (XSD) to define the elements and attributes that can appear in constraints file 308. Constraints file 308 may include multidimensional constraints, which result in a complex set of constraints 312.
Referring to
For example, attribute 404 may relate to body weight of the paper. Attributes 406, 408, and 410 of attribute 404 may relate to the weight of the cover. Attribute 406 indicates that no cover is to be used with the booklet for print job 103 based on job settings 112. Attribute 404 may have parameters related to the different body weights available at printing device. Here, parameter 404A may be a body weight between 60-90 lbs and parameter 404B may be a body weight between 91-105 lbs. Thus, a booklet with attribute 406 and parameter 404A for attribute 404 has a constraint 312A of 20 maximum sheets. A booklet with attribute 406 and parameter 404B for attribute 404 has an adjusted constraint 312B of 13 maximum sheets. Adjusted constraint 312B is determined based on the relationship between attribute 404 and attribute 406.
Constraint 312 may be adjusted to different maximum sheet numbers based on other attributes. In continuation of the example above, attribute 408 is a cover weight of 106-220 lbs. For a parameter 404A of attribute 404, adjusted constraint 312C is 13 sheets, which is less that the 20 sheets for attribute 404 and parameter 404A of attribute 404. A cover reduces the number of sheets available to be placed in the booklet. For parameter 404B of attribute 404, constraint 312 is adjusted even further to adjusted constraint 312D of 10 maximum sheets. A heavier cover weight of 221-256 lbs for attribute 410 results in an adjusted constraint 312E of 12 maximum sheets for parameter 404A of attribute 404 and an adjusted constraint 312F of 9 maximum sheets for parameter 404B of attribute 404.
The disclosed embodiments account for these complex relationships in conflicts engine 306 so that it can notify the operator using user interface 302 that a conflict will occur using setting attributes. For example, the operator selects a paper having a 68 lb weight for attribute 404 and a cover weight of 120 lbs. Job settings 112 specify a booklet size of 18 sheets. This size does not violate constraint 312 of 20 maximum sheets but does conflict with adjusted constraint 312C of 13 sheets. User interface 302 alerts the operator that the print job cannot be processed using these settings.
Referring back to
Constraints 312 on printing operations also may be implemented due to feeder trays and output bins at printing device 104. For example, the maximum number of sheets to be used in printing a booklet for print job 103 may be bounded by the type of feeder tray used to supply paper or media. If the feeder tray is limited to letter-sized paper, then it will not be able to provide A4 paper for a print job. An output bin may be limited in the number of printed sheets it can hold or finish for print job 103.
In
Instead of evaluating individual attributes as part of conflict checking, the disclosed embodiments evaluate two or more attributes or associated parameters against each other so the value of one attribute is used to bound the valid values for the other attributes. Using table 402 above, the disclosed embodiments reduce the maximum number of sheets for a booklet finishing operation based on the weight of the selected papers and whether a cover is used as well as a weight for the cover. The disclosed embodiments also may further adjust constraint 312 for the maximum number of sheets based on the paper dimensions.
The disclosed embodiments perform the conflict operations concurrently against a collection of attributes. For example, the disclosed embodiments may change the valid weight ranges, paper textures, paper coatings, and feeder trays based on the specified paper type. The disclosed embodiments may bound a value based on the union of restrictions from multiple values. For example, the disclosed embodiments may change the valid paper size range based on the media type, feeder tray, and the output bin.
The disclosed embodiments, therefore, evaluate constraint values that change sheet to sheet in order to adjust constraints. The disclosed embodiments also may apply constraints 312 based on the most restrictive value. For example, if print job 103 specifies 4 different papers with different weights, the disclosed embodiments adjust the finishing constraints to use the heaviest possible weight. Alternatively, the weights may be aggregated for all of the sheets in print job 103 and constraints 312 applied against the average weight for the overall print job. Further, constraints 312 may be adjusted based on the number of times that a constraint is found in print ticket 110. For example, the disclosed embodiments may adjust constraints 312 based on whether covers are defined as no cover, front cover, or front and back cover.
Attribute 506 may relate to front or back coating detail. This attribute also may be applied to adjust a constraint of constraints 312, such as maximum number of sheets.
Further, as can be seen in table 502, front or back coating detail is not available for tabs, envelopes, or labels. Attribute 508 may relate to a texture for the media selected to be printed. As shown in table 502, not every texture available for attribute 508 may be applied to each media type. In the instance of labels for attribute 504, no texture is available.
The disclosed embodiments also may include attributes that do not correspond to every parameter or variation of initial attributes, such as attribute 504 for media type. The disclosed embodiments will apply attributes incrementally to adjust constraints. For example, attribute 510 may relate to hole type that may be applied in a finishing operation. Thus, this may relate to which output bin is specified. For example, first output bin 227A may be available for punching operations, while second output bin 227B is not. Further, attribute 510 is not applicable to envelopes or labels as attribute 504. Attribute 512 may relate to set counts. For normal paper as attribute 504, attribute 512 does not really apply. Set counts, however, do apply to full cut tabs, envelopes, and labels. Thus, attribute 512 is applied to those media types as attribute 504. The disclosed embodiments will look to attributes 510 and 512 when the corresponding media type as attribute 504 is indicated in print ticket 110.
Multiple attributes may be applied in limiting other attributes. Referring to table 604, features related to feeder trays may be defined. Attributes may be defined for a main unit feeder tray 612. Attribute 613 may relate to the type of feeder tray used for main unit feeder tray 612. As shown, the type of feeder tray for attribute 613 adjusts valid paper size range, or weight range, attribute 610. An MPT is limited to a valid paper size range of 52-300 lbs as opposed to 52-360 lbs for a 500 cassette or 1500 deck feeder tray. The disclosed embodiments, therefore, further adjust attribute 610 for the weight range to 52-300 lbs based on the parameters applicable to attribute 613.
Printing device 104 may include a second feeder tray shown as PF-9100 feeder tray 614 in table 604. Attribute 615 may relate to the type of PF-9100 feeder tray used. As shown, attribute 615 also adjusts valid paper size range 610. If attribute 615 indicates a PF-9110 feeder tray, then attribute 610 is adjusted to a paper size range of 52-216.
Table 606 may define features related to output bins used at printing device 104. Like feeder trays, output bins may place constraints on what can be printed at printing device 104. Further, different output bins may limit what finishing operations can be performed. Table 606 defines main unit output bin 616, DE-9100 output bin 618, ST-9100 output bin 620, and DF-9100 622. As shown in table 606, each output bin has limits on weight range attribute 610. Output bin 616 appears to match the largest weight range attribute available at printing device 104, or 52-360 lbs. Output bin 618, however, limits attribute 610 to 52-300 lbs. Further, as shown with output bin 622, finishing operations for stapling may further limit attribute 610.
As can be appreciated, the disclosed embodiments may start with a constraint, such as maximum number of sheets, for printing device 104, then apply attributes and their associated parameters to further adjust the constraint. It may be performed in an incremental manner such to account for multiple attributes. For example, referring to tables 602, 604, and 606, print job 103 for labels as attribute 608 using feeder tray PF-9110 will limit weight range to 52-216 lbs while also not allowing for any front or back coating or detail according to table 502. One set may be printed as well. A print job outside of these constraints will be noted as conflicting according to constraints file 308. An alert is provided to the operator using user interface 302.
Body weight attribute 704 corresponds to attribute 404 in table 402, and may be broken down into parameters for 60-90 lbs weight and 91-105 lbs weight. Further, attribute 712 relates to no cover being used for a booklet for print job 103. According to table 702, parameters for attribute 704 may further adjust the maximum number of sheets. Further, within constraints 710, attribute 711 may indicate whether small sheets or large/mixed sheets are used in the booklet. Attribute 711 adjusts the maximum number of sheets based on sheet dimensions. A print job using an attribute 711 of small sheets with no cover allows for the highest maximum number of sheets according to table 702 of 100 sheets. Large sheets for attribute 711 adjusts this value to 50 sheets within the same parameter.
Mixed sheets for attribute 711 indicates that print job 103 includes a mixture of small sheets and large sheets. As disclosed above, the disclosed embodiments evaluates parameters for attributes that change sheet to sheet. In some embodiments, such as the one shown in table 702, constraints are adjusted to the most restrictive value. Here, constraint 710 is adjusted to use the large sheets, which results in a 50% reduction from the maximum number of sheets available for small sheets, or 50. For a body weight of 91-105 lbs, constraint 710 for large or mixed sheets is 35 sheets. This relationship may be seen with the other constraint values in table 702.
Attribute 714 relates to a cover having a cover weight between 106-220 lbs. Attribute 714 may be further broken down into booklets having a front cover and booklets having front and back covers. In short, having two covers will further limit the maximum number of sheets available to print a booklet using table 702 in conflicts file 308. Attribute 716 relates to a cover having a cover weight between 221-300 lbs. Attribute 716 also may be further broken down into booklets having a front cover and booklets having front and back covers. As can be seen, attribute 716 adjusts the maximum number of sheets even less that attribute 714. Thus, a booklet having two covers with a cover weight between 221-300 lbs and paper having a body weight between 91-105 will have the lowest value for the maximum number of sheets for constraints 710, or 31 sheets.
The disclosed embodiments also may account for sheets having different attributes. As noted above, a few different processes may be used. For example, one process may adjust constraints based on the most restrictive value. Using table 702, print job 103 may include several sheets having a body weight between 91-105 lbs so that the maximum number of sheets is adjusted to 70 sheets. Further, a few large sheets may be within print job 103 so that constraint 710 is adjusted even further to 35 sheets. Attribute 714 or 716 also may further limit the maximum number of sheets.
In other embodiments, the body weight parameters for all of the pages in print job 103 may be aggregated to determine an average weight. Thus, if print job 103 only includes a few pages having a body weight of 91-105 lbs, then the average weight for pages within the print job may still be below 90 lbs so that the maximum number of sheets is 100. The same process may be performed for small and large sheets for attribute 711.
Printing device configuration settings 130 may include those settings and capabilities that printing device 104 could theoretically support. These may include conflicting capabilities. During startup of printing device 104, DFE 106 may determine the configuration of the printing device. For example, DFE 106 may determine which modules are installed and what options are configured for each module. Printing device 104 may have a punch module but the number of holes that can be punched varies depending on which die is installed in the punch.
As shown in
Tray configuration 810 may relate to physical constraints applied to printing device 104 by the print trays. For example, the print trays may allow only printing of papers having a certain size, even though printing device 104 may process print jobs having a large variety of sizes. Device capabilities 812 may refer to finishing operations or other features that limit the capabilities of printing device 104. For example, printing device 104 may have two finishers that have different capabilities but one only of these finishers may be installed at a given time. Device capabilities 812 may provide information on both finishers and their capabilities and constraints.
Printing device configurations settings 130 may include additional settings, such as those disclosed in
DFE 106 also may include administrative configurable attributes 804. Administrative configurable attributes 804 may refer to those attributes that are configured by an administrator and used by an operator. The operator cannot change the available values for the attributes. When the administrator defines the valid settings for printing device 104 using the attributes, the disclosed embodiments will add these to device capabilities file 802. Device capabilities file 802 is used to populate the print ticketing user interface, as disclosed below. To the operator, administrative configurable attributes 804 may look like a statically-defined set of value. These values, however, are configured uniquely for each printing device. The attributes are added to device capabilities file 802 as part of the configuration information provided by DFE 106.
Administrative configurable attributes 804, for example, may include first attribute 814, second attribute 816, and third attribute 818. Additional attributes may be included for administrative configurable attributes 804. For example, DFE 106 may store color adjustment presets that may be used to allow tweaking of the appearance of a print job. These presets may be adjustments to how the colors are reproduced. Using this example, first attribute 814 may adjust the hue while second attribute 816 may increase the contrast by a certain amount.
Several adjustment presets may be stored in administrative configurable attributes 804 for easy recall. The adjustments set forth by first attribute 814, second attribute 816, and third attribute 818 may be assigned to a customer or project by the administrator such that when DFE 106 receives a print job for the customer or project, administrative configurable attributes 804 are recalled. Administrative configurable attributes 804 also may be dynamic as disclosed above in that the administrator defines the valid values for the attributes for a given printing device.
Administrative configurable attributes 804 and printing device configuration settings 130 are used to generate device capabilities file 802. First, however, the disclosed embodiments may place these components through conflicts engine 820 within DFE 106. Conflicts engine 820 may operate similar to conflicts engine 306 disclosed above, except it is within DFE 106. Conflicts engine 820 may determine any conflicts between administrative configurable attributes 804, or their values, and printing device configuration settings 130. For example, first attribute 814 may adjust the hue for a customer's print jobs, but this adjustment may not be allowed according to the paper media within paper catalog 806. In another example, third attribute 818 may include values specifying that a three hole punch be used to finish print jobs for the customer but device capabilities 812 may specify that this finishing option is not available.
Conflicts engine 820 notes these conflicts in generating settings within device capabilities file 802. These relationships will be disclosed in greater detail below. Device capabilities file 802 includes a plurality of settings corresponding to printing device 104. First setting 822, second setting 824, and third setting 826 are shown. These settings may be used to populate the print ticket editor or user interface after received by print driver 310 at client device 102. Further, these settings may be further modified at client device 102 based on other attributes provided by the operator.
DFE 106 may make a copy of device capabilities file 802. It also may edit device capabilities file 802 to remove anything that is not relevant to the printing device as it is currently configured. For example, third setting 826 may be removed if it relates to color printing settings on a monochrome printing device. Further, in some embodiments, administrative configurable attributes 804 may not be provided to DFE 106. They may be provided at client device 102 or elsewhere within printing system 100. Alternatively, they may not be provided at all.
As shown in
At client device 102, first operator configurable attributes 904 may be provided. Operator configurable attributes may be those attributes, such as a print condition, that are configured by an operator, user, or customer. These attributes may include new values that are added to device capabilities file 802. The operator also may remove attributes or values in the same manner.
A difference between first operator configurable attributes 904 and administrative configurable attributes 804 may be the need to monitor device capabilities file 802 for changes made to the settings due to the operator attributes. This monitoring may be performed by print driver 310, a print submission application, or the user interface for DFE 106. As shown in
For example, first operator configurable attributes 904 includes first attribute 906, second attribute 908, and third attribute 910. These attributes may include adjustments to the values for attributes for settings at printing device 104. First operator configurable attributes 904 may include adjustment 1 for first attribute 906, adjustment 2 for second attribute 908, and adjustment 3 for third attribute 910. Conflicts engine 306 evaluates the attributes to ensure that they are a valid combination. Examples of combinations of settings and attributes are disclosed above.
As a result of this evaluation, updated device capabilities file 912 may be provided. For example, first attribute 906 may include a print condition for a specific paper used on printing device 104. Conflicts engine 306 may determine whether the print condition is valid in view of device capabilities file 802. If so, then a setting may be modified to include the print condition value specified by first attribute 906 to be included in updated device capabilities file. The print condition is specific to a customer for first operator configurable attributes 904. Thus, if first setting 822 pertains to the print conditions for the paper media, then updated device capabilities file 912 may include modified first setting 914 that includes this modification to the first setting.
Second attribute 908 may cause a modification to second setting 824 within device capabilities file 802. Thus, updated device capabilities file 912 may include a modified second setting 916 based on the evaluation by conflicts engine 306. For example, device capabilities file 802 may not allow the value set forth by second attribute 908. Thus, modified second setting 916 may indicate that the feature is not allowed and an error message provided. Third attribute 910 may not cause any change to third setting 826 such that it is not modified in updated device capabilities file 912. Third setting 826 is included in updated device capabilities file 912.
Updated device capabilities file 912 may be provided to user interface 302 of client device 102 to an operator looking to set print ticket settings, or setting attributes 304 for a print job. Print driver 310 and user interface 302 may retrieve updated device capabilities file 912 to populate user interface 302 with options or settings for a print job at printing device 104. The disclosed embodiments determine which print ticketing options should be enabled or disable. For example, color mode option is disabled for monochrome printing devices. The disclosed embodiments also determine what values should be available for print ticket settings. For example, the list of output bins is based on the installed output modules in printing device 104, as specified by printing device configuration settings 130. The disclosed embodiments also determine conflicts that are applicable per the device configuration. All of the above is loaded into user interface 302 so every time the operator changes the value of any setting, then user interface 302 checks for conflicts that involve that setting. For example, user interface 302 may generate another set of first operator configurable attributes 904 to be evaluated by conflicts engine 306.
The disclosed embodiments also may include an alternate device capabilities file 902 that is provided to client device 102 and conflicts engine 306. Alternate device capabilities file 902 may be provided by another DFE at another printing device within printing system 100. Alternate device capabilities file 902 may include different settings based on its configuration for the other printing device. It also may be evaluated by conflicts engine 306 in view of first operator configurable attributes 904 to provide its own device capabilities file to user interface 302. As print driver 310 pulls device capabilities files using URLs, a variety of printing devices having different files may be implemented using a single print driver.
The disclosed embodiments also may include second operator configurable attributes 920 that corresponds to another operator or customer and the associated attributes and values for that customer. In other words, the disclosed embodiments may have several, if not more, stored attributes for different operators or customers that are evaluated by conflicts engine 306. The print ticket settings presented by user interface 302 may change depending on the appropriate device capabilities file. The device capabilities files may be stored at client device 102.
As shown in
In another example, modified second setting 916 may relate to an input tray for a specified media. The input tray may have a second attribute for the maximum number of sheets that may be supplied for a print job, as shown in second value 1008. For example, second value 1008 may be 50 sheets. First operator configurable attributes 904 may specify a desired finishing operation, such as stapling, with a maximum number of sheets of 100 sheets as first value 1004. During the conflicts checking, first value 1004 will be modified to 50 sheets using context 1010.
If a proposed change or value for an attribute is not available due to a conflict, then the disclosed embodiments may return an error message to the operator. The operator then may make further changes or new values for the attributes using user interface 302.
First attribute 1002 also may have a first sub-attribute that also is dependent on first value 1004. First sub-attribute 1012 may be defined in view of first value 1004 and modified accordingly according to the value. A sub-attribute may be a subset of different variations of an attribute for a setting for printing device 104. Further, first sub-attribute 1012 may be related to a second sub-attribute 1014 through context 1016 of second attribute 1006. Thus, when first sub-attribute 1012 is defined or modified, then second sub-attribute 1014 also is defined or modified based on the relationship between first attribute 1002 and second attribute 1006. The disclosed embodiments dynamically update these values, attributes, and sub-attributes based on the relationships defined in the device capabilities file.
Further, third setting 826 may be within updated device capabilities file 912. Third setting 826 is not modified. Third setting 826 includes third attribute 1018 having a third sub-attribute 1020. Fourth setting 1022 may be defined for device capabilities file 802 or updated device capabilities file 912. Fourth setting 1022 is dependent on third setting 826. It also includes fourth attribute 1024 that is defined by third attribute 1018. Thus, fourth attribute 1024 may incorporate third sub-attribute 1020 as a sub-attribute. These relationships may be used to determine a conflict if fourth setting 1022 is changed by an operator or administrative attribute. Fourth setting 1022 may not conflict with the requirements set forth by third sub-attribute 1020 of third setting 826.
Step 1102 executes by setting a plurality of configurable attributes relating to printing operations at DFE 106. DFE 106 may define attributes for capabilities and configurations as set forth in printing device configuration settings 130. These may be modified by administrative configurable attributes 804. Step 1104 executes by defining a plurality of settings for printing device 104 based on administrative configurable attributes 804. Step 1106 executes by generating device capabilities file 802 at DFE 106 having the plurality of settings as defined by the configurable attributes and configuration settings.
Step 1108 executes by downloading device capabilities file 802 to a client device 102, print driver 310, a printing application, or an interface at DFE 106. Device capabilities file 802 may be downloaded using a URL corresponding to an IP address of DFE 106 storing the device capabilities file for printing device 104. Step 1110 executes by receiving further configurable attributes, such as first operator configurable attributes 904, from an operator or a customer. First operator configurable attributes 904 may include values for settings that differ from the values for the settings within device capabilities file 802.
Step 1112 executes by evaluating the attributes and values for the settings using conflicts engine 306. In other embodiments, conflicts engine 820 in DFE 106 may be used. Conflicts engine 306 may compare values for attributes to the allowed values or constraints imposed by the configuration of printing device 104 as captured in device capabilities file 802. If there is a direct conflict, then the operator may be alerted. For example, a specified finishing operation may not be available at printing device 104.
Step 1114 executes by modifying the plurality of settings based on a conflict with at least one of the attributes. Examples of such conflicts are provided above. A value for an attribute for a setting may be modified due to the conflict such that the available print ticket settings will reflect the modified value of the attribute. Step 1116 executes by storing the plurality of settings in an updated device capabilities file 912. Updated device capabilities file 912 may be device capabilities file 802 with modified settings, attributes, or values. Step 1118 executes by providing the plurality of settings using updated device capabilities file 912 to a user interface 302 for a print driver 310, printing application, or the DFE user interface. The operator is presented with print ticket settings that reflect the configuration of printing device 104 along with requirements or specifications for the operator or a customer.
Preferably, the operator will not make settings that result in the print job being halted due to a conflict.
As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams or flowchart illustration, and combinations of blocks in the block diagrams or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an” and “the” are intended to include plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Embodiments may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product of computer readable media. The computer program product may be a computer storage medium readable by a computer system and encoding computer program instructions for executing a computer process. When accessed, the instructions cause a processor to enable other components to perform the functions disclosed above.
The corresponding structures, material, acts, and equivalents of all means or steps plus function elements in the claims below are intended to include any structure, material or act for performing the function in combination with other claimed elements are specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for embodiments with various modifications as are suited to the particular use contemplated.
One or more portions of the disclosed networks or systems may be distributed across one or more printing systems coupled to a network capable of exchanging information and data. Various functions and components of the printing system may be distributed across multiple client computer platforms, or configured to perform tasks as part of a distributed system. These components may be executable, intermediate or interpreted code that communicates over the network using a protocol. The components may have specified addresses or other designators to identify the components within the network.
It will be apparent to those skilled in the art that various modifications to the disclosed may be made without departing from the spirit or scope of the invention. Thus, it is intended that the present invention covers the modifications and variations disclosed above provided that these changes come within the scope of the claims and their equivalents.