Patent Description:
For Windows (registered trademark), a special-purpose application for extending the features of a printer driver can be provided. This application is called Windows Store Device App (WSDA). When a vendor that offers a printing device provides WSDA, the vendor can customize a print setting screen used when printing is performed from a specific application (<CIT>).

Recently, there has been a demand for a further increase in convenience of print processing.

<CIT> describes the use of plug-ins to extend functionality of a printer driver. <CIT> is directed to providing extended functions to a printer driver.

In view of the above-described issue, the present invention is made to further increase convenience of print processing.

The present invention in its first aspect provides an information processing apparatus as specified in claims <NUM> to <NUM>.

The present invention in its second aspect provides a control method as specified in claims <NUM> to <NUM>.

The present invention in its fourth aspect provides a computer-readable storage medium as specified in claim <NUM>.

Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings. The following embodiments are not intended to limit the present invention described in the claims, and all combinations of features described in the embodiments are not necessarily essential to solutions of the present invention. Note that the same constituent elements are assigned the same reference numerals, and descriptions thereof will be omitted.

<FIG> is a block diagram illustrating a hardware configuration of a print system. In this figure, a host computer <NUM> is an example of an information processing apparatus and includes an input interface <NUM>, a central processing unit (CPU) <NUM>, a read-only memory (ROM) <NUM>, a random access memory (RAM) <NUM>, a hard disk drive (HDD) <NUM>, an output interface <NUM>, and an input/output interface <NUM>. To the input interface <NUM>, input devices, such as a keyboard <NUM> and a pointing device <NUM>, are connected. To the output interface <NUM>, a display device, such as a display unit <NUM>, is connected.

In the ROM <NUM>, an initialization program is stored. In the HDD <NUM>, a group of application programs, an operating system (OS), a print data generation application, various types of data, and so on are stored. The RAM <NUM> is used as, for example, a work memory that is used when various programs stored in the HDD <NUM> are executed.

In this embodiment, the CPU <NUM> performs processing in accordance with procedures in the programs stored in the HDD <NUM> to thereby execute features described below in the host computer <NUM> and processing based on flowcharts described below. A printing device <NUM>, which is a device, is connected to the host computer <NUM> via the input/output interface <NUM>. Here, the host computer <NUM> and the printing device <NUM> are separately configured; however, these may be configured as one information processing apparatus. As the printing device <NUM>, for example, an inkjet printer that performs printing by ejecting ink onto paper is assumed, and a description is given. However, printing may be performed with other methods (for example, an electrophotographic method). The host computer <NUM> may be a desktop computer, a smartphone, or a laptop computer.

<FIG> are diagrams illustrating data flows in printing. <FIG> is a diagram illustrating a data flow in a case where an extended application <NUM> is not associated with an application <NUM>, print data generation software <NUM>, or the printing device <NUM>. A user gives a print instruction from the application <NUM>. The application <NUM> is software that creates contents to be printed and, for example, is a word processing application or a spreadsheet application. In a case of giving a print instruction, the user performs a setting process using a print setting screen provided by the OS or the print data generation software <NUM>. In this setting process, the print data generation software <NUM> generates print setting information. The print setting information includes settings corresponding to set values that are set by using the print setting screen. The print setting information may be called PrintTicket. The OS generates intermediate data (also called input data) on the basis of application data output from the application <NUM> in accordance with the print instruction and passes the intermediate data to the print data generation software <NUM>. The data output from the application <NUM> for printing is data in the Graphics Device Interface format (data in the GDI format) or data in the XML Paper Specification format (data in the XPS format). The print data generation software <NUM> generates print data that can be interpreted by the printing device <NUM> from the intermediate data on the basis of the print setting information set by the user and transmits the print data to the printing device <NUM>. The print data generation software <NUM> generates print data that can be used in print devices from multiple vendors. That is, a printing device from vendor A can use print data generated by the print data generation software <NUM> to perform printing. Further, a printing device from vendor B can use print data generated by the print data generation software <NUM> to perform printing. The printing device <NUM> performs printing on paper on the basis of the print data transmitted from the print data generation software <NUM>.

<FIG> is a diagram illustrating a data flow in a case where the extended application <NUM> is associated with the print data generation software <NUM>. The print data generation software <NUM> is software that is included in advance in the OS. That is, when the OS is installed on the host computer <NUM>, the print data generation software <NUM> can be used. On the other hand, the extended application <NUM> is software that is not included in advance in the OS. Therefore, the user needs to operate the host computer <NUM> to download, from a server via a network, and install the extended application <NUM>. In a case where the printing device <NUM> is connected to the host computer <NUM>, the CPU <NUM> obtains device identification information from the printing device <NUM>. Then, the CPU <NUM> may obtain, from a server via a network, and install the extended application <NUM> that corresponds to the obtained device identification information. That is, the print data generation software <NUM> and the extended application <NUM> are retained in the host computer <NUM> as separate files. The print data generation software <NUM> and the extended application <NUM> may be updated and upgraded, and this update process is performed at separate timings. That is, a timing at which the print data generation software <NUM> is obtained by the host computer <NUM> is different from a timing at which the extended application <NUM> is obtained by the host computer <NUM>. Further, a trigger for the host computer <NUM> to obtain the print data generation software <NUM> is different from a trigger for the host computer <NUM> to obtain the extended application <NUM>. In a case where the extended application <NUM> is installed, the OS associates the print data generation software <NUM> and the extended application <NUM> with each other. The extended application <NUM> described in this embodiment, and according to the invention, includes a print setting screen extension unit <NUM>, a layout extension unit <NUM>, and a preview unit <NUM>.

The extended application <NUM> stops running each time processing by each unit ends. In this case, the OS launches the extended application <NUM> each time a request for using each unit is received. Another form may be employed in which, for example, the OS stops the extended application <NUM> that is running when processing by the print setting screen extension unit <NUM> ends but the OS keeps the extended application <NUM> running even when processing by the layout extension unit <NUM> ends.

Now, the layout extension unit <NUM> and the preview unit <NUM> are described. The layout extension unit <NUM> performs a layout process on the basis of intermediate data before processing by the print data generation software <NUM>. The layout extension unit <NUM> provides a page layout print feature (also called N in <NUM> printing) of arranging and printing a plurality of pages on a side of one sheet. The preview unit <NUM> performs at least one of display and editing of print data generated by the print data generation software <NUM>. Each of the units of the extended application <NUM> can display a user interface (UI) but need not display a UI. For example, the layout extension unit <NUM> may be configured such that the layout extension unit <NUM> does not display a UI but only edits intermediate data and outputs the edited intermediate data to the print data generation software <NUM>. In a case where the layout extension unit <NUM> can display a UI, for example, the layout extension unit <NUM> displays a preview screen that includes a preview image and a setting area for changing print setting information on the basis of the intermediate data. The configuration of the extended application <NUM> for implementing the present invention is not limited to a configuration having all of the above-described features. The extended application <NUM> may be simply called print software.

The user gives a print instruction from the application <NUM>. At this time, the user performs a setting process using the print setting screen provided by the print setting screen extension unit <NUM> of the extended application <NUM>. In this setting process, the print setting screen extension unit <NUM> generates print setting information. The details of this print setting feature will be described below with reference to <FIG>.

The OS generates, in accordance with a print instruction, intermediate data on the basis of application data and print setting information and launches the layout extension unit <NUM> of the extended application <NUM>. The intermediate data includes drawing data corresponding to contents to be printed and the print setting information. The OS generates, for example, data in the XPS format as the intermediate data on the basis of GDI data output from the application <NUM>. In a case where the application <NUM> outputs data in the XPS format as the application data, the OS may pass the data in the XPS format to the layout extension unit <NUM> as is. In a case where the application <NUM> outputs data in the XPS format as the application data, the OS may modify the data in the XPS format, which is the application data, to generate data in the XPS format. The layout extension unit <NUM> edits the drawing data on the basis of the drawing data included in the generated intermediate data and the print setting information generated by using, for example, a screen illustrated in <FIG>. The layout extension unit <NUM> outputs the edited drawing data to the print data generation software <NUM>. The print data generation software <NUM> generates and outputs print data that can be interpreted by the printing device <NUM> on the basis of the print setting information generated in accordance with a setting operation by the user and the edited drawing data. Subsequently, the OS launches the preview unit <NUM> of the extended application <NUM>. The preview unit <NUM> obtains the print data generated by the print data generation software <NUM> and displays a print preview. After the user has confirmed with the print preview that a desired print result can be obtained, the user uses a UI of the print preview to give a print start instruction. When receiving the print start instruction from the user, the preview unit <NUM> outputs the print data. The print data output from the preview unit <NUM> is transmitted to the printing device <NUM>. The printing device <NUM> performs printing on paper on the basis of the print data transmitted from the host computer <NUM>. With the above-described configuration, the layout feature and the print preview feature not provided by the print data generation software <NUM> are made available to the user by the extended application <NUM>.

<FIG> illustrates an example of the print setting screen provided by the print setting screen extension unit <NUM> of the extended application <NUM>. When performing printing from the application <NUM>, the user uses this screen to set print setting information. In a case where the extended application <NUM> is not associated with the print data generation software <NUM>, etc., a default print setting screen provided by the OS or the print data generation software <NUM> is generally used. On the default print setting screen, only print setting information corresponding to features provided by the print data generation software <NUM> can be set. On the other hand, on the print setting screen provided by the extended application <NUM>, print setting information corresponding to the extended features provided by the extended application <NUM> can also be set. In the example illustrated in <FIG>, setting for page layout printing provided by the layout extension unit <NUM> and setting for the print preview feature provided by the preview unit <NUM> can be performed.

<FIG> is a diagram schematically illustrating the page layout print feature provided by the layout extension unit <NUM> of the extended application <NUM>. In page layout printing, layout is done such that a plurality of pages in intermediate data based on application data are arranged on a side of one sheet. In the example illustrated in <FIG>, two-page printing (<NUM> in <NUM>) is set, and the layout extension unit <NUM> generates drawing data <NUM> in which two consecutive pages <NUM> and <NUM> are arranged on a side of one sheet. In addition to two-page printing, a setting for arranging a larger number of pages on a side of one sheet is available. It is assumed that the layout extension unit <NUM> in this embodiment has a layout feature for two-page printing and four-page printing as the page layout print feature, and the following description is given.

<FIG> illustrates an example of a print preview screen provided by the preview unit <NUM> of the extended application <NUM>. A display item <NUM> is used to change pages to be displayed on a print preview. The user can operate the display item <NUM> to change pages to be displayed and check the total number of pages to be printed based on the current print data and print settings. A display item <NUM> is a print preview screen for displaying an image of a print result of specified pages. A display item <NUM> is a button for starting printing. A display item <NUM> is a cancel button and, when the user presses this button, subsequent print processing is cancelled. The preview image illustrated in <FIG> corresponds to contents generated by the application <NUM>.

A vendor that offers the printing device <NUM> can extend the features of the print data generation software <NUM> by using the extended application <NUM>. However, when the extended application <NUM> is associated with the print data generation software <NUM> and the extended application <NUM> is launched each time printing is performed, the total time taken to perform printing may increase, which causes concern. Accordingly, the user performs launch setting for the extended application <NUM> to switch between launch and non-launch of the extended application <NUM>, so that print processing is appropriately performed.

That is, the user sets ON or OFF as the launch setting of the extended application <NUM>. For example, the screen illustrated in <FIG> may be used to set ON or OFF as the launch setting of the extended application <NUM>. Alternatively, the user may set ON or OFF as the launch setting of the extended application <NUM> by using another application before using the extended application <NUM>. The OS checks the launch setting of the extended application <NUM> and launches the extended application <NUM> only in a case where ON is set. Accordingly, the user can select whether to use the extended application <NUM>. With this mechanism, in a case where the user does not need the extended features provided by the extended application <NUM>, the user sets the setting to OFF, so that an increase in the total time taken to perform printing can be suppressed.

It is desirable to launch the extended application <NUM> only in a case where the user wants to use the features provided by the extended application <NUM>. For example, in a case where the extended application <NUM> provides the print preview feature, the extended application <NUM> is to be launched only in a case where the user gives a print instruction in a state where ON is set for the print preview setting on the screen illustrated in <FIG>. For this, a source that launches the extended application <NUM> needs to know whether to launch the extended application <NUM> for what setting in print setting information (hereinafter, the source that launches the extended application <NUM> is assumed to be the OS, and a description is given). Accordingly, a configuration is described in which the extended application <NUM> registers launch conditions, and the OS launches the extended application <NUM> in a case where the registered launch conditions are met.

To realize this configuration, a CUSTOM setting for which launch determination is performed on the basis of print setting information is first added to the above-described launch setting of the extended application <NUM>. In a case where CUSTOM is selected as the launch setting, the OS determines whether to launch the extended application <NUM> on the basis of the registered launch conditions.

<FIG> is a diagram illustrating an example of registration information regarding the launch conditions. In this embodiment, the extended application <NUM> provides the page layout printing provided by the layout extension unit <NUM> and the print preview feature provided by the preview unit <NUM>. The user can use the print setting screen extension unit <NUM> to perform setting for the page layout printing and the print preview for print settings that are associated with a print job.

According to the invention, when the extended application <NUM> is associated with the print data generation software <NUM>, the extended application <NUM> registers print setting information based on which launch of the extended application <NUM> is triggered. The timing at which the information is registered is not limited to the timing at which the extended application <NUM> is associated with the print data generation software <NUM>. The user can change the information at any timing using the extended application <NUM>, and the timing at which the launch condition information is registered is not limited.

As the registration information, three types of information, namely, "Feature" that indicates a target feature, "Options" that includes a list of set items for which the extended application <NUM> is to be launched if the items are set, and "Timing" that indicates the launch timing, are present. The numerical value of "Timing" is associated with a launch timing. In a case where the numerical value is equal to <NUM>, the extended application <NUM> is to be launched before launch of the print data generation software <NUM>. In a case where the numerical value is equal to <NUM>, the extended application <NUM> is to be launched after launch of the print data generation software <NUM>. In the example illustrated in <FIG>, an information item is registered so that, in a case where "JobPreview" setting corresponding to the print preview feature is set to ON, the extended application <NUM> is to be launched after launch of the print data generation software <NUM>. Further, an information item is registered so that, in a case where two-page printing (PagesPerSheet_2) or four-page printing (PagesPerSheet_4) is set for "Feature" of "JobNUpAllDocumentsContiguously" corresponding to the page layout print setting, the extended application <NUM> is to be launched before launch of the print data generation software <NUM>.

The registration information regarding the launch conditions described in this embodiment is an example for realizing the configuration, and the content of the registration information is not limited to the above-described information.

<FIG> is a flowchart regarding control of a launch process for the extended application <NUM> in the first embodiment. In this embodiment, a description is given under the assumption that the OS is responsible for launch of the extended application <NUM>; however, a configuration may be actually employed in which a launch module that is included in the OS is present. The flowchart illustrated in <FIG> starts, for example, in accordance with a print instruction given by the user using the application <NUM> after the user has set print setting information using the screen illustrated in <FIG> (that is, an instruction for causing the OS to generate intermediate data). The flowchart illustrated in <FIG> also starts in response to the print data generation software <NUM> outputting print data.

First, the OS checks the launch setting of the extended application <NUM> (S701). As the launch setting of the extended application <NUM>, any of the three settings, namely, ON, OFF, and CUSTOM, can be set. For example, as the options for "Launch of Extended Application" on the setting screen illustrated in <FIG>, ON, OFF, and "automatic" are present. In a case where ON is selected for "Launch of Extended Application" using the screen illustrated in <FIG>, determination in S701 results in ON, and in a case where OFF is selected, determination in S701 results in OFF. On the other hand, in a case where "automatic" is selected, determination in S701 results in CUSTOM. In a case where the launch setting of the extended application <NUM> is ON, the flow proceeds to S702, and the OS launches the extended application <NUM>. In a case where the launch setting of the extended application <NUM> is OFF, the OS does not launch the extended application <NUM>, and the launch process ends. In a case where the OS does not launch the extended application <NUM>, the OS inputs intermediate data to the print data generation software <NUM> to output print data to the printing device <NUM> as in <FIG>.

In a case where the launch setting of the extended application <NUM> is CUSTOM, it is determined whether the launch timing is before processing by the print data generation software <NUM> (S703), and a numerical value that corresponds to "Timing" to be checked in the launch condition information is saved as a variable n. Determination in S703 is performed on the basis of whether the flowchart illustrated in <FIG> starts in accordance with a print instruction given by the user using the application <NUM> or the flowchart starts in response to the print data generation software <NUM> outputting print data.

In a case where the flowchart illustrated in <FIG> starts in accordance with a print instruction given by the user using the application <NUM>, the OS determines that the launch timing is before processing by the print data generation software <NUM>, and saves <NUM> as the variable n (S704). On the other hand, in a case where the flowchart illustrated in <FIG> starts in response to the print data generation software <NUM> outputting print data, the OS determines that the launch timing is after processing by the print data generation software <NUM>, and saves <NUM> as the variable n (S705). Next, the OS obtains, from the launch condition information, an information item in which "Timing" matches the value of n saved in S704 or S705 (S706). For example, in a case where it is determined in S703 that the launch timing is before processing by the print data generation software <NUM>, <NUM> is saved as the variable n in S704. Then, an information item in which "Timing" is set to <NUM> is obtained in S706 from the registration information regarding the launch conditions illustrated in <FIG>. That is, the information item including "JobNUpAllDocumentsContiguously" and "PagesPerSheet_2/PagesPerSheet_4" is obtained.

Next, the OS identifies the print setting information set by the user, compares the print setting information with the information item in the launch condition information obtained in S706, and checks whether a setting that matches the information item in the launch condition information is present in the print setting information (S707). In a case where the launch conditions illustrated in <FIG> are registered, the OS checks whether the set value of "JobNUpAllDocumentsContiguously" in the print setting information is "PagesPerSheet_2" or "PagesPerSheet_4". In a case where it is determined that a matched setting is present in the print setting information, the flow proceeds to S702, and the OS launches the extended application <NUM>. In the example illustrated in <FIG>, "Timing" is set to <NUM> in only one information item. However, there may be a case where the layout extension unit <NUM> has a plurality of layout settings and the layout settings have respective set values. In this case, the OS makes a comparison with all of the registered information items and, if at least one matched setting is present, the flow proceeds to S702, and the OS launches the extended application <NUM>. In a case where a matched setting is not present in the print setting information as a result of comparison with all of the information items in the launch conditions, the OS does not launch the extended application <NUM>, and the launch process ends. That is, in this embodiment, in a case where the extended application <NUM> is launched before the print data generation software <NUM> generates print data, the extended application <NUM> edits intermediate data (input data).

For example, in a case where it is determined that the launch timing is after processing by the print data generation software <NUM>, <NUM> is saved as the variable n in S705. Then, an information item in which "Timing" is set to <NUM> is obtained in S706 from the registration information regarding the launch conditions illustrated in <FIG>. That is, the information item including "JobPreview" and "ON" is obtained. Next, the OS checks the print setting information set by the user, compares the print setting information with the information item in the launch condition information obtained in S706, and checks whether a setting that matches the information item in the launch condition information is present in the print setting information (S707). In a case where the launch conditions illustrated in <FIG> are registered, the OS checks whether the set value of "Preview" in the print setting information is ON. In a case where it is determined that a matched setting is present in the print setting information, the flow proceeds to S702, and the OS launches the extended application <NUM>. That is, in this embodiment, in a case where the extended application <NUM> is launched after the print data generation software <NUM> has generated print data, the extended application <NUM> displays a preview image using the print data.

As described above, in this embodiment, the OS is allowed to launch the extended application <NUM> on the basis of the registered launch condition information only in a case where the features provided by the extended application <NUM> are to be used. Accordingly, in a case of printing in which the user does not use the extended features provided by the extended application <NUM>, a decrease in performance caused by association of the extended application <NUM> can be made smaller.

In the process illustrated in <FIG>, the case where, as the launch setting of the extended application <NUM>, any of the three settings, namely, ON, OFF, and CUSTOM, can be set has been described. However, there may be a case where, as the options for "Launch of Extended Application" on the screen illustrated in <FIG>, only ON and OFF are present. In this case, the OS does not perform the process from S703 to S707. On the other hand, in the process illustrated in <FIG>, there may be a case where, as the launch setting of the extended application <NUM>, only CUSTOM is set. In this case, options for "Launch of Extended Application" need not be present on the screen illustrated in <FIG>, and the OS performs the process in S702 and the process from S703 to S707 but does not perform the process in S701. That is, if the extended application is launched under an appropriate condition, all of the steps need not be performed.

In this embodiment, the method has been described in which the launch setting for the extended application <NUM> is performed by using the screen illustrated in <FIG>; however, other methods which are not part of the claimed invention may be employed. For example, when the extended application <NUM> is independently launched, a screen <NUM> as illustrated in <FIG> may be displayed. A display item <NUM> is used to accept selection of a target printing device. A display item <NUM> is used to display a screen illustrated in <FIG>. The user may use a display item <NUM> on the screen illustrated in <FIG> to specify a method for launching the extended application <NUM>. In a case where the display item <NUM> on the screen illustrated in <FIG> is selected, the screen illustrated in <FIG> may be displayed. In the display item <NUM> on the screen illustrated in <FIG>, a printing device registered in the associated print data generation software <NUM> is displayed. In a case where a plurality of printing devices are registered in the print data generation software <NUM>, the plurality of printing devices are displayed as options. In a case where "Printer Information" is selected on the screen illustrated in <FIG>, state information regarding a printing device selected in the display item <NUM> (the state of the printing device, the amount of remaining ink of the printing device, etc.) is displayed. The state information regarding the printing device may be obtained via the print data generation software <NUM>. Address information regarding a printing device selected in the display item <NUM> may be obtained from the print data generation software <NUM>, and the extended application <NUM> may use the obtained address information to obtain state information regarding the printing device. In a case where "Order for Ink" is selected, a Web browser may be launched to display a Web page for ordering an ink. In a case where "Ink Model" is selected, information regarding inks that can be used in a printing device selected in the display item <NUM> may be displayed.

In the first embodiment, print setting information that serves as launch conditions is registered, and the OS launches the extended application <NUM> only in a case where a matched setting is set, thereby realizing the configuration in which the extended application <NUM> is launched only when the user needs the extended features. However, in the first embodiment, the registered launch conditions need to be compared with print setting information set by the user at each launch timing, and therefore, the process for checking settings takes time, which is an issue. Specifically, as a larger number of launch conditions are set, it takes longer for the OS to determine whether the print setting information matches the launch conditions. Accordingly, in this embodiment, a method for reducing the time taken to determine whether to launch the extended application <NUM> is proposed. In this embodiment, a common extended application launch setting for triggering launch of the extended application <NUM> is included in print setting information. Then, the print setting screen extension unit <NUM> of the extended application <NUM> changes the extended application launch setting on the basis of print setting information set by the user, and a launch instruction is given accordingly. Although the extended application <NUM> is offered from each vendor, the extended application launch setting described above is set in common from the extended application <NUM> from any vendor. Accordingly, when launching the extended application <NUM>, the OS needs to, for example, only refer to the extended application launch setting in the print setting information. As a result, information to be referred to by the OS can be reduced, and the time taken to determine whether to launch the extended application <NUM> can be reduced accordingly.

<FIG> is an example flowchart illustrating a process for setting the extended application launch setting by the print setting screen extension unit <NUM>. The process illustrated in <FIG> may be performed at a timing at which "OK" button is pressed on the screen illustrated in <FIG>. Alternatively, the process illustrated in <FIG> may be performed each time print setting information is changed on the screen illustrated in <FIG>.

Here, as the extended application launch setting, two settings, namely, LaunchExtendAppBefore indicating that the extended application <NUM> is to be launched before launch of the print data generation software <NUM> and LaunchExtendAppLater indicating that the extended application <NUM> is to be launched after launch of the print data generation software <NUM>, are provided. In the extended application launch setting, ON or OFF can be set for each of the two settings, and setting ON indicates that the extended application <NUM> is to be launched at a corresponding timing. In this embodiment, the extended application launch setting has two settings, and determination as to whether to launch the extended application <NUM> before or after launch of the print data generation software <NUM> is performed. However, according to a non-claimed alternative, a configuration may be employed in which a single setting is used to determine whether to launch the extended application <NUM> before or after launch of the print data generation software <NUM> on the basis of a set value. In this case, as the set value, three values need to be provided, namely, a value indicating that the extended application <NUM> is to be launched before launch of the print data generation software <NUM>, a value indicating that the extended application <NUM> is to be launched after launch of the print data generation software <NUM>, and a value indicating that the extended application <NUM> is not launched. In a case where the extended application <NUM> is to be launched only before launch of the print data generation software <NUM> or only after launch of the print data generation software <NUM>, determination can be performed on the basis of whether the set value of the single setting is ON or OFF.

First, the print setting screen extension unit <NUM> checks whether print setting information set by the user includes a setting for which the layout extension unit <NUM> is to be used (S801). In a case where the extended application <NUM> is to be launched in accordance with conditions the same as those in the registration information illustrated in <FIG>, the print setting screen extension unit <NUM> checks whether two-page printing or four-page printing is set for the page layout setting.

In a case where it is determined that a setting for which the layout extension unit <NUM> is to be used is present in the print setting information, the print setting screen extension unit <NUM> sets the LaunchExtendAppBefore setting to ON (S802).

Next, the print setting screen extension unit <NUM> checks whether the print setting information set by the user includes a setting for which the preview unit <NUM> is to be used (S803). In a case where the extended application <NUM> is to be launched in accordance with conditions the same as those in the registration information illustrated in <FIG>, the print setting screen extension unit <NUM> checks whether ON is set for the print preview setting. In a case where it is determined that a setting for which the preview unit <NUM> is to be used is present in the print setting information, the print setting screen extension unit <NUM> sets the LaunchExtendAppLater setting to ON (S804). Accordingly, the extended application launch setting can be appropriately performed in accordance with the print setting information set by the user.

<FIG> is a flowchart of an example of the launch process for the extended application <NUM> in the second embodiment. The OS launches the extended application <NUM> at an appropriate timing on the basis of the extended application launch setting set by the print setting screen extension unit <NUM>. Also in this embodiment, a description is given under the assumption that the OS is responsible for launch of the extended application <NUM>; however, a configuration may be actually employed in which a launch module that is included in the OS is present.

The process to be performed in a case where determination in S901 in <FIG> results in ON or OFF is the same as that illustrated in <FIG>, and therefore, a description thereof will be omitted, and the process in step S903 and the subsequent steps in a case where CUSTOM is set is described.

In the case where the launch setting of the extended application <NUM> is set to CUSTOM, the OS determines whether the launch timing is before processing by the print data generation software <NUM> (S903). In a case where the launch timing is before processing, the flow proceeds to S904, and in a case where the launch timing is after processing, the flow proceeds to S905. In S904, the OS checks whether ON is set for the LaunchExtendAppBefore setting indicating whether to launch the extended application <NUM> before launch of the print data generation software <NUM>. In a case where ON is set, the OS launches the extended application <NUM>. In a case where OFF is set, the OS does not launch the extended application <NUM>, and the launch process ends.

In S905, the OS checks whether ON is set for the LaunchExtendAppLater setting indicating whether to launch the extended application <NUM> after launch of the print data generation software <NUM>. In a case where ON is set, the OS launches the extended application <NUM>. In a case where OFF is set, the OS does not launch the extended application <NUM>, and the launch process ends. As in the first embodiment, the OS outputs intermediate data to the print data generation software <NUM> and outputs print data to the printing device <NUM>.

In this embodiment, part of launch determination for the extended application <NUM> based on print settings is performed at the time of printing, and the extended application launch setting is set, so that the load of the launch determination process performed by the launch module can be reduced. Accordingly, part of the determination process is performed at the time of print setting, and the time taken from a print start instruction given by the user until print completion can be made shorter than that in the first embodiment.

The above-described embodiments can be implemented by performing the following process. A recording medium to which program code of software for realizing the functions of the above-described embodiments is recorded is supplied to a system or an apparatus. Then, a computer (or a CPU or a micro-processing unit (MPU)) of the system or the apparatus reads and executes the program code stored in the recording medium. Accordingly, the above-described functions can be realized. In this case, the program code read from the recording medium realizes the functions of the above-described embodiments, and the recording medium that stores the program code constitutes the present invention.

As the recording medium for supplying the program code, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a compact disc read-only memory (CD-ROM), a compact disc recordable (CD-R), a magnetic tape, a nonvolatile memory card, a ROM, or a digital versatile disc (DVD) can be used.

When the computer executes the read program code, not only the functions of the above-described embodiments are realized. A case where an OS, etc. running on the computer performs part or all of the actual processing in accordance with instructions of the program code and the functions of the above-described embodiments are realized by the processing is also included in the present invention.

Further, the program code read from the recording medium may be written to a memory included in a function extension board that is inserted into the computer or a memory included in a function extension unit that is connected to the computer. Then, a CPU, etc. included in the function extension board or a CPU, etc. included in the function extension unit may perform part or all of the actual processing. With the processing, the functions of the above-described embodiments are realized.

With the present invention, convenience of print processing can be increased.

Claim 1:
An information processing apparatus having print data generation software (<NUM>) and print software (<NUM>) installed thereon, the print data generation software (<NUM>) having been obtained at a first timing, the print software (<NUM>) being different from the print data generation software (<NUM>) and obtained at a second timing different from the first timing, wherein the print software (<NUM>) comprises a print setting screen extension unit (<NUM>), a layout extension unit (<NUM>), and a preview unit (<NUM>);
the information processing apparatus comprising:
associating means configured to associate the print data generation software (<NUM>) with the print software (<NUM>);
setting means configured to set print setting information set by a user using a setting screen provided by the print software (<NUM>) using the print setting screen extension unit (<NUM>), and configured to register launch condition information which determines whether the print software (<NUM>) should be launched when a print instruction comprising a request for using the layout extension unit (<NUM>) or the preview unit (<NUM>) is received, wherein the print software (<NUM>) stops running each time processing by the print setting screen extension unit (<NUM>) ends; and
control means configured to, when the print instruction is received, launch the print software (<NUM>) in a case where the set print setting information includes a setting that matches the registered launch condition information for the print software (<NUM>), and to suppress launch of the print software (<NUM>) in a case where the set print setting information does not include a setting that matches the registered launch condition information for the print software (<NUM>), wherein
the print data generation software (<NUM>) associated with the print software (<NUM>) is configured to generate print data based on the print setting information set by using the setting screen provided by the print software (<NUM>) and to transmit the print data to a printing device (<NUM>).