Information processing apparatus, control method, and computer-readable medium

An information processing apparatus in which a preset associated with a driver is registered, comprises a preset acquisition unit that acquires information regarding a preset registered in the information processing apparatus; a function acquisition unit that acquires information regarding a function of a printer that corresponds to a driver associated with the preset; a determination unit that compares information regarding a plurality of presets and determines whether or not the presets have the same parameter for a common setting item; and a registration unit that, if a function related to a setting item that is a difference included in only one of the presets is not held by a printer that corresponds to a driver associated with the other presets, registers only the preset including the setting item that is the difference in the information processing apparatus in association with a plurality of drivers associated with the plurality of presets.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to technology for managing information regarding drivers such as printer drivers.

2. Description of the Related Art

Conventionally, a preset that is a collection of several specified values for specified setting items can be stored corresponding to a printer driver in an information processing apparatus (see Japanese Patent Laid-Open No. 2002-175164, for example). In some information processing apparatuses, a preset suited for a printer corresponding to a driver can be registered when installing the driver in the information processing apparatus.

Also, depending on the operating system (hereinafter abbreviated as “OS”) of an information processing apparatus, print settings are shared among a plurality of installed drivers. In an information processing apparatus with such an OS, the OS itself manages registered presets and, for example when a print request has been given, a preset corresponding to a driver selected first is reflected and a print setting screen is displayed. When the driver is switched to another driver thereafter, the settings displayed on the print setting screen for the previous driver before switching are shared with the driver after switching.

However, if a preset is registered in the information processing apparatus each time a driver is installed in the aforementioned case where the OS manages presets, there is the problem that similar presets are registered and thus overlap one another, for example when corresponding printers have similar functions. In this case, not only the storage area is used wastefully, but also preset management by the user is complicated.

SUMMARY OF THE INVENTION

According to one aspect of the present invention, there is provided an information processing apparatus in which a preset associated with an installed driver is registered, the apparatus comprising: a preset acquisition unit that acquires information regarding a preset registered in the information processing apparatus; a function acquisition unit that acquires information regarding a function of a printer that corresponds to a driver associated with the preset; a determination unit that compares information regarding a plurality of presets and determines whether or not the presets have the same parameter for a common setting item; and a registration unit that, for a plurality of presets that have been determined by the determination unit as having the same parameter for a common setting item, if a function related to a setting item that is a difference included in only one of the presets is not held by a printer that corresponds to a driver associated with the other presets as a result of reference to the function information acquired by the function acquisition unit, registers only the preset including the setting item that is the difference in the information processing apparatus in association with a plurality of drivers associated with the plurality of presets.

According to another aspect of the present invention, there is provided a control method for an information processing apparatus in which a preset associated with an installed driver is registered, the control method comprising: a preset acquisition step of, by a preset acquisition unit of the information processing apparatus, acquiring information regarding a preset registered in the information processing apparatus; a function acquisition step of, by a function acquisition unit of the information processing apparatus, acquiring information regarding a function of a printer that corresponds to a driver associated with the preset; and a determination step of, by a determination unit of the information processing apparatus, comparing information regarding a plurality of presets and determining whether or not the presets have the same parameter for a common setting item, wherein, for a plurality of presets that have been determined in the determination step as having the same parameter for a common setting item, if a function related to a setting item that is a difference included in only one of the presets is not held by a printer that corresponds to a driver associated with the other presets as a result of reference to the function information acquired in the function acquisition step, only the preset including the setting item that is the difference is registered in the information processing apparatus in association with a plurality of drivers associated with the plurality of presets.

According to the present invention, it is possible to avoid complicated preset management in an information processing apparatus because a plurality of presets having similar settings are not registered and thus do not overlap one another.

DESCRIPTION OF THE EMBODIMENTS

First Embodiment

System Configuration

An embodiment for carrying out the present invention will be described hereinafter with reference to the drawings.FIG. 1shows an example of a printing system to which the present invention is applied. In the printing system, a client computer101as an information processing apparatus and printers102and103are connected via a computer network104. An operating system (hereinafter abbreviated as “OS”), applications, and printer drivers have been installed in the client computer101. This system enables the user to transmit user data from the client computer101to the printer102or103and print the user data.

FIG. 2is an internal block diagram of the client computer101. The constituent elements of the client computer101include an operation unit201, a display unit202, a control unit203, an external media device management unit204, a storage unit205, and a communication unit206. The operation unit201is an interface for connecting a keyboard, a mouse, and the like. The display unit202is an interface for connecting a display device such as a display. The control unit203is a central processing unit (CPU). The external media device management unit204is an interface for connecting an external media device in order to load the OS, applications, printer drivers, and so on recorded on CDs or DVDs into the client computer101. The storage unit205stores the OS, applications, printer drivers, print data, and so on. The communication unit206is an interface for communicating with the printer102and the like.

Module Configuration

FIG. 3is a module configuration diagram of a printer driver. A printer driver301includes a graphic rendering module302, an UI control module303, a printer specification description file304, a color processing module305, and an input/output control module306. Note that other modules may be included depending on the function of the printer driver. There are several methods for creating this printer driver. For example, one method is to create the graphic rendering module302and the UI control module303so as to correspond to a plurality of printers, in order to support a plurality of printers with a single printer driver. Another method is to package the same number of printer specification description files as the number of supported printers with the printer driver. With such a method, the UI control module303displays and controls UIs in accordance with the printer specification description files304. Also, the graphic rendering module302is configured to issue a page description language (PDL) and a printer control command in accordance with each printer.

A description is given of the procedure for installing a printer driver with such a configuration in the client computer101. It is assumed herein that the user has prepared a CD-ROM in which the printer driver is stored or has got hold of a printer driver installer (not shown) via the network. In the below description, the printer driver installer is simply referred to as an installer for convenience sake. Initially, the user starts up the obtained installer. With this operation as a trigger, the installer stores a printer driver module at a predetermined location in the storage unit205. The storage location varies depending on the printing system. As one example, in the CUPS (Common Unix Printing System), a printer driver module for each vendor is stored in the directory named /Library/Printers/.

Furthermore, printer drivers may be stored by type in the directory of each vendor. For example, in the case where a vendor called ABC has different printer drivers PDL1and PDL2, the following directories may be created to store the printer drivers therein:/Library/Printers/ABC/PDL1//Library/Printers/ABC/PDL2/

Although the installation of printer drivers has been completed with the above procedure, it is still necessary for the user to register printers using the printer drivers in order to actually output data to the printers. A printer to be registered in the system is hereinafter referred to as a “print queue” or simply as a “queue”.

Printing System

The OS registers a user-specified print queue in the system.FIG. 4is a block diagram of a printing system showing a state in which a printer driver has been installed and a print queue has been registered. InFIG. 4, a graphic rendering module403is the graphic rendering module302of the printer driver installed in a predetermined directory (/Library/Printers/) in the OS. Similarly, an UI control module405is the UI control module303of the installed printer driver.

A color processing module404is the color processing module305of the installed printer driver. An input/output control module408is the input/output control module306of the installed printer driver. A printer specification description file406is the printer specification description file304of the installed printer driver. Note that a back-end module407is a module that is provided by the OS for transferring print data generated by the graphic rendering module403to the input/output control module408for transferring the print data to a printer. The OS in the course of printer registration generates print queue registration information409and a printer specification description file410. The print queue registration information409is a file in which information regarding a print queue to be registered is described. The printer name, the installation location, print-queue address information, and so on are described in the print queue registration information409.

An OS402causes the UI control module405to display a printer addition dialog box (not shown) so as to collect print queue print setting information411and generate the print queue registration information409. For example, in the CUPS system, a printers.conf file stored in the directory /etc/cups/ corresponds to the print queue registration information409. Meanwhile, functional specifications of the printer are described in the printer specification description file410.

The OS402acquires the printer specification description file406corresponding to the printer from the UI control module405and stores this file at a predetermined location in the system. The storage location is, for example, a directory of the storage unit205named “/etc/cups/ppd/” in the CUPS system. InFIG. 4, the OS402stores the printer specification description file406in the printer specification description file410. When switching the output destination printer to another printer, the user selects a print queue in a print-queue selection dialog box (not shown) displayed by the UI control module405.

Storage of Preset

FIG. 5shows a file in which the setting content of presets is stored. The term “preset” as used herein refers to a combination of print settings that the user uses at frequent intervals and that is identified and stored by name. In a case of using the settings, the user can reproduce the settings by selecting a desired preset from among stored presets in a preset selection dialog box (not shown) displayed by the UI control module405. Below is a description of the setting and storage of presets.

A preset to be newly registered is installed in the OS by an installer when a printer driver is installed. InFIG. 5, the setting content of a plurality of presets is described in the <CustomPresetList> tag on lines501to512. A single preset is described in the <PresetSettings> tag as described on lines505and506. It is assumed here that the preset name is described as a parameter of the <PresetSettings> tag. The preset described on lines505and506indicates that the preset name is “Standard” and the setting content of the preset is Null.

In the preset setting content storage file shown inFIG. 5, another preset named “Preset1” is described on lines507to511. The setting content of this preset is described from lines508to510. Line508shows that the parameter of “ColorMode” is “Color”, line509shows that the parameter of “Duplex” is “Duplex”, and line510shows that the parameter of “Resolution” is “600”. Note that the identifier “ABC.” is attached to the head of each item, and this is in order to distinguish the setting items of each vendor because presets are managed by the OS and commonly used by vendors. As described above, the type and setting content of each preset can be defined in the preset setting content storage file.

FIGS. 6A and 6Bare diagrams for illustrating a conventional method for adding a preset during installation of a printer driver.

FIG. 6Ais a diagram showing the states of registered presets before another preset has been added.

Preset601represents the name of a registered preset. InFIG. 6A, three presets, namely, Preset1, Preset2, and Preset3, have been registered. Setting602represents the setting content of a preset. The setting content inFIGS. 6A and 6Bincludes color/monochrome, duplex/simplex, N-up, and resolution. For example, Preset1has a combination of the following settings: color, duplex, 1-up, and 600 dpi.

FIG. 6Bis a diagram showing the states of registered presets after another preset has been added during installation of a printer driver. Preset603represents the name of a registered preset. Setting604represents the setting content of a preset. InFIG. 6B, Preset4has been added. In the conventional preset addition method, although Preset4has the same setting content as Preset1, it has been added as a new preset and thus overlaps with Preset1.

FIGS. 7A and 7Bare diagrams for illustrating another conventional method for adding a preset during installation of a printer driver.FIGS. 7A and 7Bshow a different example from that shown inFIGS. 6A and 6B.

FIG. 7Ais a diagram showing the states of registered presets before another preset has been added. Preset701represents the name of a registered preset. InFIG. 7A, three presets, namely, Preset1, Preset2, and Preset3, have been registered. Setting702represents the setting content of a preset. The setting content to be registered inFIGS. 7A and 7Bincludes color/monochrome, duplex/simplex, N-up, resolution, and staple position. For example, Preset1has a combination of the following settings: color, duplex, 1-up, 600 dpi, and upper right. Since Presets2and3do not include a staple function, nothing is set to the staple position.

FIG. 7Bis a diagram showing the states of registered presets after another preset has been added during installation of a printer driver. Preset703represents the name of a registered preset. Setting704represents the setting content of a preset. InFIG. 7B, Preset4has been added. Even if the settings of Preset4are approximately the same as the settings of Preset1but differ only in part (the parameter of the staple position setting), Preset1is not edited because of the presence of a print queue using Preset1. Preset4has thus been added as a new preset.

Specifically, in the conventional preset addition methods shown as examples inFIGS. 6A and 6BandFIGS. 7A and 7B, a preset that is similar to an already-registered preset is added as a new preset.

Addition of Preset

FIGS. 8A and 8Bare diagrams for illustrating a method for adding a preset during installation of a printer driver according to the present embodiment.

FIG. 8Ais a diagram showing the states of registered presets before another preset has been added. Preset801represents the name of a registered preset. InFIG. 8A, three presets, namely, Preset1, Preset2, and Preset3, have been registered. Setting802represents the setting content of a preset. The setting content inFIG. 8Aincludes color/monochrome, duplex/simplex, N-up, and resolution. For example, Preset1has a combination of the following settings: color, duplex, 1-up, and 600 dpi.

It is assumed here to newly add a preset (Preset4) that has, as parameters of the setting items, a combination of the following settings: color, duplex, 1-up, 600 dpi, and upper left.

FIG. 8Bis a diagram showing the states of registered presets after the aforementioned preset has been added during installation of a printer driver. Preset803represents the name of a registered preset. In the present embodiment, unlike in the example ofFIG. 7B, if a specified condition is satisfied, Preset4above is not added as a new preset. In the present example, registration is made by adding the setting content that is unique to a new preset or Preset4to Preset1whose settings overlap with the settings of the new preset.

A description is given of a specific example of such a specified condition. An installer (not shown) confirms that a printer (here, the printer102) corresponding to a print queue using Preset1does not have a different function (staple function) that is included in Preset4to be added but is not included in Preset1. Here, the function of the printer102is confirmed by reference to the printer specification description file410. As a result, if the installer has confirmed that the printer102using Preset1inFIG. 8Adoes not have a staple function and furthermore the other settings of Preset1are the same as the settings of Preset4, the staple position setting, specifically “upper left”, is added to Preset1. At this time, the print queue using Preset4is associated with Preset1as shown inFIG. 10discussed later.

In the case where the user selects a print queue corresponding to the printer102and uses Preset1updated as above for printing, the staple position setting is not reflected because the printer102does not have a staple function. Meanwhile, printers corresponding to print queues using Preset4have a staple function and therefore, if Preset1updated as above is used likewise, all settings included in Preset1, including the staple position setting, are to be reflected.

Specifically, in the example of adding a new preset shown inFIGS. 8A and 8Baccording to the present embodiment, a plurality of presets are collectively managed under a specified condition rather than indiscriminately registering a new preset as shown inFIGS. 6A and 6BandFIGS. 7A and 7B. Note that, other than the aforementioned case, an example of the specified condition includes the case where presets are collectively managed as a single preset when the parameters of all setting items included in those presets overlap one another.

The above description has been given on the assumption that a preset is updated by an installer at a time when a new driver has been installed. However, similar effects can also be achieved even if the aforementioned processing for updating a preset is performed at desired times such as when a module provided by for example a driver or the OS has newly registered only a preset, or at start-up of a program.

FIG. 9Ashows a driver UI of a print queue using Preset1inFIG. 8B. The print queue in this case is a printer that has a staple function and whose functional content corresponds to Preset1. A print setting dialog box901is a user interface that enables the user to change print settings used for actual printing, for example. The print setting dialog box901includes print queue selection902, preset selection903, number of copies904, and sheet size905as common controls provided by the system. When changing the output destination printer, the user operates the print queue selection902. Functions that are unique to the printer can be set using other areas.

When a printer has a large number of functions, a method is adopted in which, instead of displaying all functions at a time, function groups are switched using control906. One example is shown here in which the functions related to “finishing” are displayed. The functions related to “finishing” include the designation of either simplex or duplex using printing method907and the setting of the staple position using paper ejection method908. N-up can be designated as a layout function by enabling selection of “layout” with control906(not shown). A print button909is a button for executing printing, and a cancel button910is a button for cancelling printing.

FIG. 9Bis a driver UI of a print queue using Preset1inFIG. 8A. Preset1here does not include a staple function. A print setting dialog box1001includes print queue selection1002, preset selection1003, number of copies1004, and sheet size1005as common controls provided by the system. Functions that are unique to the printer include the switching of function groups using control1006and the designation of either simplex or duplex using printing method1007. A print button1008is a button for executing printing, and a cancel button1009is a button for cancelling printing. A similar driver UI is also used in the case where the printer102that does not have a staple function uses Preset1inFIG. 8B. Note that the UI configurations shown inFIGS. 9A and 9Bare merely examples and therefore the UI configuration is not limited to these as long as items necessary to set a preset are included.

Relation Table Between Preset and Print Queue

FIG. 10is a table showing the relation between presets and print queues. This table includes two items, namely print queue1101and preset1102. According to this table, Preset1is used by not only a print queue1but also a print queue4. Similarly, Preset2is used by print queues2and5. In this way, a single preset may be used by a plurality of print queues in the present embodiment.

FIGS. 11A and 11Bshow that a plurality of functions can be added to a preset during installation of a printer driver.FIG. 11Ais the same asFIG. 8A. Preset1201represents the name of a registered preset. Setting1202represents the setting content of a preset. LikeFIG. 8B,FIG. 11Bshows the state after functions have been added to Preset1. The difference ofFIG. 11BfromFIG. 8Bis that a plurality of functions have been added to a single preset. An installer confirms that a printer (here, the printer102) corresponding to a print queue using Preset1does not have a different function that is included in a preset to be added but is not included in Preset1. The functions of the printer102are confirmed by reference to the printer specification description file410. As a result, if the installer has confirmed that the printer102using Preset1shown inFIG. 11Adoes not have staple, punch, and Z-fold functions, the installer adds the staple (upper left), punch, and Z-fold functions (setting items) to Preset1. Since the printer102does not have those functions, a print queue corresponding to the printer102is not affected even if the staple (upper left), punch, and Z-fold functions have been added to Preset1.

Procedure of Driver Installation

FIGS. 12A and 12Bare flowcharts illustrating processing for installing a printer driver with an installer. An installer stored in the client computer101is started up. The installer installs a printer driver and also attempts to newly install a preset customized by a vendor for a supported printer. Then, processing is started upon display of a printer driver installation screen (not shown).

In step S1001, the installer detects an instruction to add a print queue. In step S1002, the installer searches for a preset in the OS for the print queue to be added. In step S1003, the installer determines whether or not one or more such presets exist in the OS. If one or more such presets exist in the OS, the procedure proceeds to step S1004. If there is no such a preset, the procedure proceeds to step S1013.

In step S1004, the installer acquires an instruction indicating whether or not to add a preset from the user. In step S1005, the installer determines whether or not to add a preset. If a preset is to be added, the procedure proceeds to step S1006. Otherwise, the installation of the printer driver ends without adding a preset.

In step S1006, the installer extracts the setting content of presets managed by the OS. This is implementation of a preset acquisition step of acquiring information regarding presets. In step S1007, the installer confirms whether or not the file of registered presets managed by the OS includes settings that overlap with the setting content of the preset to be installed thereafter.

In step S1008, the installer determines whether or not there is a registered preset whose settings overlap with the settings of the preset to be installed. Here, if the two presets to be compared have the same parameters for all common setting items, they are determined as overlapping each other. If the installer has determined in step S1008that there is a registered preset that has overlapped settings, the procedure proceeds to step S1009. If it has been determined that there is no such a registered preset, the procedure proceeds to step S1013.

In step S1009, the installer determines whether or not there is a difference in specified functions (setting items) between the registered preset determined as having overlapped settings and the new preset to be installed. If there is a difference in function, the procedure proceeds to step S1010, and if there is no difference in function, the procedure proceeds to step S1014.

If there is a different function in step S1009, the installer refers to the printer specification description file410for a printer corresponding to a print queue that uses the registered preset, and extracts printer functions in step S1010. This is implementation of a function acquisition step of acquiring information regarding printer functions. In step S1011, the installer determines whether or not the function of the new preset to be installed different from that of the registered preset is a function available to a printer using the registered preset. As shown inFIG. 10, the registered preset may be used by a plurality of printers. If the different function of the new preset to be installed is not available to any of such printers, the procedure proceeds to step S1012. If there is a possibility that the different function be available to any of such printers, the procedure proceeds to step S1013.

In step S1012, the installer adds the setting of the different function to the registered preset. This corresponds to the processing for adding the staple position setting (whose parameter is “upper left”) to Preset1inFIG. 8B. Accordingly, a plurality of similar presets can be managed efficiently as a single preset without those presets being registered as-is in the OS. In step S1013, the installer registers the new preset as a preset to be managed by the OS. This is similar to the processing for registering a preset (additional registration) as shown inFIGS. 6A,6B,7A, and7B. After the installer has executed the processing of step S1012or S1013, the procedure proceeds to step S1015.

If there is no difference in function in step S1009, it indicates that all setting items and their parameters are the same between the registered preset and the preset to be installed. Accordingly, the installer extracts the registered preset as a preset for a print queue to be newly registered in step S1014. This prevents a plurality of presets having the same setting content from being registered in the OS. After the execution of the processing of step S1014, the procedure proceeds to step S1015.

In step S1015, the installer registers a print queue and associates the print queue with the preset as shown inFIG. 10, and thereafter the procedure ends.

Alternatively, such a procedure is possible in which when the user has given an instruction to add a preset in step S1004, whether to additionally register all new presets to be installed or to add only differences may be selected. Still alternatively, whether to add only differences, that is, overwrite a registered preset or to additionally register a new preset may be selected for each new preset to be registered.

Also, although not shown in the flowchart ofFIGS. 12A and 12B, the user may be notified of registration content when a new preset is registered, irrespective of whether overwritten registration or additional registration. Furthermore, when a preset has been newly added, the user may be allowed to change or newly define the name of the registered preset, irrespective of whether overwritten registration or additional registration. Also, the names of a plurality of corresponding print queues may be automatically set depending on the preset name and attribute information. In such a case, as one example, screen data to be input may be provided by the UI control module303.

The above description thus shows that it is possible to prevent a plurality of presets having the same setting content from being registered in the OS during installation of a driver. It is also possible to prevent a large number of presets having approximately the overlapped setting content from being registered unconditionally. This reduces the burdens of managing and grasping presets on users and accordingly improves the convenience of users.

Other Embodiments

Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment, and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment. For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium).

This application claims the benefit of Japanese Patent Application No. 2010-023551, filed Feb. 4, 2010, which is hereby incorporated by reference herein in its entirety.