Disclosed herein are methods for configuring print drivers, and in particular to such methods that establish a set of printer driver feature defaults to be enforced by the printer driver during printing operation.
A user in a printing environment has access to multiple printing devices. The printing devices include, but are not limited to, printer, digital copier, facsimile unit and multi-function machine (scanner/copier/printer). This installation process is often not straightforward and requires the user's knowledge and correct answers to often complex questions during the installation process. Sometime the user has to add and remove the same driver several times to get a correct installation. The installation process provides or facilitates yet another possible point for failure should some of the installations be flawed. To minimize failure and to implement policy directives in an enterprise, System Administrators (SAs) need to manage their users' printing capabilities to these multiple Printing Devices. For example, an SA may want to create a “green” printing environment where all print drivers are defaulted to duplex printing.
System administrators often pre-configure a print driver before installing it on a given print server. Such pre-configuration includes, for example, changing the device default settings to enable/disable features like stapling, duplex printing, color settings, and the like. Pre-configuration generally follows a process that includes generating a configuration file that, for example, is identified by a filename with a “cfg” suffix. The configuration file contains, among other things, device configuration settings. During installation on the print server, the configuration file is read and the settings therein applied to the specific printer driver. A configuration file that is narrowly tailored to the user, a client computer, or a given print server is generally distributed by device manufacturers through computer readable medium or through file repositories maintained by a server.
After distribution and installation of print drivers across an enterprise network, enterprise-wide print driver defaults sometimes need to be changed. This process is known as post-configuration of the print driver. Examples of post-configuration include implementation of corporate policy change that specifies defaults and try to maximize printing resources. In an enterprise with hundreds of computers and printing devices this can be a daunting and laborious task.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art is systems and methods for pre-configuring and post-configuring multiple printer drivers with a single configuration file.
According to aspects of the embodiments, there is provided systems and methods for implementing a multi-tiered approach to defining printer driver configuration settings. A printer driver configuration management utility allows system administrators to establish settings for multiple printer drivers and multiple printing devices with a single configuration file. A single multi-tiered configuration file makes it possible to pre-configure and post-configure multiple printer drivers. Compatible installed printer drivers check for the configuration file and update settings based on the applicable rules. Each setting may have rules of behavior such as a default value, enforced default value, value setting lock and disallowance of a value. An alternate value, such as a secondary value, can be deferred to when a primary setting value is not supported for a particular driver. One embodiment hereof utilizes a network based central storage of driver configuration files that can be updated at any time by an administrator. These configuration files are stored at an enterprise accessible location and accessed by client devices prior to utilizing a network accessible printer. In one embodiment, each print server is configured with a specification of the enterprise accessible location that contains the print driver configuration files. Client devices receive a specification of the enterprise accessible location from the print server as part of the printing process.
Aspects of the embodiments disclosed herein relate to methods to configure a print driver in a computer for multiple printing devices, and corresponding apparatus and system for facilitating automatic device driver installation and configuration for a selected device in a managed environment. The disclosed embodiments provide a mechanism for a system administrator (“SA”) to configure a broad range of printer drivers without needing to create multiple configuration packages. The varying tiers allow the SA to fine-tune driver settings for particular printing devices or family of devices while maintaining generally defined pre-configured settings. The printer driver configuration settings are also propagated when the user updates an existing driver to a newer version. The ability to modify the configuration file at any time allows the SA to establish and enforce policy changes for already installed printer drivers. Within a Windows printing environment, the ability to specify the location of the configuration file in a “well-known location” enables customers to configure the driver without breaking its digital signature.
The disclosed embodiments include a method to configure a print driver in a computer for multiple printing devices in a network environment by creating a memory structure containing configuration parameter rules for at least one printing device; and in response to the computer being commanded to utilize the print driver for the at least one printing device, configuring the print driver according to the configuration parameter rules in the memory structure.
In still another aspect the disclosed embodiment a method to configure a print driver wherein the configuration parameter rules in the created memory structure comprise rules with at least one target printer driver attribute, feature attribute, behavior attribute, feature value attribute.
In still another aspect the disclosed embodiment is to a method to configure a print driver wherein the target printer driver attribute is selected from a group consisting of specific print queue, specific print driver, specific printer model, specific printer, specific printer family, all print drivers.
In still another aspect the disclosed embodiment is to a method to configure a print driver wherein the behavior attribute is selected from a group consisting of default value, enforced default value, feature value lock, and feature value exclusion.
In still another aspect the disclosed embodiment is to a method to configure a print driver wherein configuring the print driver is selecting configuration parameter rules in accordance to a set of priorities.
In still another aspect the disclosed embodiment is to a method to configure a print driver further comprising establishing an interval for retrieving the configuration parameter rules from the create memory structure.
In still another aspect the disclosed embodiment is to a method to configure a print driver further comprising using a user interface to set any of the configuration parameter rules in the created memory structure.
In still another aspect the disclosed embodiment is to a method to configure a print driver further comprising saving the configuration parameter rules in a default location of the network environment.
The disclosed embodiments include a system for configuring print drivers for a client in a networked printing environment comprising a memory for storing configuration parameter rules for multiple printing devices; and a processor in communication with a storage medium and the memory, the processor executing machine readable instructions for performing the method of: in response to the client being commanded to utilize the print driver for a printing device reading the configuration parameter rules in the memory; configuring the print driver according to the read configuration parameter rules.
The disclosed embodiments include a system for facilitating automatic device driver installation and configuration for a selected device in a managed environment comprising a network service provider for maintaining and organizing configuration parameter rules and basic drivers for devices installed in the managed environment, the configuration parameter rules sufficient to configure the basic drivers for each of the devices; and a processor to automatically select, install, and to configure an appropriate one of the basic drivers on a computer based on the selected device and the configuration parameter rules.
The term “print engine” as used herein refers to a digital copier or printer, scanner, image printing machine, digital production press, print queue, document processing system, processor, image reproduction machine, bookmaking machine, facsimile machine, multi-function machine, or the like and can include several marking engines, feed mechanism, scanning assembly as well as other print media processing units, such as paper feeders, finishers, and the like.
The term “management information base” (MIB) as used herein refers to a management information block, storage device, and can include any type of network management information and need not be a specific file, format, data structure or design. The MIB is at a minimum adapted to use Simple Network Management Protocol (SNMP).
The term “print media” generally refers to a usually flexible, sometimes curled, physical sheet of paper, plastic, or other suitable physical print media substrate for images, whether precut or web fed.
A “print management station” refers to a monitoring device or computer that is operated by a human user such as a system administrator (SA).
A “target device” is a managed node, such as a printer, computer, print engine, scanner, and the like, that is linked to a computer network.
A “Client” refers to any computational device that is able to send print jobs to a printer. Client devices include, for example a personal computer, workstations, processing systems such as servers, distributed processors, computing clusters, and the like, that execute programs that generate data to be sent to a printer. Such systems are capable of hosting, for instance, databases, application, document generation systems, and any suitable processing able to generate data.
A “Print Server” refers to a processing device that hosts queues for network connected print engines. Print servers can be stand alone processors or exist as one or more processes resident on a server or in a client functioning as a server. Print servers are generally accessible by clients and provide print driver packages to clients in order to support establishing print queues on the client device.
A “Server Print Queue” refers to a print queue that is installed on a print server. Server print queues generally maintain and update queue configuration and status information that is distributed to client print queues.
A “Client Print Queue” refers to a queue that is created on a client device to use a stand alone print engine or network connected print engine. A client print queue is created in conjunction with a print driver for a given print engine that is the destination of the client print queue. A client print queue accepts data sent to an associated networked printer and manages the transmission of the data to that device to implement the printing of the data. Client print queues receive configuration and status information from a server print queue and receive configuration data in the form of a configuration file from a default location.
An “Enterprise” refers to an organization or other entity for which client devices are centrally administered. An enterprise includes, for example, a corporation, association of individuals, or an association of devices that share a mutually accessible data communications network.
An “Enterprise Accessible Location” refers to a data storage location that is accessible by a client connected to a communications network of an enterprise. An example enterprise accessible location is a shared network directory.
A “Default Location” refers to a default enterprise accessible location, client, or to devices tethered to a client such as flash drives and external hard disk drives (“hdd”). An example default location would be, for instance, the location given by: “h:\system\printer\”.
A “Configuration Parameter” refers to at least one setting for the configuration of a print engine. Example configuration parameters include, for example, settings for single-sided printing, duplex mode, color or monochrome, stapling multiple page printouts, stapled or not stapled, paper size, watermark, paper tray, print resolution, and color printing or black and white printing and the like.
A “Configuration File” (or “Config File”) is one or more files with data containing configuration parameters specific for one or more print driver associated with a print engine or print queue. Configuration files are able to be located at a client, at a network accessible location, or at a hosted location in the World Wide Web (WWW).
A print engine “default setting” in the disclosed embodiments, refers to one or more settings that are saved as a default setting to be automatically used for printing unless manually changed at the time of printing.
An “application” refers to a program designed for end users of a computing device, such as a word processing program, a database program, a browser program, a spreadsheet program, a gaming program, and the like. An application is distinct from systems programs, which are low-level programs that interact with the computing device at a very basic level, such as an operating system program, a compiler program, a debugger program, programs for managing computer resources, and the like.
A computational device may be embodied within devices such as a desktop computer, a laptop computer, a handheld computer, a handheld communication device, or another type of computing device, or the like. A computational device has at a minimum a memory, a processor, input/output devices such as a display or a communication interface, and an operator interface for a user to interact with the computational device. The Processor may include at least one conventional processor or microprocessor that interprets and executes instructions. The memory may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by the processor. Memory may also include a read-only memory (ROM) which may include a conventional ROM device or another type of static storage device that stores static information and instructions for the processor. The Input/output devices (I/O devices) may include one or more conventional input mechanisms that permit a user to input information to the computational device, such as a microphone, touchpad, keypad, keyboard, mouse, pen, stylus, voice recognition device, buttons, and the like, and output mechanisms such as one or more conventional mechanisms that output information to the user, including a display, one or more speakers, a storage medium, such as a memory, magnetic or optical disk, disk drive, a printer device, and the like, and/or interfaces for the above. The display may typically be an LCD or CRT display as used on many conventional computing devices, or any other type of display device.
The memory may store instructions that may be executed by the processor to perform various functions. For example, the memory may store a printer driver configuration management utility that allows establishing settings for multiple printer drivers and multiple printing devices with a single multi-tiered configuration file, and instructions to automatically select, install, and to configure an appropriate one of basic drivers on a computer based on the selected device and the configuration parameter rules.
An administrator system 125 or print management station is used by administrators (SA) to create or modify a printer configuration file. The SA uses a printer driver configuration management utility, described in
The printer driver configuration management utility may further allow the administrator to specify an interval at which devices such as clients are to access the central data storage to determine if an update to the configuration file exists. In a preferred embodiment, the User PC 130 initiates the update method each time it is powered up, and may further initiate the update method after selected intervals of time, e.g., once every twelve hours while it remains powered up. However, those skilled in the art will recognize, after perusal of this application, that there are no specific times when the update method must be initiated, and that selection of various times for initiation of the method are within the scope and spirit of the invention. Regardless of when the updates are initiated the client queries the central data storage and applies any changes made to the configuration file to the print driver for the selected printing device.
Processor 210 may include at least one conventional processor or microprocessor that interprets and executes instructions. Memory 220 may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 210. Memory 220 may also include a read-only memory (ROM) which may include a conventional ROM device or another type of static storage device that stores static information and instructions for processor 210. Input/output devices 240 (I/O devices) may include one or more conventional input mechanisms that permit a user to input information to the controller, such as a microphone, touchpad, keypad , keyboard, mouse, pen, stylus, voice recognition device, buttons, and the like, and output mechanisms such as one or more conventional mechanisms that output information to the user, including a display, one or more speakers, a storage medium, such as a memory, magnetic or optical disk, disk drive, a printer device, and the like, and/or interfaces for the above. Image production section 250, which includes hardware by which image signals are used to create a desired image for processing at the target device such as a printer. The sensors 230 can be real sensors distributed throughout the print engine and/or virtual sensors, distributed throughout software modules of the print engine) and/or controller. The information from sensors 150 is delivered to MIB 225. The controller may perform functions in response to processor 210 by executing sequences of instructions or instruction sets contained in a computer-readable medium, such as, for example, memory 220. Such instructions may be read into memory 220 from another computer-readable medium, such as a storage device, or from a separate device via a communication interface, or may be downloaded from an external source such as the Internet. While described with respect to a printing engine it should be understood that components such as the processor 210, memory 220, I/O devices 240 are applicable can be used in other devices like as client or as a print server with the appropriate instructions. The memory 220 may store instructions that may be executed by the processor to perform various functions. For example, the memory may store instructions to allow the controller to perform various printing functions in association with a particular printing engine connected to the controller.
The system administrator is able to assign priorities or tiers to the rules in the configuration file. The settings for the print drivers in the illustrated configuration file have tier rule priority, such as (highest to lowest) 1. Print queue, “Phaser 6360 Green Printing”; 2. Printer driver, “Phaser 6360DX PS”; 3. Printer model, “Phaser 6360DX *”; 4. All printer models, “Phaser 6360DX *”; 5. Printer family, “Phaser *”; and 6. All drivers “*”. As such, the more exact and well-defined the Target Printer Drivers is; the higher the priority of the rule.
Embodiments as disclosed herein may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media.
Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, objects, components, and data structures, and the like that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described therein.
It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that 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.