Patent Description:
There is a technique by which an operating system (hereinafter, referred to as "OS") provides a standard print function (hereinafter, referred to as "OS standard print function") without requiring printer-specific software (hereinafter, referred to as "specific printer driver") provided by a printer vendor (refer to <CIT>). The OS determines whether the printer supports the OS standard print function based on information acquired from the printer, and if the printer supports the OS standard print function, the OS transmits print data generated by the OS standard print function to the printer. Known techniques for operating a printer are described in <CIT>, <CIT>, and <CIT>.

The present invention provides a method of controlling an information processing apparatus, as specified in claims <NUM> to <NUM>, and a program as specified in claim <NUM>.

The present invention provides an information processing apparatus as specified in claim <NUM>.

In a case where a printer does not support an operating system (OS) standard print function, the printer cannot interpret print data generated by the OS standard print function. Further, there are cases where a printer supports the OS standard print function but a user desires to print based on more detailed print settings than the OS standard print function.

Thus, an aspect of the present invention is directed to a technique for issuing an appropriate print instruction using the OS standard print function in at least one of the above-described cases.

<FIG> illustrates an overall configuration of a printing system according to a first exemplary embodiment. A personal computer (PC) <NUM> is connected to printers <NUM>, <NUM>, and <NUM> via a network <NUM> and communicates with each other. While the network <NUM> is a local area network (LAN) in the present exemplary embodiment, a wide area network (WAN) can be employed. Further, a network connection form can be a wired connection, wireless connection, or a combination thereof. The PC <NUM> controls the printers <NUM>, <NUM>, and <NUM> connected via the network <NUM>.

A hardware configuration according to the present exemplary embodiment will be described below with reference to a block diagram illustrated in <FIG> illustrates an example of a printing system in which the PC <NUM> being a host computer and the printer <NUM> communicate with each other. While <FIG> illustrates a hardware configuration of the printer <NUM>, the printers <NUM> and <NUM> each have the same or similar hardware configuration.

The PC <NUM> is an example of an information processing apparatus. The PC <NUM> is, for example, a PC and includes an interface (I/F) unit <NUM>, a central processing unit (CPU) <NUM>, a read-only memory (ROM) <NUM>, a random access memory (RAM) <NUM>, a display unit <NUM>, an input unit <NUM>, and an external storage apparatus <NUM>. The PC <NUM> according to the present exemplary embodiment is not limited to a desktop PC and can be a laptop PC, tablet PC, or smartphone.

The PC <NUM> transmits instructions for controlling the printer <NUM>, print data, and setting commands to the printer <NUM>. The CPU <NUM> is a central processing unit that controls the components of the PC <NUM> and executes a control program, such as an OS or a print conversion utility <NUM> described below. The ROM <NUM> controls operations of the printing system based on the stored OS. The RAM <NUM> is a random access memory on which a work area of the CPU <NUM> is developed. An external storage apparatus <NUM> stores applications and various control programs including the print conversion utility <NUM>.

The input unit <NUM> is an input device, such as a keyboard and mouse, for operating the PC <NUM>. The display unit <NUM> is a display device that displays information input from the input unit <NUM> for checking, a user interface screen of the OS or application, and a message. The I/F unit <NUM> is a communication module that transmits and receives data to and from the printer <NUM>.

The printer <NUM> is a printing apparatus such as an inkjet printer. The printer <NUM> includes an I/F unit <NUM>, a CPU <NUM>, a ROM <NUM>, a RAM <NUM>, and a print engine <NUM>. The CPU <NUM> is a central processing apparatus that controls the components described below. The ROM <NUM> is a read-only memory and stores programs for controlling the print engine <NUM>. The RAM <NUM> is a random access memory and temporarily stores a program for an operation of the print engine <NUM> and a setting value received from the PC <NUM>.

The print engine <NUM> performs printing on a recording medium based on print data transmitted from the PC <NUM>. The I/F unit <NUM> is a communication module that receives print data from the PC <NUM> and includes a function of transmitting current status information about the printer <NUM> from the printer <NUM> to the PC <NUM>. As used herein, the term "status information" refers to status data that indicates a state of the printer <NUM> and is returned from the printer <NUM> in response to a request from the PC <NUM> connected via the I/F unit <NUM>. The term "status data" refers to information that indicates an operation state of the printer <NUM>, such as "printing in progress" or "standby state", or an error state of the printer <NUM>, such as "out of sheets", "cover opened", or "out of ink".

A software configuration of the PC <NUM>, suitable for use with the present disclosure, will be described below with reference to <FIG> again. The information processing apparatus that is the PC <NUM> includes a drawing application <NUM>, an OS printing system <NUM>, a network (NW) communication control unit <NUM>, the print conversion utility <NUM>, a storage area <NUM> for an account <NUM> of a user A, and a storage area for an account <NUM> of a user B. While not illustrated in <FIG>, an OS is embedded in the PC <NUM>, and resources of the PC <NUM> such as blocks in the PC <NUM> are managed by the OS. In the present exemplary embodiment, the OS embedded in the PC <NUM> is macOS®.

The drawing application <NUM> is software that generates drawing data based on a user instruction. As used herein, the term "application" refers to software that is operable on the OS. The drawing application <NUM> is, for example, word processor software for creating a document, image editing software, or greeting card creation software. Drawing data generated by the drawing application <NUM> is, for example, Portable Document Format (PDF) data.

In a case where a print request is issued, the drawing application <NUM> outputs generated drawing data to the OS printing system <NUM>. If a print request is issued, the OS printing system <NUM> generates a print job based on the acquired drawing data and print setting information. The generated print job is input to a print queue <NUM> of the OS standard print function. A user can input the print setting in advance via a setting screen (the setting screen will be described below with reference to <FIG>) provided by the OS printing system <NUM>. The print setting information includes sheet size information, sheet type information, and information about a print queue to execute printing. The OS printing system <NUM> sequentially processes print requests from the drawing application <NUM> as jobs for each printer connected to the PC <NUM>.

The OS printing system <NUM> is OS standard print software that includes a standard function (the OS standard print function) for generating print data. The OS printing system <NUM> spools drawing data generated by the drawing application <NUM> and generates print data in predetermined format (hereinafter, also referred to as "standard format") based on the OS standard print function.

Further, the OS printing system <NUM> acquires printer model information about a printer via the NW communication control unit <NUM> to determine whether the printer supports the OS printing system <NUM>. Information to be acquired for the support determination is not limited to the printer model information and can be printer capability information. Various types of processing performed by the OS printing system <NUM> are controlled by an OS standard print control unit <NUM> in the OS printing system <NUM>.

The print conversion utility <NUM> is print control software that allows the use of a printer that does not support the OS standard print function. The print conversion utility <NUM> is installed in the PC <NUM> as needed. The print conversion utility <NUM> includes a function of converting print data in standard format into print data in printer vendor-specific format. Hereinafter, this function will be referred to as "vendor driver <NUM>", but the function of the vendor driver <NUM> does not have to be equivalent to a function of a conventional specific printer driver, and the vendor driver <NUM> is to include at least a function of converting print data into print data in printer vendor-specific format. In a case where a printer does not support the OS standard print function, the print conversion utility <NUM> converts print data into print data in vendor-specific format and then the converted print data is transmitted to the printer via the NW communication control unit <NUM>.

The print conversion utility <NUM> includes a function as a virtual printer. A print job for a printer that does not support the OS standard print function is output to the virtual printer by the OS printing system <NUM>. Then, the vendor driver <NUM> in the print conversion utility <NUM> converts print data in standard format into print data in printer vendor-specific format. On the other hand, as to a print job for a printer that supports the OS standard print function, the OS printing system <NUM> transmits print data in standard format as generated to the printer via the NW communication control unit <NUM>.

In a case where a printer that does not support the OS standard print function receives print data in standard format generated by the OS printing system <NUM>, the printer cannot interpret the print data. Thus, in the present exemplary embodiment, the print conversion utility <NUM> converts print data in standard format into print data in printer vendor-specific format that can be interpreted by the printer. Consequently, a printer that does not support the OS standard print function can perform printing using the standard function of the OS printing system <NUM>.

Even in a case where a printer supports the OS printing system <NUM> (i.e., a case where the printer can interpret print data in standard format), the print conversion utility <NUM> can be used for a print instruction with respect to a printer that supports the print conversion utility <NUM>. Use of the print conversion utility <NUM> provides more functions. For example, the OS standard print function provided by the OS printing system <NUM> does not support detailed print quality such as color matching processing and hue/brightness adjustment. That is to say, the OS standard print function has limitations. Thus, the print conversion utility <NUM> is used to provide functions equivalent to those of the printer vendor-specific printer driver.

To use the print conversion utility <NUM> from the drawing application <NUM>, the print queue <NUM> in the OS printing system <NUM> for receiving a print request from the drawing application <NUM> and a print queue <NUM> are both registered in the print conversion utility <NUM>. For example, in a case where the user A logs in to the PC <NUM>, the print queue <NUM> in the OS printing system <NUM> and a print queue <NUM> are both registered in the print conversion utility <NUM>. Unless both of the print queues <NUM> and <NUM> are registered, print data cannot be converted using the print conversion utility <NUM> from the drawing application <NUM>. If the print queue <NUM> of the print conversion utility <NUM> is registered, the print queue <NUM> of the OS printing system <NUM> is also registered automatically.

The print queue <NUM> of the print conversion utility <NUM> is stored in a storage area for each user. Specifically, the print queue <NUM> of the OS printing system <NUM> is stored in a shared area in the OS printing system <NUM>. Specifically, the print queue <NUM> of the OS printing system <NUM> is shared by users A and B. Hereinafter, the print queue <NUM> of the OS printing system <NUM> is sometimes referred to as "the print queue <NUM> of the OS standard print function".

The printers <NUM>, <NUM>, and <NUM> each include a NW communication control unit <NUM>, a print control unit <NUM>, and a printing unit <NUM>. The print control unit <NUM> receives print data from the PC <NUM> via the NW communication control unit <NUM> and executes printing based on the print data by controlling the printing unit <NUM>. In the present exemplary embodiment, the printers <NUM> and <NUM> do not support the OS standard print function whereas the printer <NUM> supports the OS standard print function. The printers <NUM>, <NUM>, and <NUM> can be an inkjet printing apparatus or an electrophotographic printing apparatus.

Next, changes of a displayed screen on the PC <NUM> will be described below to illustrate a process of registration in the print queue <NUM> of the print conversion utility <NUM>. <FIG> illustrates a printer list screen <NUM> provided by the print conversion utility <NUM>. The printer list screen <NUM> is a screen that displays a list of printers with print queues registered in the print conversion utility <NUM>. The printer list screen <NUM> includes a name <NUM> of each printer registered in the print conversion utility <NUM>, a "SETTING" button <NUM> for setting a printer setting, an "ADD" button <NUM> for registering a printer, and a "DELETE" button <NUM> for deleting a printer. In <FIG>, the printer <NUM> is registered in the print conversion utility <NUM>. Accordingly, this indicates that a print queue of the printer is registered in the print conversion utility <NUM>.

If a user selects the "SETTING" button <NUM>, the print conversion utility <NUM> opens a printer setting screen <NUM>. If the "ADD" button <NUM> is clicked, the print conversion utility <NUM> opens a printer registration screen <NUM>.

The printer registration screen <NUM> includes a printer list <NUM>, a "CANCEL" button <NUM>, and a "REGISTER" button <NUM>. The printer list <NUM> displays every printer that is connected to the PC <NUM> and does not support the OS standard print function. In the case of the configuration illustrated in <FIG>, the printers <NUM> and <NUM>, which do not support the OS standard print function, are displayed on the printer list <NUM>. In <FIG>, the printer <NUM> is registered in the print conversion utility <NUM> whereas the printer <NUM> is not yet registered in the print conversion utility <NUM>.

If a user selects the printer <NUM> and presses the "REGISTER" button <NUM> on the printer registration screen <NUM>, the printer <NUM> selected in the printer list <NUM> is registered in the print conversion utility <NUM>. Specifically, a print queue of the printer <NUM> is registered in the print conversion utility <NUM>. If a printer is registered in the print conversion utility <NUM>, the print conversion utility <NUM> starts responding to the OS printing system <NUM> with internally-generated information about whether the OS standard print function is supported based on information about the registered printer. Examples of information about the registered printer include a model name, printer name, and printer installation location information. Examples of internally-generated information about whether the OS standard print function is supported include a universally unique identifier (UUID) and capability information. At this time, the print conversion utility <NUM> executes a registration command to register the print queue of the printer <NUM> in the OS printing system <NUM> based on information (model name, printer name, printer installation location information, UUID, capability information) about the printer responding to the OS printing system <NUM>. Specifically, the print conversion utility <NUM> instructs the OS printing system <NUM> to register the print queue. By the above-described processing, the print queue is automatically registered in the OS printing system <NUM> when a user executes registration of the print queue in the print conversion utility <NUM>.

If the "DELETE" button <NUM> is clicked with the printer <NUM> being selected on the printer list screen <NUM> in <FIG>, the print queue <NUM> of the printer <NUM> being selected in the print conversion utility <NUM> is deleted from the print conversion utility <NUM>. Furthermore, the print conversion utility <NUM> executes a DELETE command on the print queue <NUM> of the OS standard print function that is associated with the print queue <NUM> in the print conversion utility <NUM>. Specifically, the print conversion utility <NUM> instructs the OS printing system <NUM> to delete the print queue <NUM>. Consequently, the print queue <NUM> of the OS standard print function is automatically deleted. Specifically, in a case where a print queue of a printer is deleted from the print conversion utility <NUM>, the print queue of the printer is also deleted from the OS printing system <NUM> without a user operation on a screen of the OS printing system <NUM>. In the present exemplary embodiment, registration and deletion in and from the print queue <NUM> of the OS standard print function can be executed manually from the OS printing system <NUM>. Details thereof will be described below with reference to <FIG>.

<FIG> illustrates a preferences screen <NUM> provided by the print conversion utility <NUM>. The preferences screen <NUM> includes an "ACTIVATE AT LOGIN" checkbox <NUM> and a "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> as preferences items. If a user clicks the "ACTIVATE AT LOGIN" checkbox <NUM>, the print conversion utility <NUM> is automatically activated when the user logs in to the PC <NUM>. On the other hand, if the user clicks the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM>, a process of checking a registration state of the print queue <NUM> of the OS standard print function and the print queue <NUM> of the print conversion utility <NUM> that are registered in the PC <NUM> is performed. Details of the process will be described below with reference to <FIG>. The setting result (setting value) in <FIG> is stored in a storage area for the user.

A print queue is automatically registered in the OS printing system <NUM> in a case where the print queue is registered in the print conversion utility <NUM> as described above with reference to <FIG>. It is also possible to manually register a print queue in the OS printing system <NUM> on a screen provided by the OS printing system <NUM>. A process thereof will be described below with reference to <FIG>.

<FIG> illustrates a printer list screen <NUM> provided by the OS printing system <NUM>. In <FIG>, the printer list screen <NUM> includes a printable printer list <NUM> displaying all printers that are selectable in printing. The printable printer list <NUM> displays printers with a print queue registered in the OS printing system <NUM>. If a user selects a printer from the printable printer list <NUM> and clicks a "DELETE" button <NUM> on the printer list screen <NUM>, the OS printing system <NUM> deletes the print queue of the selected printer. The OS printing system <NUM> also deletes the printer from the printable printer list <NUM>.

If a user clicks an "ADD" button <NUM> on the printer list screen <NUM>, the OS printing system <NUM> displays a printer registration screen <NUM>. A printer list <NUM> of the printer registration screen <NUM> displays all printers that are connected to the PC <NUM> and support the OS standard print function. Even in a case where a printer does not support the OS standard print function, if the printer is registered in the print conversion utility <NUM>, it is considered that the printer virtually supports the OS standard print function, so that the printer is displayed on the printer list <NUM> of the printer registration screen <NUM>.

Details of a process of displaying the printer list <NUM> will be described below. The OS printing system <NUM> acquires a name of the printer <NUM> and capability information from the printer <NUM> connected to the PC <NUM> and supporting the OS standard print function. The capability information includes information about whether the printer <NUM> supports the OS standard print function. Then, the name and connection method of each printer that supports the OS standard print function are displayed on the printer list <NUM>. Further, the OS printing system <NUM> acquires capability information about each printer registered in the print conversion utility <NUM> from the print conversion utility <NUM>. Since the printer <NUM> does not support the OS standard print function and is registered in the print conversion utility <NUM>, the printer <NUM> is an operation target of the print conversion utility <NUM>. Thus, the print conversion utility <NUM> adds the term "print conversion utility" to the name acquired from the printer <NUM> and transmits the name with the term "print conversion utility" to the OS printing system <NUM>. Consequently, the OS printing system <NUM> displays "printer <NUM> (print conversion utility)" as the name of the printer <NUM> and "Network" as the connection method of the printer <NUM> on the printer list <NUM> based on the capability information acquired from the print conversion utility <NUM>.

In a case where a printer with a print queue that is not registered in the OS standard print function is displayed on the printer list <NUM> on the printer registration screen <NUM> and a user selects the printer and clicks a "REGISTER" button <NUM>, the selected printer is registered. Specifically, the OS printing system <NUM> generates a new print queue <NUM> of the OS standard print function for the selected printer. Then, the OS printing system <NUM> displays the selected printer on the printable printer list <NUM> and closes the printer registration screen <NUM>. If a user clicks a "CANCEL" button <NUM> on the printer registration screen <NUM>, the OS printing system <NUM> closes the printer registration screen <NUM> without registering a new printer. In the present exemplary embodiment, the printer <NUM>, which virtually supports the OS standard print function via the print conversion utility <NUM>, and the printer <NUM>, which supports the OS standard print function, are registered in the print queue <NUM> of the OS standard print function.

<FIG> is a schematic view illustrating a print setting screen <NUM> provided by the OS printing system <NUM>. The print setting screen <NUM> is a screen via which a user sets a print setting for printing data generated by the drawing application <NUM>.

The user can set a printer that is to perform printing via a printer selection pop-up menu <NUM>. The OS printing system <NUM> displays the printable printers that are added as selectable printers on the printer list screen <NUM> in <FIG> on the printer selection pop-up menu <NUM>. In the present exemplary embodiment, the printer <NUM>, which supports the OS standard print function via the print conversion utility <NUM>, and the printer <NUM>, which supports the OS standard print function, are registered as printable printers. Therefore, the printers <NUM> and <NUM> are displayed on the printer selection pop-up menu <NUM>.

The user can set the number of copies via a number-of-copies setting text field <NUM>. The user can set a page to print via a page setting radio button <NUM> and a page designation text field <NUM>. The user can set the size of a sheet to print via a sheet size setting pop-up menu <NUM>. For example, the user can set one of the printer-printable sheet sizes A4, A5, L-size, and postcard. If the user clicks a "PRINT" button <NUM>, the OS printing system <NUM> inputs a print job based on the settings set via the screen and closes the screen. If a user clicks a "CANCEL" button <NUM>, the OS printing system <NUM> closes the screen without inputting a print job.

<FIG> is a schematic view illustrating a system menu screen of the OS of the PC <NUM>. The system menu screen of the OS displays a list of processes that are executable on the OS on a menu list <NUM>. If the user clicks a "SLEEP" button <NUM>, the PC <NUM> is changed to a sleep mode. In a case where the PC <NUM> is changed to the sleep mode, the print conversion utility <NUM> stops operating and the print queue <NUM> of the OS standard print function can no longer be used. If the user clicks a "RESTART" button <NUM>, the PC <NUM> is restarted. During the restart, the print conversion utility <NUM> stops operating and the print queue <NUM> of the OS standard print function cannot be used. If the user clicks an "END SYSTEM" button <NUM>, the PC <NUM> is shut down, the print conversion utility <NUM> stops operating, and the print queue <NUM> of the OS standard print function can no longer be used. If the user clicks a "LOG OUT" button <NUM>, the currently logged-in user is logged out. A case where the user A in a logged-in state is logged out is described herein. After the logout, a user selection screen <NUM> is displayed.

The user selection screen <NUM> displays a list of users registered in the PC <NUM>. In the present exemplary embodiment, the account <NUM> of the user A and the account <NUM> of the user B are registered in the PC <NUM>. If a user is selected on the user selection screen <NUM>, a login screen <NUM> of the selected user is displayed. For example, in a case where the account <NUM> of the user B is selected, if a login password is input to a password input region <NUM> of the login screen <NUM> for the account <NUM> of the user B and a "LOG IN" button <NUM> is clicked, the user B is logged in to the PC <NUM>. If a "CANCEL" button <NUM> is clicked, the user selection screen <NUM> is displayed.

A case where the account <NUM> of the user A previously logs in and the print queue <NUM> of the print conversion utility <NUM> and the print queue <NUM> of the OS standard print function are registered for the printer <NUM> will be described below. In this case, the print queue <NUM> of the print conversion utility <NUM> is stored in the storage area <NUM> of the account <NUM> of the user A, whereas the print queue <NUM> of the OS standard print function is stored in the shared area in the OS printing system <NUM>. Thereafter, the account <NUM> of the user A logs out, and the account <NUM> of the user B logs in for the first time. In this case, since the account <NUM> of the user B does not have the print queue <NUM> of the printer <NUM> registered in the print conversion utility <NUM>, printing is not executed by designating the print queue <NUM> of the printer <NUM> in the OS standard print function that is registered by the user A in the shared area in the OS printing system <NUM>. An example of a process by which the user B can execute printing using the printer <NUM> in the above-described case will be described below.

<FIG> is a flowchart illustrating a process of activating the print conversion utility <NUM>. The process in <FIG> is started if the user B activates the print conversion utility <NUM>, and the processing proceeds to step S01. While the print conversion utility <NUM> will be described below as an executor of each process, a corresponding function is realized by execution of a corresponding program by the CPU <NUM>. The entire operations are not always executed sequentially on a single process, and there may be a case where the process is moved to the OS and then returned from the OS. The flowchart illustrates major operations of the print conversion utility <NUM> for convenience and ease of understanding.

In step S02, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> of the OS standard print function registered but that does not have the print queue <NUM> of the print conversion utility <NUM> registered. In other words, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> of the OS standard print function registered but that does not have the print queue <NUM> corresponding to the print queue <NUM> registered in the print conversion utility <NUM>. Specifically, for example, information (e.g., model name) about printers registered in the OS printing system <NUM> is acquired, and whether the acquired model names are registered in the print conversion utility <NUM> is determined. In a case where the print conversion utility <NUM> determines that there is a printer that has the print queue <NUM> of the OS standard print function registered but that does not have the print queue <NUM> of the print conversion utility <NUM> registered (NO in step S02), the processing proceeds to step S03. On the other hand, in a case where it is determined YES in step S02, the processing proceeds to step S07, and the process is ended.

In step S03, the print conversion utility <NUM> provides a confirmation screen that prompts a user to confirm whether to register the print queue <NUM> of the print conversion utility <NUM>. <FIG> illustrates a print queue registration dialog <NUM> provided by the print conversion utility <NUM> as an example of the confirmation screen.

In step S04, the print conversion utility <NUM> receives user selection on the print queue registration dialog <NUM>. If a "DO NOT DISPLAY THIS MESSAGE AGAIN. " checkbox is selected on the print queue registration dialog <NUM> by a user, the print conversion utility <NUM> does not display the dialog thereafter for that the user. Specifically, thereafter, steps S03 to S05 are skipped and step S06 is executed in the case where the print conversion utility <NUM> determines NO in step S02 in the process illustrated in the flowchart in <FIG>. Further, the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> on the preferences screen <NUM> in <FIG> is unselected. For re-displaying, the preferences screen <NUM> in <FIG> is opened and the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> is selected.

In step S05, the print conversion utility <NUM> determines whether an "OK" button <NUM> is selected on the print queue registration dialog <NUM>. In a case where the "OK" button <NUM> is not selected (NO in step S05), the print conversion utility <NUM> determines that the print queue <NUM> of the print conversion utility <NUM> is not to be registered, and the processing proceeds to step S07 and the process is ended. On the other hand, in a case where the print conversion utility <NUM> determines that the "OK" button <NUM> is selected on the print queue registration dialog <NUM> (YES in step S05), the print conversion utility <NUM> determines that the print queue <NUM> of the print conversion utility <NUM> is to be registered, and the processing proceeds to step S06.

In step S06, the print conversion utility <NUM> registers the print queue <NUM> of the print conversion utility <NUM> using a device name (corresponding to a virtual printer name acquired from a model information file of the print queue <NUM> of the OS standard print function) acquired from the print queue <NUM> of the OS standard print function.

As described above, in the present exemplary embodiment, the corresponding print queue is registered in the print conversion utility <NUM> by referring to the print queue <NUM> of the OS standard print function. Thus, in a case where the account <NUM> of the user A registers the print queue <NUM> of the OS standard print function for the printer <NUM> via the print conversion utility <NUM>, the print queue <NUM> of the print conversion utility <NUM> for the printer <NUM> is registered in the storage area of the account <NUM> of the user B. Therefore, the account <NUM> of the user B can execute printing with the printer <NUM> using the print conversion utility <NUM>.

The present exemplary embodiment is not limited to the cases of multi-user login environments. The present exemplary embodiment is also applicable to, for example, a case where the user A registers both the print queue <NUM> of the print conversion utility <NUM> and the print queue <NUM> of the OS standard print function and thereafter deletes only the print queue <NUM> of the print conversion utility <NUM>. Specifically, the present exemplary embodiment is also applicable to a case where the user A deletes the print queue <NUM> of the print conversion utility <NUM> and logs out while the print queue <NUM> of the OS standard print function remains and thereafter the user A reactivates the print conversion utility <NUM>. In this case, the user A activates the print conversion utility <NUM> and the process illustrated in the flowchart in <FIG> is executed so that the print queue <NUM> of the print conversion utility <NUM> is registered again in the storage area of the account <NUM> of the user A.

Next, a second exemplary embodiment of the present invention will be described below. Redundant descriptions of similarities to the first exemplary embodiment are omitted, and mainly differences will be described below. In the first exemplary embodiment, in a case where there is a plurality of print queues <NUM> of the OS standard print function that is registered via the print conversion utility <NUM>, all the corresponding print queues are registered in the print conversion utility <NUM> regardless of the need of the user. In the second exemplary embodiment, in the case where there is a plurality of print queues <NUM> of the OS standard print function that is registered via the print conversion utility <NUM>, a user can select a printer to be registered as the print queue <NUM> of the print conversion utility <NUM>.

<FIG> is a flowchart illustrating a process of activating the print conversion utility <NUM> according to the present exemplary embodiment. If the user B activates the print conversion utility <NUM>, the process in <FIG> is started, and the processing proceeds to step S10. While the print conversion utility <NUM> will be described below as an executor of each process, a corresponding function is realized by execution of a corresponding program by the CPU <NUM>. The entire operations are not always executed sequentially on a single process, and there may be a case where the process is moved to the OS and then returned from the OS. The flowchart illustrates major operations of the print conversion utility <NUM> for convenience and ease of understanding.

In step S11, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> of the OS standard print function registered but that does not have the print queue <NUM> of the print conversion utility <NUM> registered. Specifically, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> registered in the OS standard print function but that does not have the corresponding print queue <NUM> registered in the print conversion utility <NUM>. Specifically, for example, the print conversion utility <NUM> acquires information (e.g., model name) about printers registered in the OS printing system <NUM> and determines whether the acquired model names are registered in the print conversion utility <NUM>. In step S11, in a case where the print conversion utility <NUM> determines that there is a printer that the print queue <NUM> of the OS standard print function is registered but the print queue <NUM> of the print conversion utility <NUM> is not registered (NO in step S11), the processing proceeds to step S12. On the other hand, in a case where it is determined YES in step S11, the processing proceeds to step S20, and the process is ended.

In step S12, the print conversion utility <NUM> provides a selection screen <NUM> that prompts a user to select a printer for which the print queue <NUM> is to be registered in the print conversion utility <NUM>. In the present exemplary embodiment, the selection screen <NUM> including a printer list <NUM> as illustrated in <FIG> is displayed. The printer list <NUM> displays a list of printers with the print queue <NUM> of the OS standard print function registered via the print conversion utility <NUM>.

In step S13, the print conversion utility <NUM> receives user selection on the printer list <NUM> in <FIG>. If a user selects a checkbox <NUM> of a printer to be registered in the print conversion utility <NUM> on the printer list <NUM> and clicks a "REGISTER" button <NUM>, the printer is selected as a registration target. In the present exemplary embodiment, a plurality of printers is selectable.

If a "DO NOT DISPLAY THIS MESSAGE AGAIN. " checkbox <NUM> is selected by a user on the selection screen <NUM> in <FIG>, the print conversion utility <NUM> does not display the dialog thereafter for that user. Specifically, steps S12 to S14 are skipped and steps S15 to S19 are executed in the case where the print conversion utility <NUM> determines that there is a printer that has the print queue <NUM> of the OS standard print function registered but that does not have the print queue <NUM> of the print conversion utility <NUM> is not registered (NO in step S11). Further, the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> on the preferences screen <NUM> in <FIG> is unselected. For re-displaying, the preferences screen <NUM> in <FIG> is opened and the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> is selected.

In step S14, the print conversion utility <NUM> determines whether there is one or more print queues to be registered in the print conversion utility <NUM>. Specifically, in a case where a user selects one or more printers on the selection screen <NUM> in <FIG>, the print conversion utility <NUM> determines that there is one or more print queues to be registered in the print conversion utility <NUM> (YES in step S14). On the other hand, in a case where the user clicks a "CANCEL" button <NUM> on the selection screen <NUM> in <FIG>, there is not a print queue to be registered in the print conversion utility <NUM> (NO in step S14), so that the processing proceeds to step S20, and the process is ended.

In step S15, the print conversion utility <NUM> initializes an index number (n = <NUM>).

In step S16, the print conversion utility <NUM> starts loops corresponding to the number of selected printers.

In step S17, the print conversion utility <NUM> acquires a device name from the print queue <NUM> of the OS standard print function of the nth printer and registers the print queue <NUM> of the print conversion utility <NUM>.

In step S18, the print conversion utility <NUM> increments the index number (n + <NUM>).

In step S19, the print conversion utility <NUM> repeats processing a number of times corresponding to the number of selected printers. Consequently, the print queues <NUM> of the printers selected by the user are registered in the print conversion utility <NUM>.

As described above, in the present exemplary embodiment, in the case where there is a plurality of print queues <NUM> of the OS standard print function that is registered via the print conversion utility <NUM>, the user is notified of a list of the registered print queues <NUM> so that the user can select a printer to be registered in the print conversion utility <NUM>. Thus, the user can register only the print queue <NUM> of the print conversion utility <NUM> that the user desires, and the user can execute printing using the print conversion utility <NUM>.

The present exemplary embodiment is not limited to the cases of multi-user login environments. The present exemplary embodiment is also applicable to, for example, a case where the user A first registers the print queues <NUM> of the print conversion utility <NUM> and the print queues <NUM> of the OS standard print function that correspond to a plurality of printers and thereafter the user A deletes only the print queues <NUM> of the print conversion utility <NUM>. Specifically, the present exemplary embodiment is also applicable to a case where the user A deletes all the print queues <NUM> of the print conversion utility <NUM> and logs out while all the print queues <NUM> of the OS standard print function remain and thereafter the user A re-activates the print conversion utility <NUM>. In this case, the user A activates the print conversion utility <NUM> and the process illustrated in the flowchart in <FIG> is executed to thereby register the desired print queue(s) <NUM> of the print conversion utility <NUM> in the storage area of the account <NUM> of the user A.

Next, a third exemplary embodiment of the present invention will be described below. Redundant descriptions of similarities to the first or second exemplary embodiment are omitted, and only differences will be described below. In the first and second exemplary embodiments, the processes of registering the print queue <NUM> of the print conversion utility <NUM> in the case where the print queue <NUM> of the OS standard print function is registered but the print queue <NUM> of the print conversion utility <NUM> is not registered are described. In the third exemplary embodiment, a process of registering the print queue <NUM> of the OS standard print function in a case where the print queue <NUM> of the print conversion utility <NUM> is registered but the print queue <NUM> of the OS standard print function is not registered will be described below.

Hereinafter, first, the print queue <NUM> of the OS standard print function that is shared by the account <NUM> of the user A and the account <NUM> of the user B, the print queue <NUM> of the print conversion utility <NUM> for the account <NUM> of the user A, and the print queue of the print conversion utility <NUM> for the account <NUM> of the user B are registered. In this state, the user A deletes the print queue <NUM> of the OS standard print function, and thereafter the user B logs in and activates the print conversion utility <NUM>. A process in this case will be described below as an example.

<FIG> is a flowchart illustrating a process of activating the print conversion utility <NUM>. If the user B activates the print conversion utility <NUM>, the process in <FIG> is started, and the processing proceeds to step S30. While the print conversion utility <NUM> will be described below as an executor of each process, a corresponding function is realized by execution of a corresponding program by the CPU <NUM>. The entire operations are not always executed sequentially on a single process, and there may be a case where the process is moved to the OS and then returned from the OS. The flowchart illustrates major operations of the print conversion utility <NUM> for convenience and ease of understanding.

In step S31, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> of the print conversion utility <NUM> registered but that does not have the print queue <NUM> of the OS standard print function registered. In other words, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> of the print conversion utility <NUM> registered but does not have the print queue <NUM> corresponding to the print queue <NUM> registered in the OS printing system <NUM>. Specifically, for example, information (e.g., UUID) about printers registered in the print conversion utility <NUM> is acquired, and whether the acquired UUIDs are registered in the OS printing system <NUM> is determined. In a case where the print conversion utility <NUM> determines that there is a printer that has the print queue <NUM> of the print conversion utility <NUM> registered but that does not have the print queue <NUM> corresponding to the print queue <NUM> registered in the OS printing system <NUM> (NO in step S31), the processing proceeds to step S32. On the other hand, in a case where it is determined YES in step S31, the processing proceeds to step S36, and the process is ended.

In step S32, the print conversion utility <NUM> provides a confirmation screen that prompts a user to confirm whether to register the print queue <NUM> of the OS standard print function. <FIG> illustrates a print queue registration dialog <NUM> of the OS standard print function that is provided by the print conversion utility <NUM> as an example of the confirmation screen.

In step S33, the print conversion utility <NUM> receives user selection on the print queue registration dialog <NUM>. If a "DO NOT DISPLAY THIS MESSAGE AGAIN. " checkbox is selected on the print queue registration dialog <NUM> by a user, the print conversion utility <NUM> does not display the dialog thereafter for that user. Specifically, thereafter, steps S32 to S34 are skipped and step S35 is executed in the case where it is determined NO in step S31 in the process illustrated in the flowchart in <FIG>. Further, the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> on the preferences screen <NUM> in <FIG> is unselected. For re-displaying, the preferences screen <NUM> in <FIG> is opened and the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> is selected.

In step S34, the print conversion utility <NUM> determines whether an "OK" button <NUM> is selected on the print queue registration dialog <NUM>. In a case where the "OK" button <NUM> is not selected (NO in step S34), the print conversion utility <NUM> determines that the print queue <NUM> of the OS standard print function is not to be registered, and the processing proceeds to step S36 and the process is ended. On the other hand, in a case where the print conversion utility <NUM> determines that the "OK" button <NUM> is selected (YES in step S34), the print conversion utility <NUM> determines that the print queue <NUM> of the OS standard print function is to be registered, and the processing proceeds to step S35.

In step S35, the print conversion utility <NUM> executes registering the print queue <NUM> in the OS standard print function using the UUID and model information acquired from the print queue <NUM> of the print conversion utility <NUM>. Specifically, the print conversion utility <NUM> executes a registration command to issue an instruction to register the print queue <NUM> in the OS printing system <NUM>.

As described above, in the present exemplary embodiment, the corresponding print queue is registered in the OS printing system <NUM> by referring to the print queue <NUM> of the print conversion utility <NUM>. Thus, for example, even when the print queue <NUM> of the OS printing system <NUM> for the printer <NUM> is unintentionally deleted by the account <NUM> of the user A, a print queue of the printer <NUM> is registered in the OS printing system <NUM> based on the print queue <NUM> of the print conversion utility <NUM> for the printer <NUM> that is registered in the storage area of the account <NUM> of the user B. Therefore, the user B can execute printing with the printer <NUM> using the print conversion utility <NUM>.

The present exemplary embodiment is not limited to the cases of multi-user login environments. The present exemplary embodiment is also applicable to, for example, a case where the user A registers both the print queue <NUM> of the print conversion utility <NUM> and the print queue <NUM> of the OS standard print function and thereafter deletes only the print queue <NUM> of the OS standard print function. Specifically, the present exemplary embodiment is also applicable to a case where the user A deletes the print queue <NUM> of the OS standard print function and thereafter re-activates the print conversion utility <NUM>. In this case, the user A activates the print conversion utility <NUM> and the process illustrated in the flowchart in <FIG> is executed so that the print queue <NUM> of the OS standard print function is registered.

Next, a fourth exemplary embodiment of the present invention will be described below. Redundant descriptions of similarities to the third exemplary embodiment are omitted, and only differences will be described below. In the third exemplary embodiment, in the case where there is a plurality of print queues <NUM> of the print conversion utility <NUM>, all the corresponding print queues are registered in the OS printing system <NUM> regardless of the need of the user. In the fourth exemplary embodiment, in the case where there is a plurality of print queues <NUM> of the print conversion utility <NUM>, a user can select a printer to be registered as the print queue <NUM> of the OS printing system <NUM>.

<FIG> is a flowchart illustrating a process of activating the print conversion utility <NUM> according to the present exemplary embodiment. If the print conversion utility <NUM> is activated, the process in <FIG> is started, and the processing proceeds to step S40. If the user B activates the print conversion utility <NUM>, the process in <FIG> is started, and the processing proceeds to step S40. While the print conversion utility <NUM> will be described below as an executor of each process, a corresponding function is realized by execution of a corresponding program by the CPU <NUM>. The entire operations are not always executed sequentially on a single process, and there may be a case where the process is moved to the OS and then returned from the OS. The flowchart illustrates major operations of the print conversion utility <NUM> for convenience and ease of understanding.

In step S41, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> of the print conversion utility <NUM> registered but does not have the print queue <NUM> of the OS standard print function registered. Specifically, the print conversion utility <NUM> determines whether there is a printer that has the print queue <NUM> of the print conversion utility <NUM> registered but that does not have the corresponding print queue <NUM> registered in the OS printing system <NUM>. Specifically, for example, the print conversion utility <NUM> acquires information (e.g., UUID) about printers registered in the print conversion utility <NUM> and determines whether the acquired UUIDs are registered in the OS printing system <NUM>. In a case where the print conversion utility <NUM> determines that there is a printer that has the print queue <NUM> of the print conversion utility <NUM> registered but does not have the corresponding print queue <NUM> registered in the OS printing system <NUM> (NO in step S41), the processing proceeds to step S42. On the other hand, in a case where it is determined YES in step S41, the processing proceeds to step S50, and the process is ended.

In step S42, the print conversion utility <NUM> displays a selection screen <NUM> that prompts a user to select a printer for which the print queue <NUM> is to be registered in the OS printing system <NUM>. In the present exemplary embodiment, the selection screen <NUM> including a printer list <NUM> of printers that can be registered in the print queue <NUM> of the OS standard print function as illustrated in <FIG> is displayed.

In step S43, the print conversion utility <NUM> receives user selection on the printer list <NUM> in <FIG>. If a user selects a checkbox <NUM> of a printer to be registered in the OS printing system <NUM> on the printer list <NUM> and clicks a "REGISTER" button <NUM>, the printer is selected as a registration target. In the present exemplary embodiment, a plurality of printers is selectable.

If a "DO NOT DISPLAY THIS MESSAGE AGAIN. " checkbox <NUM> is selected by a user on the selection screen <NUM> in <FIG>, the print conversion utility <NUM> does not display the dialog thereafter with for that user. Specifically, steps S42 to S44 are skipped and steps S45 to S49 are executed in the case where it is determined NO in step S41. Further, the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> on the preferences screen <NUM> in <FIG> is unselected. For re-displaying, the preferences screen <NUM> in <FIG> is opened and the "CHECK REGISTRATION STATE OF PRINT QUEUE AT LOGIN" checkbox <NUM> is selected.

In step S44, the print conversion utility <NUM> determines whether there is one or more print queues to be registered in the OS standard print function. Specifically, in a case where a user selects one or more printers on the selection screen <NUM> in <FIG>, the print conversion utility <NUM> determines that there is one or more print queues to be registered in the OS standard print function (YES in step S44). On the other hand, in a case where the user clicks a "CANCEL" button <NUM> on the selection screen <NUM> in <FIG>, there is not a print queue to be registered in the OS printing system <NUM> (NO in step S44), so that the processing proceeds to step S50, and the process is ended.

In step S45, the print conversion utility <NUM> initialize the index number (n = <NUM>).

In step S46, the print conversion utility <NUM> starts loops corresponding to the number of selected printers.

In step S47, the print conversion utility <NUM> acquires the UUID and model information from the print queue <NUM> of the print conversion utility <NUM> of the nth printer and executes registration of the print queue <NUM> of the OS standard print function. Specifically, the print conversion utility <NUM> executes a registration command as an instruction to register the print queue <NUM> in the OS printing system <NUM>.

In step S48, the print conversion utility <NUM> increments the index number (n + <NUM>).

In step S49, the print conversion utility <NUM> repeats processing a number of times corresponding to the number of selected printers. Consequently, the print queues <NUM> of the printers selected by the user are registered in the OS printing system <NUM>.

As described above, in the present exemplary embodiment, in the case where there is a plurality of print queues <NUM> of the print conversion utility <NUM>, the user is notified of a list of the registered print queues <NUM> so that the user can select a printer to be registered in the OS printing system <NUM>. Thus, the user can register only the print queue <NUM> of the OS standard print function that the user desires.

The present exemplary embodiment is not limited to the cases of multi-user login environments. The present exemplary embodiment is also applicable to, for example, a case where the user A first registers the print queues <NUM> of the print conversion utility <NUM> and the print queues <NUM> of the OS standard print function that correspond to a plurality of printers and thereafter the user A deletes only the print queues <NUM> of the OS standard print function. Specifically, the present exemplary embodiment is also applicable to a case where the user A deletes all the print queues <NUM> of the OS standard print function and thereafter the user A re-activates the print conversion utility <NUM>. In this case, the user A activates the print conversion utility <NUM> and the process illustrated in the flowchart in <FIG> is executed to thereby register the desired print queue(s) <NUM> of the OS standard print function.

In each of the exemplary embodiments described above, the print conversion utility <NUM> is activated so that the process of the print conversion utility <NUM> described in the exemplary embodiment is executed. Alternatively, the process illustrated in <FIG> according to the third exemplary embodiment or the process illustrated in <FIG> according to the fourth exemplary embodiment can be executed after the process illustrated in <FIG> according to the first exemplary embodiment or the process illustrated in <FIG> according to the second exemplary embodiment. For example, as illustrated in <FIG>, the process illustrated in <FIG> according to the third exemplary embodiment can be executed at the end of the process illustrated in <FIG> according to the first exemplary embodiment.

Furthermore, the process illustrated in the flowchart in <FIG> according to the first exemplary embodiment or the process illustrated in the flowchart in <FIG> according to the second exemplary embodiment can be executed after the process illustrated in the flowchart in <FIG> according to the third exemplary embodiment or the process illustrated in the flowchart in <FIG> according to the fourth exemplary embodiment.

According to each of the first to fourth exemplary embodiments described above, in a case where a print queue is registered in one of the print conversion utility <NUM> and the OS printing system <NUM> but is not registered in the other one of the print conversion utility <NUM> and the OS printing system <NUM>, the print queue is registered in the other one of the print conversion utility <NUM> and the OS printing system <NUM>.

Claim 1:
A method of controlling an information processing apparatus (<NUM>) in which a first print queue (<NUM>) of a printing apparatus (<NUM>, <NUM>, <NUM>) is registered for print control software configured to generate print data in a predetermined format, and a second print queue (<NUM>) is registered for operating system standard print software configured to generate print data in a different format from the predetermined format, the method comprising:
in a case where the second print queue (<NUM>) of the printing apparatus (<NUM>, <NUM>, <NUM>) is registered for the operating system standard print software but the first queue is not registered for the print control software, executing a process of registering the first print queue (<NUM>) of the printing apparatus (<NUM>, <NUM>, <NUM>) for the print control software configured to generate print data in the predetermined format; and
in a case where the first print queue (<NUM>) of the printing apparatus (<NUM>, <NUM>, <NUM>) is registered for the print control software and the second print queue (<NUM>) is not registered for the operating system standard print software, executing a process of registering the second print queue (<NUM>) of the printing apparatus (<NUM>, <NUM>, <NUM>) for operating system standard print software configured to generate print data in the different format from the predetermined format
wherein, in a case where the second print queue (<NUM>) of the printing apparatus (<NUM>, <NUM>, <NUM>) for the operating system standard print software is registered by a first user account and the first print queue of the printing apparatus is registered for the print control software by the first user account, when, after the account of the first user logs out, the print control software is activated by a second user account different from the first user account, the first print queue of the printing apparatus is registered in a storage area for the second user account in the print control software based on the second print queue of the printing apparatus in the operating system standard print software and wherein the second print queue (<NUM>) is stored in an area in the operating system standard print software shared by at least the first user and the second user.