Patent Description:
There is a technique of providing a standard printing function using an operating system (hereinafter referred to as the OS standard printing function), without using software specific to a printer (hereinafter referred to as the printer-specific driver) provided by a printer vendor (see <CIT>). The OS determines whether a printer supports the OS standard printing function based on information acquired from the printer, and transmits print data generated by the OS standard printing function to the printer if the printer supports the OS standard printing function.

There is a case where an operating system (OS) standard printing function is not supported by a printer and therefore the printer cannot interpret print data generated by the OS standard printing function. There is also a case where a user wants a printer to perform printing based on more detailed print settings than those of the OS standard printing function even when the OS standard printing function is supported by the printer. <CIT> discloses a technique for setting identification information of a plurality of devices connected to a device management apparatus, wherein a registered name of a device connected to the device management apparatus is changed in a case where the registered name of the device already exists.

An aspect of the present invention is directed to the provision of a technique for enabling an appropriate print instruction to be issued using an OS standard printing function.

According to a first aspect of the present invention, there is provided a program as specified in claims <NUM> to <NUM>. According to a second aspect of the present invention, there is provided an information processing apparatus as specified in claims <NUM> to <NUM>.

Exemplary embodiments of the present disclosure will be described in detail below with reference to the attached figures. The following exemplary embodiments are not intended to limit the scope of the invention as recited in the claims, and not all of combinations of features described in the exemplary embodiments are necessarily essential to the present invention.

<FIG> is a diagram illustrating an overall configuration of a print system according to a first exemplary embodiment. A personal computer (PC) <NUM> is connected to each of a printer <NUM>, a printer <NUM>, and a printer <NUM> via a network <NUM> to communicate with each of these printers. In the present exemplary embodiment, a local area network (LAN) is used as the network <NUM>, but a wide area network (WAN) may be used instead. The connection configuration of the network may be wired or wireless, or a mixture of both. The PC <NUM> controls the printer <NUM>, the printer <NUM>, and the printer <NUM> connected via the network <NUM>.

Here, a hardware configuration of the print system according to the present exemplary embodiment will be described with reference to a block diagram in <FIG> illustrates an example of the print system in which the PC <NUM> serving as a host computer and the printer <NUM> can communicate with each other. <FIG> illustrates a hardware configuration of the printer <NUM>, and the printer <NUM> and the printer <NUM> each have a hardware configuration similar thereto.

The PC <NUM> is an example of an information processing apparatus. The PC <NUM> includes 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>, an external storage <NUM>, and an interface (I/F) unit <NUM>. The PC <NUM> of the present exemplary embodiment may be a desktop PC, or any other type of apparatus, including a notebook PC, a tablet PC, and a smartphone.

The PC <NUM> transmits, for example, an instruction for controlling the printer <NUM>, print data, and a setting command to the printer <NUM>. The CPU <NUM> controls each component of the PC <NUM>, and executes control programs such as an OS and a print conversion utility <NUM> to be described below. The ROM <NUM> stores the OS for controlling system operation. The RAM <NUM> is a memory in which a work area to be used by the CPU <NUM> is provided. The external storage <NUM> stores various control programs such as an application and the print conversion utility <NUM>.

The input unit <NUM> is an input device including a keyboard and a mouse for operating the PC <NUM>. The display unit <NUM> is a display device that displays information input from the input unit <NUM> for confirmation, user interface screens of the OS and the application, and messages. The I/F unit <NUM> is a communication module that transmits and receives data to and from the printer <NUM>.

The printer <NUM> serving as a printing apparatus is, for example, an ink jet printer. The printer <NUM> includes a CPU <NUM>, a ROM <NUM>, a RAM <NUM>, a print engine <NUM>, and an I/F unit <NUM>. The CPU <NUM> controls each of these components to be specifically described below. The ROM <NUM> stores a program for controlling the print engine <NUM>. The RAM <NUM> temporarily stores a program for operation of the print engine <NUM> and data such as a set value received from the PC <NUM>.

The print engine <NUM> performs printing on a print 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 has functions such as a function of transmitting the current status information of the printer <NUM> from the printer <NUM> to the PC <NUM>. The status information here is status data representing the state of the printer <NUM> and the status data can be transmitted from the printer <NUM> in response to a request from the PC <NUM> connected via the I/F unit <NUM>. The status data is information for notifying an operation state of the printer <NUM> such as "printing in progress" or "standby state", and an error state of the printer <NUM> such as "out of paper", "cover is open", or "no remaining ink".

A software configuration of the PC <NUM> will be described with reference to <FIG>. A drawing application <NUM>, an OS print system <NUM>, a network (NW) communication control unit <NUM>, and the print conversion utility <NUM> are operably mounted inside the PC <NUM> serving as the information processing apparatus. Although not illustrated in <FIG>, the OS is incorporated in the PC <NUM>, and resources of the PC <NUM>, e.g., each block in the PC <NUM>, are managed by the OS. In the present exemplary embodiment, macOS® is used as the OS incorporated in the PC <NUM>.

The drawing application <NUM> is software that generates drawing data based on a user instruction. The application here is software that can operate on the OS. Examples of the drawing application <NUM> include word-processing software for document creation, image editing software, and New Year's card creation software. Examples of the drawing data generated by the drawing application <NUM> include Portable Document Format (PDF) data.

In a case where a print request is made, the drawing application <NUM> outputs the generated drawing data to the OS print system <NUM>. Based on the acquired drawing data and information about print settings, the OS print system <NUM> generates a print job. The generated print job is input to a print queue <NUM> of the OS standard printing function. The print settings can be input beforehand by a user in a setting screen (to be described below with reference to <FIG>) provided by the OS print system <NUM>. The information about print settings includes information such as paper size, paper type, and information indicating which print queue is to be used for printing. The OS print system <NUM> sequentially processes a print request from the drawing application <NUM> as a job for each printer connected to the PC <NUM>.

The OS print system <NUM> is OS standard print software having a standard function for print data generation (the OS standard printing function). The OS print system <NUM> spools the drawing data generated by the drawing application <NUM>, and generates print data in a predetermined format (hereinafter may also be referred to as "standard format") conforming to the OS standard printing function. A printer supporting the OS standard printing function can interpret print data in the standard format. Therefore, the OS print system <NUM> transmits the generated print data to the printer supporting the OS standard printing function via the NW communication control unit <NUM>.

Further, the OS print system <NUM> acquires device model information of the printer via the NW communication control unit <NUM> to determine whether the printer supports the OS print system <NUM>. The information to be acquired for support determination is not limited to the device model information of the printer and may be other kind of information such as capability information of the printer. Various types of processing in the OS print system <NUM> are controlled by an OS standard printing control unit <NUM> in the OS print system <NUM>.

The print conversion utility <NUM> is print control software for enabling a print instruction to be issued using the OS standard printing function to a printer not supporting the OS standard printing function, and is installed on the PC <NUM> as appropriate. The print conversion utility <NUM> has a function of converting print data in the standard format into print data in a format specific to a printer vendor. This function will be hereinafter referred to as "vendor driver <NUM>", but the vendor driver <NUM> may not be a function equivalent to that of the conventional printer-specific driver, and may be sufficient if the vendor driver <NUM> has at least a function of converting print data into print data in a format specific to a printer vendor. After the print data is converted by the print conversion utility <NUM> into the print data in the format specific to the printer vendor, the converted print data is transmitted to the printer not supporting the OS standard printing function via the NW communication control unit <NUM>.

The printer not supporting the OS standard printing function cannot interpret the print data in the standard format generated by the OS print system <NUM>, even if the print data in the standard format is received by this printer. Therefore, in the present exemplary embodiment, the print conversion utility <NUM> converts the print data in the standard format into the print data in the format specific to the printer vendor that can be interpreted by the printer. The printer not supporting the OS standard printing function is thereby enabled to perform printing using the standard function of the OS print system <NUM>.

Specifically, in the case of a print job for the printer not supporting the OS standard printing function, the OS print system <NUM> transmits the generated print data in the standard format to a virtual printer <NUM> activated by the print conversion utility <NUM>. The virtual printer <NUM> can act as a printer supporting the OS standard printing function via a NW communication control unit, and receive a print job of the OS standard printing function. In other words, the OS print system <NUM> regards the virtual printer <NUM> as the printer supporting the OS standard printing function, and outputs the print job to the virtual printer <NUM>. The print conversion utility <NUM> converts the print data in the standard format received by the virtual printer <NUM> into print data in the format specific to the printer vendor, and transmits the converted print data to the printer via the NW communication control unit <NUM>. In <FIG>, the virtual printer <NUM> is separate from the print conversion utility <NUM>. However, in the present exemplary embodiment, the virtual printer <NUM> may be provided as one function of the print conversion utility <NUM>. Further, although the virtual printer <NUM> is present in the same PC as the PC provided with the OS print system <NUM>, the virtual printer <NUM> may be present in a different server or PC.

The print conversion utility <NUM> may be used if a print instruction is issued for a printer supporting the print conversion utility <NUM>, even in a case where the printer supports the OS print system <NUM> (i.e., even in a case where the printer can interpret print data in the standard format). More functions can be provided by using the print conversion utility <NUM>. For example, the OS standard function provided by the OS print system <NUM> does not support detailed print quality settings such as color matching processing and adjustments to tint and brightness. In other words, the OS standard printing function is limited. However, a function equivalent to a printer driver specific to a printer vendor can be provided by using the print conversion utility <NUM>.

Here, in order to use the print conversion utility <NUM> from the drawing application <NUM>, it may be desirable to register both of the print queue <NUM> included in the OS print system <NUM> for receiving a print request from the drawing application <NUM>, and a print queue <NUM> included in the print conversion utility <NUM>. The print queue <NUM> included in the print conversion utility <NUM> is a queue for controlling print data output from the virtual printer <NUM>. Without both of these print queues being registered, the drawing application <NUM> cannot convert print data using the print conversion utility <NUM>. Registering the print queue <NUM> of the print conversion utility <NUM> enables the print conversion utility <NUM> to activate the virtual printer <NUM>. Subsequently, the print conversion utility <NUM> designates the virtual printer <NUM> and automatically registers the print queue <NUM> in the OS print system <NUM>.

The print queue <NUM> of the print conversion utility <NUM> is stored in a storage area for each user. In other words, the print queue <NUM> of the print conversion utility <NUM> for a user A and the print queue <NUM> of the print conversion utility <NUM> for a user B are registered in the respective storage areas different from each other. On the other hand, the print queue <NUM> of the OS print system <NUM> is stored in a common area in the system. In other words, the print queue <NUM> of the OS print system <NUM> is shared by the user A and the user B. The print queue <NUM> of the OS print system <NUM> may be hereinafter referred to as the print queue <NUM> of the OS standard printing function.

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

Next, transition of screens to be displayed in the PC <NUM> will be described to illustrate the flow of the registration of the print queue <NUM> of the print conversion utility <NUM>.

<FIG> illustrates a printer list screen <NUM> to be provided by the print conversion utility <NUM>. The printer list screen <NUM> includes a name <NUM> of a printer registered in the print conversion utility <NUM>, a "set" button <NUM> for setting a printer, an "add" button <NUM> for registering a printer, and a "delete" button <NUM> for deleting a printer. In <FIG>, there is illustrated a state where "printer <NUM> (print conversion utility)" is displayed as the name <NUM> of the printer, and a print queue of the printer <NUM> is already registered in the print conversion utility <NUM>. The words "(print conversion utility)" added to the end of the "printer <NUM>" indicates that the printer <NUM> supports the OS standard printing function via the print conversion utility <NUM>.

When the user presses the "set" button <NUM> of the printer list screen <NUM>, the print conversion utility <NUM> opens a printer setting screen <NUM>. The printer setting screen <NUM> includes a printer name edit field <NUM>, a printer setup location edit field <NUM>, a "cancel" button <NUM>, and an "OK" button <NUM>. The print conversion utility <NUM> displays name information of the print queue <NUM> currently registered in the print conversion utility <NUM> and setup location information of the printer in the printer name edit field <NUM> and the printer setup location edit field <NUM>, respectively. In the printer setting screen <NUM>, the user can edit the contents displayed in the printer name edit field <NUM> and the printer setup location edit field <NUM>. When the user presses the "OK" button <NUM>, the print conversion utility <NUM> updates the setting information of the print queue <NUM> of the print conversion utility <NUM> based on the contents of the printer name edit field <NUM> and the printer setup location edit field <NUM>. When the user presses the "cancel" button <NUM>, the print conversion utility <NUM> closes the printer setting screen <NUM>.

When the user presses the "add" button <NUM> of the printer list screen <NUM>, the print conversion utility <NUM> opens a printer registration screen <NUM>. The printer registration screen <NUM> includes a printer list <NUM>. The printer list <NUM> displays all printers connected to the PC <NUM> and not supporting the OS standard function. Here, the printer <NUM> and the printer <NUM> which do not support the OS standard printing function are displayed. When a printer is selected in the printer list <NUM>, the name of the selected printer is displayed in a printer name text field <NUM>, and the setup location of the selected printer is displayed in a printer setup location text field <NUM>. When the user presses a "register" button <NUM>, the print queue <NUM> of the printer currently selected in the printer list <NUM> is registered in the print conversion utility <NUM> as a new print queue, based on the contents input in the printer name text field <NUM> and the printer setup location text field <NUM>.

When the print queue of the printer is registered in the print conversion utility <NUM>, the print conversion utility <NUM> adds support information for the OS standard printing function generated inside based on information about the registered printer and activates the virtual printer <NUM>. Specifically, the print conversion utility <NUM> activates the virtual printer <NUM>, based on the information about the printer (the model name, the name of the printer, and the setup location information of the printer) and the support information (a universally unique identifier (UUID) and capability information). The print conversion utility <NUM> thereby newly registers the virtual printer <NUM> which is associated with the registered print queue <NUM> and in which the same name as the name (identification information) of the registered print queue <NUM> is set. The virtual printer <NUM> can then start responding to the OS print system <NUM>. At the time of registration, the words "print conversion utility" are added to the name of the print queue <NUM> of the print conversion utility <NUM> and the name of the virtual printer <NUM>. When the print queue <NUM> is registered in the print conversion utility <NUM> and the virtual printer <NUM> associated with the print queue <NUM> is activated, the print conversion utility <NUM> executes a registration command for the print queue <NUM> of the OS standard printing function, based on the information returned to the OS print system <NUM>. The print queue <NUM> is automatically registered in the OS print system <NUM> as well by this processing, without the intervention of a user operation on a screen of the OS print system <NUM>.

When the user presses the "delete" button <NUM> in the printer list screen <NUM>, the print conversion utility <NUM> deletes the print queue <NUM> of the print conversion utility <NUM> of the selected printer. Further, the print conversion utility <NUM> stops the virtual printer <NUM> associated with the deleted print queue <NUM>. In other words, the print conversion utility <NUM> deletes the virtual printer <NUM> associated with the deleted print queue <NUM>. Furthermore, the print conversion utility <NUM> executes a delete command for the print queue <NUM> of the OS standard printing function, thereby deleting the print queue <NUM> of the OS standard printing function. The registration and the deletion of the print queue <NUM> of the OS standard printing function can be manually performed from the OS print system <NUM> to be described below.

Next, transition of screens to be displayed in the PC <NUM> will be described to illustrate the flow of the registration of the print queue <NUM> of the OS print system <NUM>. <FIG> is a diagram illustrating a printer list screen <NUM> to be provided by the OS print system <NUM>. The printer list screen <NUM> includes a print-capable printer list <NUM> that displays all printers that can be selected in printing. When the user selects a printer in the print-capable printer list <NUM> and presses a "set" button <NUM>, the OS print system <NUM> displays a printer setting screen <NUM>.

The printer setting screen <NUM> includes a printer name edit field <NUM>, a printer setup location edit field <NUM>, a "cancel" button <NUM>, and an "OK" button <NUM>. The print conversion utility <NUM> displays name information of the print queue <NUM> of a printer currently registered in the OS standard printing function and setup location information thereof in the printer name edit field <NUM> and the printer setup location edit field <NUM>, respectively. In the printer setting screen <NUM>, the user can edit the contents displayed in the printer name edit field <NUM> and the printer setup location edit field <NUM>. When the user presses the "OK" button <NUM>, the OS print system <NUM> updates the setting information of the print queue <NUM> of the OS standard printing function based on the contents of the printer name edit field <NUM> and the printer setup location edit field <NUM>. When the user presses the "cancel" button <NUM>, the OS print system <NUM> closes the printer setting screen <NUM>. When the user presses a "delete" button <NUM>, the OS print system <NUM> deletes the print queue of the selected printer and also deletes this printer from the print-capable printer list <NUM>.

When the user presses an "add" button <NUM> in the printer list screen <NUM>, the OS print system <NUM> displays a printer registration screen <NUM>. The printer registration screen <NUM> includes a registration printer list <NUM> that displays all printers connected to the PC <NUM> and supporting the OS standard printing function. Here, from the printer <NUM> connected to the PC <NUM> and supporting the OS normal printing function, the OS print system <NUM> acquires the name and capability information including support information for the OS normal printing function of the printer <NUM>, and displays information in the registration printer list <NUM> based on the acquired information. Further, the OS print system <NUM> also acquires the name and capability information of the virtual printer <NUM> activated by the print conversion utility <NUM> from the virtual printer <NUM>. Here, the printer <NUM> is an operation target of the print conversion utility <NUM>, and the virtual printer <NUM> corresponding to the printer <NUM> is activated (registered). Therefore, the OS print system <NUM> acquires the capability information of the virtual printer <NUM> corresponding to the printer <NUM> and activated by the print conversion utility <NUM> from the virtual printer <NUM>, and displays information in the registration printer list <NUM> based on the acquired capability information. The OS print system <NUM> displays a virtual printer name "printer <NUM> (print conversion utility)" as the name of the printer <NUM>, and "Network" as a connection method, in the registration printer list <NUM>.

When the user selects a printer from the registration printer list <NUM> and presses a "register" button <NUM> in the printer registration screen <NUM>, the OS print system <NUM> generates the print queue <NUM> of the selected printer in the OS print system <NUM>, and closes the printer registration screen <NUM>. When the user presses a "cancel" button <NUM>, the OS print system <NUM> closes the printer registration screen <NUM> without registering the print queue of a printer.

The printer list screen <NUM> in <FIG> displays a state where the print queue of the printer <NUM> and the print queue of the printer <NUM> are registered in the OS print system <NUM>. Although the printer <NUM> does not support the OS standard printing function, the virtual printer <NUM> corresponding to the printer <NUM> exists as a result of the registration of the print queue of the printer <NUM> in the print conversion utility <NUM>. In this way, the OS print system <NUM> acquires the name and capability information of the virtual printer <NUM> corresponding to the printer <NUM> from the virtual printer <NUM>, and thereby registers the print queue of the virtual printer <NUM> in the OS print system <NUM>. The name of the virtual printer <NUM> is the same name as the name of the print queue registered in the print conversion utility <NUM>, as described with reference to <FIG>. Therefore, the OS print system <NUM> can be regarded as having the print queue of the printer <NUM> registered therein, by having the print queue of the virtual printer <NUM> corresponding to the printer <NUM> registered therein.

<FIG> is a diagram illustrating a print setting screen <NUM> of the OS print system <NUM>. The print setting screen <NUM> is a screen for the user to make print settings for printing data generated in the drawing application <NUM>.

The user can designate a printer for printing in a printer selection pop-up menu <NUM>. The OS print system <NUM> displays the printers registered in the printer list screen <NUM> illustrated in <FIG>, as printers that can be selected. In the present exemplary embodiment, the printer <NUM> regarded as supporting the OS standard printing function artificially by the intervention of the print conversion utility <NUM> and the printer <NUM> supporting the OS standard printing function are registered as the printers that can be selected. Therefore, these are displayed in the printer selection pop-up menu <NUM>. The user can set the number of prints in a number-of-prints setting text field <NUM>. The user can set a page (pages) to be printed, using a page setting radio button <NUM> and a page designation text field <NUM>. The user can set a paper size for printing in a paper size setting pop-up menu <NUM>. The user can set the paper size of any of A4, A5, L-size, and postcard that can be printed by the printer. When the user presses a print button <NUM>, the OS print system <NUM> inputs a print job based on the settings in this screen and closes this screen. When the user presses a cancel button <NUM>, the OS print system <NUM> closes this screen without inputting a print job.

As described above, in the case of the printer not supporting the OS standard printing function, a default value for the name of a print queue to be registered in the OS print system <NUM> is the name (identification information) of the virtual printer <NUM> associated with this printer. This virtual printer <NUM> is associated with the print queue of the print conversion utility <NUM>. In other words, the default name of the virtual printer <NUM> is the name of the print queue of the print conversion utility <NUM>.

Here, in the present exemplary embodiment, in a case where the name of the print queue <NUM> of the print conversion utility <NUM> is set and subsequently the virtual printer <NUM> is activated using the set name, it is determined whether a device (here, a printer) having the same name as the name after the change is already present on the network to which the PC <NUM> is connected. In order for the OS print system <NUM> to identify a printer that can use the OS standard printing function, it may be desirable that there is only one printer by the same name on the network to which the PC <NUM> is connected. Therefore, in a case where a device (here, a printer) having the same name as the name of the virtual printer <NUM> is already present on the network, a number is added to the end of the name of the virtual printer <NUM> to differentiate it from the name of the existing device, in accordance with a discovery protocol.

However, in such a case, the name of the virtual printer <NUM> and the name of the print queue <NUM> of the print conversion utility <NUM> are different, so that it is difficult for the user to determine these are the same. Considering this point, in the present exemplary embodiment, in a case where the name of the activated virtual printer <NUM> is present on the network, the name of the print queue <NUM> of the print conversion utility <NUM> associated with the virtual printer <NUM> having the changed name is updated.

The details of the above-described processing will be described below with reference to <FIG> is a flowchart illustrating the flow of registration processing of the print conversion utility <NUM>. The flow in <FIG> begins in response to the activation of the print conversion utility <NUM> by the user. In <FIG>, the print conversion utility <NUM> is to be activated, and the name of the print queue <NUM> registered in the print conversion utility <NUM> is to be set. The print conversion utility <NUM> will be hereinafter described to perform each step of the processing, but, actually, the CPU <NUM> executes the corresponding program to implement the corresponding function. All the steps are not necessarily executed sequentially in one process, and the processing can be shifted to the OS side once and called from the OS again. The flow in <FIG> illustrates main processing of the print conversion utility <NUM> in a simple manner for convenience.

In step S01, the print conversion utility <NUM> registers the print queue <NUM> of the print conversion utility <NUM> using the set name.

In step S02, the print conversion utility <NUM> activates the virtual printer <NUM>, based on the information (the model name, the name of the printer, the setup location information of the printer) about the print queue <NUM> of the print conversion utility <NUM> and the support information (the UUID and the capability information).

In step S03, the print conversion utility <NUM> determines whether the name of the activated virtual printer <NUM> has been changed by the discovery protocol. Specifically, first, the print conversion utility <NUM> determines whether a device having the same name as the name to be set in the activated virtual printer <NUM> is present on the network to which the PC <NUM> is connected. In a case where the print conversion utility <NUM> determines that a device having the same name is present on the network, a number is added to the end of the name of the virtual printer <NUM> in accordance with the discovery protocol to avoid giving the same name. For example, suppose "printer <NUM>", not "printer <NUM> (print conversion utility)", is set in step S01 as the name of the print queue <NUM> of the printer <NUM> registered in the print conversion utility <NUM>. In this case, the name of the virtual printer <NUM> is also "printer <NUM>", but the name "printer <NUM>" is already assigned to the printer <NUM> present on the network to which the PC <NUM> belongs. Therefore, in such a case, the number <NUM> is added to the end of the name, so that the virtual printer <NUM> is given the name "printer <NUM> (<NUM>)". If the name of the virtual printer <NUM> is changed (YES in step S03), the processing proceeds to step S04. The determination as to whether a device having the same name is present on the network may be performed based on a device name (e.g., a Bonjour name) included in information transmitted from each device.

In step S04, the print conversion utility <NUM> changes the name of the print queue <NUM> of the print conversion utility <NUM> to coincide with the name of the virtual printer <NUM> changed in step S03. For example, in a case where the name of the virtual printer <NUM> is changed to "printer <NUM> (<NUM>)" in step S03, the name of the print queue <NUM> of the print conversion utility <NUM> is also changed to "printer <NUM> (<NUM>)".

In step S05, the print conversion utility <NUM> designates the virtual printer <NUM> having the name set in step S03 and executes processing for registering the print queue <NUM> of the OS standard printing function. For example, in a case where the name of the virtual printer <NUM> is changed to "printer <NUM> (<NUM>)" in step S03, the print conversion utility <NUM> registers the print queue <NUM> having a name "printer <NUM>" (<NUM>) in the OS print system <NUM>, as the print queue <NUM> associated with this virtual printer <NUM>.

In the present exemplary embodiment, in a case where the name of the virtual printer <NUM> activated by the print conversion utility <NUM> is changed by the discovery protocol, this name is reflected in the name of the print queue <NUM> of the print conversion utility <NUM> by the above-described processing. The name of the print queue <NUM> of the print conversion utility <NUM>, the name of the virtual printer <NUM>, and the name of the print queue <NUM> of the OS standard printing function thereby coincide. This makes it easier for the user to identify a printer for printing and produces an effect of enabling an appropriate print instruction to be issued. In the above-described example, step S03 is executed after step S02, but the present exemplary embodiment is not limited to this order. Whether a device having the same name is present on the network may be determined before the virtual printer <NUM> is activated. Subsequently, in a case where a device having the same name is determined to be present on the network, the virtual printer <NUM> may be activated using the name after the change.

Next, a second exemplary embodiment of the present disclosure will be described. In the following description, points common to the first exemplary embodiment will not be described, and only a different point will be described. In the present exemplary embodiment, the print conversion utility <NUM> notifies the user that a network device having the same name already exists.

The details of the above-described processing will be described below with reference to <FIG> is a flowchart illustrating the flow of registration processing for the print queue of the print conversion utility <NUM>. The flow in <FIG> begins in response to the activation of the print conversion utility <NUM> by the user. In <FIG>, the print conversion utility <NUM> is to be activated, and the name of the print queue <NUM> registered in the print conversion utility <NUM> is to be set. The print conversion utility <NUM> will be hereinafter described to perform each step of the processing, but, actually, the CPU <NUM> executes the corresponding program to implement the corresponding function. All the steps are not necessarily executed sequentially in one process, and the processing can be shifted to the OS side once and called from the OS again. The flow in <FIG> is only a flow illustrating main processing of the print conversion utility <NUM> in a simple manner for convenience.

Step S10 to step S12 in <FIG> are similar to step S01 to step S03 in <FIG> of the first exemplary embodiment and thus will not be described. For example, suppose "printer <NUM>", not "printer <NUM> (print conversion utility)", is set in step S10 as the name of the print queue <NUM> of the printer <NUM> registered in the print conversion utility <NUM>. In this case, the name of the virtual printer <NUM> is also "printer <NUM>", but the name "printer <NUM>" is already assigned to the printer <NUM> present on the network to which the PC <NUM> belongs. Therefore, in such a case, the result of the determination in step S12 is YES, and the processing proceeds to step S13.

In step S13, the print conversion utility <NUM> displays a printer name edit screen <NUM> illustrated in <FIG>. The printer name edit screen <NUM> includes a message for notifying the user that a printer having the set name is already present. The printer name edit screen <NUM> further includes a printer name edit text field <NUM> that displays the currently set name of the print queue <NUM> of the print conversion utility <NUM>. The printer name edit text field <NUM> is an input item that enables the user to edit the input printer name (a user input), based on a message prompting the user to change the name in the printer name edit screen <NUM>. When the user presses an "OK" button <NUM> in the printer name edit screen <NUM>, the print conversion utility <NUM> changes the name of the print queue <NUM> of the print conversion utility <NUM> based on the content of the printer name edit text field <NUM>.

The above-described processing is repeated until the name of the virtual printer <NUM> does not coincide with the name of a network device (here, a printer) present on the network. For example, suppose "printer <NUM> (print conversion utility)" is set in step S10 as the name of the print queue <NUM> of the printer <NUM> registered in the print conversion utility <NUM>. In this case, the name of the virtual printer <NUM> is also "printer <NUM> (print conversion utility)", and this name is different from that of any other printer present on the network to which the PC <NUM> belongs. Therefore, in such a case, the result of the determination in step S12 is NO, and the processing proceeds to step S14.

In step S14, the print conversion utility <NUM> designates the virtual printer <NUM> activated in step S11, and executes processing for registering the print queue <NUM> of the OS standard printing function. For example, the print conversion utility <NUM> registers the print queue <NUM> having the name "printer <NUM> (print conversion utility)" in the OS print system <NUM>, as the print queue <NUM> associated with the virtual printer <NUM> having the name "printer <NUM> (print conversion utility)".

As described above, in the present exemplary embodiment, the print conversion utility <NUM> notifies that the name of the registered print queue <NUM> of the print conversion utility <NUM> is already present on the network. This notification enables the user to change the name of the print queue <NUM> of the print conversion utility <NUM> again. According to the present exemplary embodiment, the name of the print queue <NUM> of the print conversion utility <NUM>, the name of the virtual printer <NUM>, and the name of the print queue <NUM> of the OS standard printing function coincide. Further, it is possible to avoid such a situation that the virtual printer <NUM> has a name not intended by the user, such as a name formed by adding a number to the end of the name of the virtual printer <NUM> in accordance with the discovery protocol. This makes it easier for the user to identify a printer for printing and produces an effect of enabling an appropriate print instruction to be issued. In the above-described example, step S12 is executed after step S11, but the present exemplary embodiment is not limited to this order. Whether a device having the same name is present on the network may be determined before the virtual printer <NUM> is activated. Subsequently, in a case where a device having the same name is determined to be present on the network, the user may be notified in step S13.

Next, a third exemplary embodiment of the present disclosure will be described. In the first exemplary embodiment and the second exemplary embodiment, the operation at the time of registration of the print queue <NUM> of the print conversion utility <NUM> is described. Here, the print conversion utility <NUM> is an application installed on the PC <NUM>, and therefore, when the operation of the PC <NUM> terminates, the operation of the print conversion utility <NUM> also terminates. Alternatively, the user can terminate the operation of the print conversion utility <NUM>. When the operation of the print conversion utility <NUM> terminates, the operation of the virtual printer <NUM> also terminates. Subsequently, when the print conversion utility <NUM> is activated again, the print conversion utility <NUM> reactivates the virtual printer <NUM> associated with the registered print queue <NUM> of the print conversion utility <NUM>. At this moment, there is a possibility that the name of the reactivated virtual printer <NUM> is the same as the name of a network device present on the network. For example, there is a possibility that, in a case where the user connects a printer of the same model to the network by using another PC, the connected printer may be given the same network device name (hereinafter may also be referred to as the Bonjour name). In such a case, the name of the reactivated virtual printer <NUM> is changed by the discovery protocol. In the present exemplary embodiment, in such a case, the name of the print queue <NUM> of the print conversion utility <NUM> is changed, or the user is prompted to change the name of the print queue <NUM> of the print conversion utility <NUM> again.

The details of the above-described processing will be described below with reference to <FIG> is a flowchart illustrating the flow of registration processing of the print conversion utility <NUM>. The flow in <FIG> begins in response to the activation of the print conversion utility <NUM> by the user. The print conversion utility <NUM> will be hereinafter described to perform each step of the processing, but, actually, the CPU <NUM> executes the corresponding program to implement the corresponding function. All the steps are not necessarily executed sequentially in one process, and the processing can be shifted to the OS side once and called from the OS again. The flow in <FIG> is only a flow illustrating main processing of the print conversion utility <NUM> in a simple manner for convenience.

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

In step S21, the print conversion utility <NUM> starts a loop to be performed for the number of the print queues <NUM> registered in the print conversion utility <NUM>.

In step S22, the print conversion utility <NUM> activates the virtual printer <NUM> associated with the nth print queue <NUM> of the print conversion utility <NUM>, based on information about the nth print queue <NUM>.

In step S23, the print conversion utility <NUM> determines whether the name of the virtual printer <NUM> activated in step S22 has been changed by the discovery protocol. Specifically, first, the print conversion utility <NUM> determines whether a device having the same name as the name to be set in the activated virtual printer <NUM> is present on the network to which the PC <NUM> is connected. In a case where the print conversion utility <NUM> determines that a device having the same name is present on the network, a number is added to the end of the name of the virtual printer <NUM> in accordance with the discovery protocol to avoid giving the same name.

In step S24, the print conversion utility <NUM> deletes the print queue <NUM> of the OS standard printing function associated with the nth print queue <NUM>, and the processing proceeds to step S25.

In step S25, the print conversion utility <NUM> performs the processing in step S04 and step S05 in <FIG> of the first exemplary embodiment. Alternatively, the processing in and after step S13 in <FIG> of the second exemplary embodiment may be performed in step S25.

As described above, in the present exemplary embodiment, the print conversion utility <NUM> is controlled so that the activated virtual printer <NUM> does not have the same name as any other device on the network even at the time of the reactivation. Further, in a case where the name of the virtual printer <NUM> is changed, the print conversion utility <NUM> changes the name of the print queue <NUM> of the print conversion utility <NUM> and re-registers the print queue <NUM> of the OS standard printing function. The name of the print queue <NUM> of the print conversion utility <NUM>, the name of the virtual printer <NUM>, and the name of the print queue <NUM> of the OS standard printing function thereby coincide. This makes it easier for the user to identify a printer for printing and produces an effect of enabling an appropriate print instruction to be issued.

Claim 1:
A program for print control software (<NUM>) implemented in an information processing apparatus (<NUM>) that, when executed by at least one processor of the information processing apparatus, causes the at least one processor to perform:
registering, in the print control software (<NUM>), a print queue (<NUM>) in which first identification information is set;
characterized in that the program causes the at least one processor to perform:
determining whether a device in which the first identification information is set is present on a network to which the information processing apparatus (<NUM>) is connected, in a case where the print queue (<NUM>) in which the first identification information is set is registered in the print control software (<NUM>);
activating a virtual printer (<NUM>) associated with the print queue (<NUM>), wherein the virtual printer (<NUM>) is configured to receive print data in a standard format generated by an OS standard print software to be converted by the print control software (<NUM>) into print data in a format specific to a printer vendor, wherein identification information of the virtual printer is set to second identification information different from the first identification information, in a case where a device in which the first identification information is set is determined to be present on the network; and
changing identification information of the print queue (<NUM>) registered in the print control software (<NUM>) from the first identification information to the second identification information to coincide with the identification information of the virtual printer (<NUM>).