Information processing apparatus using a plurality of setting screens, information processing method using the same, and information processing system using the same

An information processing apparatus executes a first program to display a first print setting screen; and executes a second program to display a second print setting screen that is different from the first print setting screen. The executing of the first program includes displaying the first print setting screen; accepting a first changing operation of changing setting information of a function relating to a printing operation, at the displayed first print setting screen; and storing the changed setting information in a shared storage that is accessible by the second program, in response to accepting the first changing operation. The executing of the second program includes acquiring the setting information from the shared storage; and displaying the second print setting screen based on the acquired setting information, such that the first changing operation performed at the first print setting screen is applied to the second print setting screen.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2016-180199, filed on Sep. 15, 2016 and Japanese Patent Application No. 2016-217773, filed on Nov. 8, 2016, the contents of which are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing apparatus, an information processing method, and an information processing system.

2. Description of the Related Art

In the Windows Operating System (OS) on and subsequent to Windows (registered trademark) 8, two types of user interfaces (UI) are adopted; namely, a UI used for a desktop application and a UI used for a store application. Hereinafter, the UI used for the desktop application is referred to as “desktop UI”, and the UI used for the store application is referred to “store application UI”.

Furthermore, with the Version 4 printer driver, which is the architecture of the printer driver adopted in the Windows OS on and subsequent to Windows 8, a print setting screen specific to a vendor (vender-specific print setting screen) can be displayed by both the desktop UI and the store application UI.

Here, the vender-specific print setting screen in the desktop UI can be displayed by the Version 4 printer supporting a module referred to as PrinterExtensions. Furthermore, the vender-specific print setting screen in the store application UI can be displayed by the Version 4 printer supporting a module referred to as a store device application (DCA: Device Companion Application).

In the Version 4 printer driver, there is a known technique capable of applying customization of print settings to both PrinterExtensions and the store device application (see, for example, Patent Document 1).

Here, in the print setting screen, in addition to making print settings (for example, the document size, double-sided/single-sided, and aggregate number, etc.), it is possible to set various functions that the user can add, change, or delete. For example, in the print setting screen, it is possible to set a “setting set” in which a plurality of print settings can be registered as a single set, and to set an image used for a watermark, etc.

SUMMARY OF THE INVENTION

An aspect of the present invention provides an information processing apparatus, an information processing method, and an information processing system, in which one or more of the disadvantages of the related art are reduced.

According to one aspect of the present invention, there is provided an information processing apparatus including a processor, in communication with a memory, executing a process including executing a first program configured to display a first print setting screen on a display device; and executing a second program configured to display a second print setting screen that is different from the first print setting screen, on the display device, wherein the executing of the first program includes displaying the first print setting screen; accepting a first changing operation of changing setting information of a function relating to a printing operation, at the displayed first print setting screen, the first changing operation being input via a user interface; and storing the changed setting information in a shared storage that is accessible by the second program, in response to accepting the first changing operation, and wherein the executing of the second program includes acquiring the setting information from the shared storage; and displaying the second print setting screen based on the acquired setting information, such that the first changing operation performed at the first print setting screen is applied to the second print setting screen.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the related art, for example, after installing the printer driver and the store device application, the settings of various functions cannot be applied to both the PrinterExtensions and the store device application.

A problem to be solved by an embodiment of the present invention is to enable the sharing of functional settings between different print setting screens.

In the following, embodiments of the present disclosure are described in detail by referring to the accompanying drawings.

First, a system configuration of an information processing system1according to an embodiment is described by referring toFIG. 1.FIG. 1is a diagram illustrating a system configuration of an example of the information processing system1according to the embodiment.

As illustrated inFIG. 1, the information processing system1according to the embodiment includes one or more client devices10; one or more image forming apparatuses20; and a server apparatus30. These devices are coupled to each other through a network N, such as a local area network (Local Area Network), so that these devices can communicate each other.

The client device10may be, for example, a personal computer (PC), a smartphone, or a tablet terminal. Upon receiving, for example, a print instruction from a user, the client device10creates print data from data to be printed (print target data), and the client device10transmits the print data to the image forming apparatus20. Alternatively, upon receiving, for example, a print instruction from a user, the client device10transmits print target data to the server apparatus30.

Note that the print target data is, for example, printable electronic data, such as image data and document data. Furthermore, the print data is, for example, electronic data obtained by converting the print target data into data in a Page Description Language (PDL) format that can be printed by the image forming apparatus20.

The image forming apparatus20is, for example, a printer or a Multifunction Peripheral (MFP) with a printing function. The image forming apparatus20prints the print data received from the client device10or the server apparatus30.

The server apparatus30is, for example, a personal computer (PC). For example, the server apparatus30creates print data from print target data received from the client device10, and the server apparatus30transmits the created print data to the image forming apparatus20.

The server apparatus30may also function as a file server. Namely, the server apparatus30may store, for example, print data received from the client device10, and, upon receiving a request from the image forming apparatus20, the server apparatus30may transmit the stored print data to the requesting image forming apparatus20.

Note that, in the following descriptions, when the one or more client devices10are to be distinguished from each other, the one or more client devices10may be denoted as “client device10-1” and “client device10-2,” for example. Similarly, when the one or more image forming apparatuses20are to be distinguished from each other, the one or more image forming apparatuses20may be denoted as “image forming apparatus20-1” and “image forming apparatus20-2,” for example.

Next, hardware configurations of the client device10, the image forming apparatus20, and the server apparatus30that are included in the information processing system1according to the embodiment are described by referring toFIG. 2andFIG. 3.

<<The Client Device10and the Server Apparatus30>>

FIG. 2is a diagram illustrating hardware configurations of examples of the client device10and the server apparatus30according to the embodiment. Note that the client device10and the server apparatus30have similar hardware configurations. Thus, in the following, the hardware configuration of the client device10is described.

As illustrated inFIG. 2, the client device10according to the embodiment includes an input device101; a display device102; an external I/F103; and a Random Access Memory (RAM)104. Furthermore, the client device10includes a Read Only Memory (ROM)105; a Central Processing Unit (CPU)106; a communication I/F107; and a Hard Disk Drive (HDD)108. These hardware components are coupled to each other through a bus B.

The input device101includes a keyboard, a mouse, and a touch panel; and the input device101is used by a user to input various operation signals. The display device102includes a display. The display device102displays a processing result by the client device10. Note that at least one of the input device101and the display device102may be coupled to the client device10so as to be used when it is necessary.

The communication I/F107is an interface for coupling the client device10to the network N. The client device10can perform communication through the communication I/F107.

The HDD108is a non-volatile storage device for storing a program and data. As the program and the data stored in the HDD108, there are an Operating System (OS) that is a system software for controlling the entire client device10and an application software that provides various types of functions on the OS.

Note that, instead of the HDD108, the client device10may include a drive device (e.g., a solid state drive (SSD)) that uses a flash memory as the storage medium. Furthermore, the HDD108manages the stored program and data by a predetermined file system or a database (DB).

The external I/F103is an interface with an external device. The external device includes a recording medium103a. The client device10can read data from and write data in the recording medium103athrough the external I/F103. Examples of the recording medium103ainclude a flexible disk, a Compact Disk (CD), a Digital Versatile Disk (DVD), a SD memory card, and a Universal Serial Bus (USB) memory.

The ROM105is a non-volatile semiconductor memory that can maintain a program and data, even if a power source is turned off. The ROM105stores an OS setting; a program and data, such as network setting; and a Basic Input/Output System (BIOS) that is executed for activating the client device10. The RAM104is a volatile semiconductor memory for temporarily storing a program and data.

The CPU106is a processor that performs control of the entire client device10and that implements other functions of the client device10by reading out a program and data from a storage device, such as the ROM105and the HDD108, onto the RAM104, and executing a process based on the program and the data.

Each of the client device10and the server apparatus30according to the embodiment is provided with the hardware configuration illustrated inFIG. 2, so that various types of processes, which are described below, can be implemented.

FIG. 3is a diagram illustrating a hardware configuration of an example of the image forming apparatus20according to the embodiment.

As illustrated inFIG. 3, the image forming apparatus20according to the embodiment includes a controller201; an operations panel202; an external interface (I/F)203; a communication I/F204; and a plotter205. Furthermore, the controller201includes a Central Processing Unit (CPU)211; a Random-Access Memory (RAM)221; a Read-Only Memory (ROM)231; a Non-Volatile RAM (NVRAM)241; and a Hard Disk Drive (HDD)251.

The ROM231is a non-volatile semiconductor memory storing various types of programs and data. The RAM221is a volatile semiconductor memory that temporarily stores a program and data. The NVRAM241stores, for example, setting information. Furthermore, the HDD251is a non-volatile storage device that stores various types of programs and data.

The CPU211is a processor that implements overall control and other functions of the image forming apparatus20by reading out a program, data, setting information, etc., from the ROM231, the NVRAM241, and/or the HDD251onto the RAM221and executing a process based on the program and the data.

The operations panel202includes an input unit that receives an input from a user and a display unit that performs display. The external I/F203is an interface with an external device. As an example of the external device, there is a recording medium203a. The image forming apparatus20is capable of performing reading out data from and writing data in the recording medium203athrough the external I/F203. Examples of the recording medium203ainclude an IC card, a flexible disk, a Compact Disk (CD), a Digital Versatile Disk (DVD), a Secure Digital (SD) memory card, and a Universal Serial Bus (USB) memory.

The communication I/F204is an interface for coupling the image forming apparatus20to a network N. The image forming apparatus20is capable of communicating through the communication I/F204. The plotter205is a printer for printing print data.

The image forming apparatus20according to the embodiment is provided with a hardware configuration illustrated inFIG. 3, so that the image forming apparatus20is capable of executing various types of processes described below.

<Software Configuration of the Client Device10>

In the following, the software configuration of the client device10according to the embodiment is described by referring toFIG. 4.FIG. 4is a diagram illustrating a software configuration of an example of the client device10.

As illustrated inFIG. 4, the client device10according to the embodiment includes an application301; an Operating System (OS)302; a printer driver303; and a store device application304.

The application301is application software, such as document creation software, image browsing/editing software, and a browser, that is capable of indicating the OS302to print, in response to receiving a print instruction from a user. The application301includes a store application311and a desktop application321.

The store application311is, for example, an application that is available from “Windows Store” that provides applications to Windows (registered trademark) 8/Windows RT and Windows OSs on and subsequent to Windows 8/Windows RT. In the store application311, a store application User Interface (UI) is used. Note that, in Windows 8 and Windows 8.1, the store application311is invoked through a UI provided by the OS302, which is referred to as “Modern UI” or “Metro UI.”

The desktop application321is, for example, an application that can be used with an Windows OS on and prior to Windows 7.

The OS302is one of the Windows OSs on and subsequent to Windows 8/Windows RT.

The printer driver303is, for example, a Version 4 printer driver (which is denoted as “V4 printer driver,” hereinafter). A V4 printer driver is based on an architecture adopted from Windows 8/Windows RT. In the following, the printer driver303may also be denoted as “V4 printer driver303”.

Note that, in Windows OS on and subsequent to Windows 8, the V4 printer driver can be used, in addition to the Version 3 printer driver (which is denoted as “V3 printer driver” hereinafter), which has been used from Windows 2000 through Windows 7.

The printer driver303includes an extension configurator313; a configuration controller323; and a renderer333.

The extension configurator313may also be referred to as a printer extension. In response to detecting that the desktop application321executes printing, the extension configurator313displays a print setting screen specific to a vendor.

The configuration controller323may also be referred to as a line-breaking script. For example, the configuration controller323verifies whether a combination of print configurations is valid. For example, the extension configurator313may hide a combination of print configurations that are unverified by the configuration controller323.

In response to receiving a request from the application301or the OS302, the configuration controller323returns PrintCapability that indicates information about a function that can be configured by the printer driver303. Furthermore, in response to receiving a request from the application301or the OS302, the configuration controller323retrieves, from DevmodePropertyBag, configuration values of respective functions configured in the printer driver303, and the configuration controller323returns PrintTicket indicating the retrieved configuration values. Additionally, the configuration controller323stores the configuration values indicated by PrintTicket in DevmodePropertyBag.

Note that PrintCapability and PrintTicket returned to the OS302are used, for example, for displaying current values of respective functions and choices in the print setting screen displayed by the extension configurator313.

In response to detecting, by the application301, that a print instruction for printing the print target data is received, the renderer333creates print data from the print target data.

Upon detecting that the store application311is to perform printing, the store device application304displays a print setting screen specific to a vendor. Note that, similar to the store application311, the store device application304is available from “Windows store”.

Upon detecting that the desktop application321is to perform printing, the printer driver303may create print data based on the details of the configuration that are made in the print setting screen displayed by the extension configurator313. In contrast, upon detecting that the store application311is to perform printing, the printer driver303may create print data based on the details of the configuration that are made in the print setting screen displayed by the store device application304.

The extension configurator313and the store device application304form a UI unit305for displaying a print setting screen specific to a vendor.

<Storage Area that can be Accessed by the V4 Printer Driver303and the Store Device Application304>

Next, a storage area that can be accessed by the V4 printer driver303and the store device application304is described by referring toFIG. 5.FIG. 5is a diagram illustrating the storage area that can be accessed by the V4 printer driver303and the store device application304.

As illustrated inFIG. 5, the extension configurator313, the configuration controller323, the renderer333, and the store device application304can access a storage area that is referred to as PropertyBag400. Note that, such access to the storage area can be executed using an Application Programming Interface (API) provided by the OS302.

As illustrated inFIG. 5, the PropertyBag400includes a DriverPropertyBag410; a QueuePropertyBag420; and a UserPropertyBag430.

The DriverPropertyBag410is a storage area for storing setting information that is determined upon creating the V4 printer driver303. The extension configurator313, the configuration controller323, the renderer333, and the store device application304are capable of reading out various types of information from the DriverPropertyBag410. However, the extension configurator313, the configuration controller323, the renderer333, and the store device application304are incapable of writing information in the DriverPropertyBag410.

The QueuePropertyBag420is a storage area for storing setting information for each logical printer (printer icon). The extension configurator313and the store device application304are capable of reading out various types of information from and writing various types of information in the QueuePropertyBag420. Furthermore, the configuration controller323and the renderer333are capable of reading out various types of information from the QueuePropertyBag420.

Note that a logical printer is, for example, a virtual printer that is displayed as a printer icon in a printer folder of the OS302. For example, a user of the client device10can create, for a single image forming apparatus20, a plurality of logical printers with respective different configurations (e.g., a document size, an orientation, and print quality).

The UserPropertyBag430is a storage area that stores, for each logical printer, setting information for each user. The extension configurator313, the configuration controller323, and the store device application304are capable of reading out various types of information from and writing various types of information in the UserPropertyBag430.

Additionally, the extension configurator313and the renderer333are capable of reading out various types of information from and writing various types of information in an individual memory area500.

The individual memory area500is implemented, for example, using a registry and a file. The individual memory area500is a storage area that is different from the PropertyBag400. The individual memory area500is defined by a vendor that provides the V4 printer driver303.

Due to the restriction applied by the OS302, the store device application304is incapable of accessing a storage area other than the PropertyBag400. Furthermore, the configuration controller323is incapable of accessing a storage area other than the DevmodePropertyBag and the PropertyBag400, which are described above. Namely, the store device application304and the configuration controller323are incapable of reading out information from and writing information in the individual memory area500.

This is the same as the restriction applied to the store application311. For example, the restriction is for preventing the store device application304and the configuration controller323from adversely affecting the operation of the OS302by changing the registry, etc., used by the OS302. Such a technique may be referred to as a sandbox.

First Embodiment

Next, a functional configuration of the client device10according to a first embodiment will be described by referring toFIG. 6.FIG. 6is a functional block diagram of an example of the client device10according to the first embodiment.

As illustrated inFIG. 6, the extension configurator313of the client device10according to the first embodiment includes a display unit601, a function managing unit602, a term managing unit603, and a layout managing unit604. Note that the extension configurator313is a printer extension (PrinterExtensions).

Furthermore, the store device application304of the client device10includes a display unit701, a function managing unit702, a term managing unit703, and a layout managing unit704.

Furthermore, the client device10includes a function information storage unit510, a term information storage unit520, a layout information storage unit530, and a shared storage unit450. Among these storage units, the function information storage unit510, the term information storage unit520, and the layout information storage unit530are implemented by the individual memory area500. On the other hand, the shared storage unit450may be implemented by the UserPropertyBag430and the QueuePropertyBag420, etc.

Note that the shared storage unit450is not limited to the above. For example, the shared storage unit450may be implemented by a LocalState folder of the store device application304, or may be implemented by a predetermined storage area such as a storage device coupled to the client device10via a network, as long as the storage area is accessible from the store device application304.

Based on the function information received from the function managing unit602, the term information received from the term managing unit603, and the layout information received from the layout managing unit604, the display unit601displays a print setting screen specific to a vendor in the desktop UI. In the following description, the print setting screen specific to a vendor in the desktop UI is also referred to as a “vendor-specific print setting screen (desktop UI)” or a “print setting screen (desktop UI)”.

Here, the term information is related to the display name, etc., of the print setting displayed in the vendor-specific print setting screen. Furthermore, the layout information is related to arrangement positions and sizes, etc., of various Graphical User Interface (GUI) parts such as combo boxes and spin boxes arranged in the vendor-specific print setting screen. Furthermore, the function information is setting information related to functions that a user can add, change, or delete (for example, a setting set in which a plurality of print settings are set as a single set, and a watermark, etc.

The function managing unit602manages function information used for displaying the vendor-specific print setting screen (desktop UI).

That is, the function managing unit602acquires the function information stored in the function information storage unit510and the function information stored (saved) in the shared storage unit450in response to a request (function information acquisition request) from the display unit601. Then, the function managing unit602returns the acquired function information to the display unit601and saves the function information in the shared storage unit450. Note that the shared storage unit450stores various kinds of information (term information, layout information, and function information) to be shared between the extension configurator313and the store device application304as described later.

Furthermore, in response to a request (function information update request) from the display unit601, the function managing unit602updates the function information stored in the function information storage unit510and the function information stored (saved) in the shared storage unit450.

The term managing unit603manages the term information used for displaying the vendor-specific print setting screen (desktop UI). That is, the term managing unit603acquires the term information from the term information storage unit520in response to the request (term information acquisition request) from the display unit601, returns the acquired term information to the display unit601, and saves the term information in the shared storage unit450.

The layout managing unit604manages layout information used for displaying the vendor-specific print setting screen (desktop UI). That is, the layout managing unit604acquires layout information from the layout information storage unit530in response to a request (layout information acquisition request) from the display unit601, returns the acquired layout information to the display unit601, and stores the layout information in the shared storage unit450.

In this manner, the function managing unit602, the term managing unit603, and the layout managing unit604acquire the function information, the term information, and the layout information, respectively, and save the acquired information in the shared storage unit450. The reason for doing this is that the function information, the term information, and the layout information are stored in the storage units (the function information storage unit510, the term information storage unit520, and the layout information storage unit530) implemented by the individual memory area500, as described above. Furthermore, another reason for doing this is that there are cases where the function information, the term information, and the layout information are added and changed, etc., after the installation of the printer driver303.

Specifically, for example, when the user desires to apply a new language (for example, Arabic, etc.) after installing the printer driver303, the user adds term information to the term information storage unit520, etc. Furthermore, for example, when the user desires to change the layout of the print setting screen according to the user's preference, the user changes the layout information stored in the layout information storage unit530, etc.

Based on the function information received from the function managing unit702, the term information received from the term managing unit703, and the layout information received from the layout managing unit704, the display unit701displays the vendor-specific print setting screen in the store application UI. In the following description, the vender-specific print setting screen in the store application UI is also referred to as “vendor-specific print setting screen (store application UI)” or “print setting screen (store application UI)”.

The function managing unit702manages function information used for displaying the vendor-specific print setting screen (store application UI). That is, the function managing unit702acquires the function information from the shared storage unit450in response to a request from the display unit701(function information acquisition request), and returns the acquired function information to the display unit701.

Furthermore, the function managing unit702updates the function information stored (saved) in the shared storage unit450, in response to a request (function information update request) from the display unit701.

The term managing unit703manages the term information used for displaying the vendor-specific print setting screen (store application UI). That is, the term managing unit703acquires the term information from the shared storage unit450, in response to a request (term information acquisition request) from the display unit701, and returns the acquired term information to the display unit701.

The layout managing unit704manages layout information used for displaying the vendor-specific print setting screen (store application UI). That is, the layout managing unit704acquires layout information from the shared storage unit450in response to a request (layout information acquisition request) from the display unit701, and returns the acquired layout information to the display unit701.

The term information storage unit520stores the term information. As described above, the term information is information related to the display name, etc., of the print setting displayed in the vendor-specific print setting screen. An example of term information1100stored in the term information storage unit520is illustrated inFIG. 7.

In the term information1100illustrated inFIG. 7, the setting identification information for identifying the print setting and the display name in the print setting screen of the setting identification information are defined in association with each other in the JavaScript Object Notation (JSON) format.

That is, in the term information1100illustrated inFIG. 7, for example, setting identification information “orientation” and “paper orientation” are associated with each other. Furthermore, in the term information1100illustrated inFIG. 7, for example, the setting identification information “printsize” and the “paper size” are associated with each other.

Accordingly, the display unit601can display “paper orientation” in the vendor-specific print setting screen (desktop UI), as the item name, etc., for setting a setting value of the print setting identified by the setting identification information “orientation”. Similarly, the display unit601can display “paper size” in the vendor-specific print setting screen (desktop UI), as the item name, etc., for setting a setting value of the print setting identified by the setting identification information “printsize”. The same applies to the case where the display unit701displays the vendor-specific print setting screen (store application UI).

The layout information storage unit530stores layout information. As described above, the layout information is information related to the arrangement position and size of various types of GUI parts arranged in the vendor-specific print setting screen. Here, an example of layout information1200stored in the layout information storage unit530is illustrated inFIG. 8.

In the layout information1200illustrated inFIG. 8, the type of the GUI component, the GUI component name, and the position and the size of the GUI component are defined in the JSON format.

That is, in the layout information1200illustrated inFIG. 8, for example, “Gui::ComboBox” as the type of the GUI component, “colorbw” as the GUI component name, and “params” specifying the position and size of the GUI component, are defined. Furthermore, in “params”, coordinates “x”: 255 and “y”: 189 indicating the arrangement position of the GUI component, and the size “width”: 143, are defined.

Accordingly, the display unit601can display the vendor-specific print setting screen (desktop UI) in which the GUI component of the combo box is arranged. The same applies to the case where the display unit701displays the vendor-specific print setting screen (store application UI).

The function information storage unit510stores the function information. As described above, the function information is setting information related to a function (for example, a setting set and a watermark, etc.) that a user can add, change, or delete. Here, an example of function information1300stored in the function information storage unit510is illustrated inFIG. 9.

In the function information1300illustrated inFIG. 9, the name, a comment, a print setting, and a setting value of the setting set are defined in the JSON format.

That is, in the function information1300illustrated inFIG. 9, for example, “2 in 1 landscape” as the name of the setting set, “test” as the comment, and “settings” as the print setting and the setting value of the print setting, are defined. Furthermore, in “settings”, a print setting “paper orientation” and the corresponding setting value “orientation”:“landscape”, and a print setting “aggregate” and the corresponding setting value “nup”:“2 in 1”, are defined.

Accordingly, the display unit601can display information of various functions that the user can add, change, or delete, in the vendor-specific print setting screen (desktop UI). The same applies to the case where the display unit701displays the vendor-specific print setting screen (store application UI).

Note that inFIG. 9, the function information1300in which a setting set is defined is illustrated as an example; however, the function information is not limited as such. For example, in the function information, setting information related to various functions such as a watermark and ground-tint printing may be defined.

Note that as described above, the function information storage unit510, the term information storage unit520, and the layout information storage unit530are implemented by the individual memory area500. Therefore, while these storage units can be accessed from the extension configurator313, these storage units cannot be accessed from the store device application304.

The shared storage unit450stores various kinds of information (term information, layout information, and function information) shared between the extension configurator313and the store device application304. Note that, as described above, the shared storage unit450is implemented by, for example, the UserPropertyBag430and the QueuePropertyBag420, etc. Therefore, the shared storage unit450can be accessed from both the extension configurator313and the store device application304.

Therefore, the client device10can display a vendor-specific print setting screen by using the term information, the layout information, and the function information that are common to the extension configurator313and the store device application304.

Accordingly, for example, when the function information is changed in the vendor-specific print setting screen (desktop UI), the client device10can apply the change to the vendor-specific print setting screen (store application UI). Similarly, for example, when the function information is changed in the vendor-specific print setting screen (store application UI), the client device10can apply the change to the vendor-specific print setting screen (desktop UI).

Next, the details of the process performed by the client device10according to the first embodiment will be described.

<<Display of Print Setting Screen (Desktop UI) and Change of Function Information—First Embodiment>>

First, by referring toFIG. 10, a description will be given of a process in the case where the user of the client device10displays the vendor-specific print setting screen (desktop UI) from the desktop application321, and subsequently changes the function information.FIG. 10is a sequence diagram of an example of a process in which the print setting screen (desktop UI) is displayed and subsequently the function information is changed.

First, the user performs an operation for displaying the print setting screen from the desktop application321(step S1001). That is, for example, the user performs an operation for displaying the vendor-specific print setting screen, in the print screen displayed by issuing a print instruction in the desktop application321. Note that, for example, the user can perform the operation for displaying the vendor-specific print setting screen by pressing a “detailed setting” button, etc., in the print screen.

When the user performs the operation to display the print setting screen, the desktop application321accepts the display operation (step S1002). Then, the desktop application321requests the display unit601of the extension configurator313to display the vendor-specific print setting screen (step S1003).

Next, upon receiving the request to display the vendor-specific print setting screen, the display unit601of the extension configurator313requests the term managing unit603to acquire the term information (step S1004).

Upon receiving the term information acquisition request, the term managing unit603acquires the term information from the term information storage unit520(step S1005). That is, the term managing unit603acquires, for example, the term information1100illustrated inFIG. 7, from the term information storage unit520.

Next, the term managing unit603saves the term information acquired in step S1005, in the shared storage unit450(step S1006). This makes it possible for the extension configurator313and the store device application304to share the term information acquired in step S1005.

Then, the term managing unit603returns the term information acquired in step S1005, to the display unit601.

Note that the extension configurator313can access the PropertyBag400by using, for example, an argument “PrinterExtensionEventArgs” transferred when activating the printer extension (PrinterExtensions).

Next, the display unit601requests the layout managing unit604to acquire the layout information (step S1007).

Upon receiving the layout information acquisition request, the layout managing unit604acquires the layout information from the layout information storage unit530(step S1008). That is, the layout managing unit604acquires, for example, the layout information1200illustrated inFIG. 8, from the layout information storage unit530.

Next, the layout managing unit604saves the layout information acquired in step S1008, in the shared storage unit450(step S1009). Accordingly, the layout information acquired in step S1008can be shared between the extension configurator313and the store device application304.

Then, the layout managing unit604returns the layout information acquired in step S1008, to the display unit601.

Next, the display unit601requests the function managing unit602to acquire the function information (step S1010).

Upon receiving the function information acquisition request, the function managing unit602acquires the function information stored in the function information storage unit510and the function information stored (saved) in the shared storage unit450(step S1011).

Note that, for example, when the function information is stored in the function information storage unit510, but there is no function information stored (stored) in the shared storage unit450, the function managing unit602only acquires the function information stored in the function information storage unit510.

Furthermore, for example, when there is function information stored in both the function information storage unit510and the shared storage unit450, the function managing unit602may acquire only the function information having the latest update date/time, among these pieces of function information.

Next, the function managing unit602saves the function information acquired in step S1011, in the shared storage unit450(step S1012). Accordingly, the function information acquired in step S1011can be shared between the extension configurator313and the store device application304.

Note that, for example, when only the function information stored in the shared storage unit450is acquired in step S1011, the function managing unit602does not have to perform the process of step S1012.

Then, the function managing unit602returns the function information acquired in step S1011, to the display unit601.

Upon receiving the term information, the layout information, and the function information, the display unit601displays the vendor-specific print setting screen (desktop UI) based on these pieces of information (step S1013). That is, the display unit601displays, for example, a print setting screen (desktop UI) G100illustrated inFIG. 11.

The print setting screen (desktop UI) G100illustrated inFIG. 11is a vendor-specific print setting screen in the desktop UI displayed based on the term information, the layout information, and the function information.

Here, the print setting screen (desktop UI) G100illustrated inFIG. 11includes a setting set list G110indicating a list of setting sets, and an edit button G120for editing a setting set selected from the setting set list G110.

In this manner, the display unit601of the extension configurator313displays the vendor-specific print setting screen (desktop UI) based on the term information, the layout information, and the function information.

Next, the user performs an operation for changing the function information, in the vendor-specific print setting screen (desktop UI) (step S1014). That is, for example, in the print setting screen (desktop UI) G100illustrated inFIG. 11, the user selects a desired setting set from the setting set list G110, and then presses the edit button G120to edit the setting set, to perform an operation to change the function information. Editing the setting set is to change, for example, the name of the setting set, the comment, and the print setting and the corresponding setting value.

Note that the changing of the function information is not limited to the editing of the setting set. The function information may be changed, for example, by changing an image used for the watermark function. In this manner, the changing of the function information is to change the settings, etc., of various functions uniquely provided by the vendor.

When the function information changing operation is performed by the user, the display unit601accepts the changing operation (step S1015). Then, the display unit601requests the function managing unit602to update the function information (step S1016). Note that the function information update request includes, for example, the function information that has been changed by the user's changing operation.

Upon receiving the function information update request, the function managing unit602updates the function information stored in the function information storage unit510and the function information stored (saved) in the shared storage unit450(step S1017). That is, the function managing unit602updates the function information stored in the function information storage unit510and the shared storage unit450, respectively, by the function information included in the function information update request.

Specifically, for example, it is assumed that the “name” of the function information included in the function information update request, is “2 in 1 landscape”. In this case, the function managing unit602updates the function information whose “name” is “2 in 1 landscape”, among the function information stored in the function information storage unit510. Similarly, the function managing unit602updates the function information whose “name” is “2 in 1 landscape”, among the function information stored in the shared storage unit450.

Accordingly, when the function information is changed in the vendor-specific print setting screen (desktop UI), the client device10can update the function information stored in the function information storage unit510and the function information stored in the shared storage unit450, respectively, to the changed function information.

<<Display of Print Setting Screen (Store Application UI) and Change of Function Information—First Embodiment>>

Next, by referring toFIG. 12, a description will be given of a process in the case where the user of the client device10displays the vendor-specific print setting screen (store application UI) from the store application311, and subsequently changes the function information.FIG. 12is a sequence diagram of an example of a process in which the print setting screen (store application UI) is displayed and subsequently the function information is changed.

First, the user performs an operation for displaying the print setting screen from the store application311(step S1201). That is, for example, the user performs an operation for displaying the vendor-specific print setting screen on a print screen displayed by issuing a print instruction in the store application311. Note that, for example, the user can perform an operation for displaying the vendor-specific print setting screen by pressing a “detailed setting” button, etc., in the print screen.

When the user performs the operation to display the print setting screen, the store application311accepts the display operation (step S1202). Then, the store application311requests the display unit701of the store device application304to display the vendor-specific print setting screen (step S1203).

Next, upon receiving the request to display the vendor-specific print setting screen, the display unit701of the store device application304requests the term managing unit703to acquire the term information (step S1204).

Upon receiving the term information acquisition request, the term managing unit703acquires the term information from the shared storage unit450(step S1205). That is, the term managing unit703acquires the term information saved in the shared storage unit450by the extension configurator313in step S1006ofFIG. 10. Accordingly, the store device application304can display the print setting screen (store application UI) by using the same term information as the term information used when the extension configurator313displays the print setting screen (desktop UI).

Then, the term managing unit703returns the term information acquired in step S1205, to the display unit701.

Note that the store device application304can access the PropertyBag400by using, for example, the PrintExtensionContext.

Next, the display unit701requests the layout managing unit704to acquire layout information (step S1206).

Upon receiving the layout information acquisition request, the layout managing unit704acquires the layout information from the shared storage unit450(step S1207). That is, the layout managing unit704acquires the layout information saved in the shared storage unit450by the extension configurator313in step S1009ofFIG. 10. Accordingly, the store device application304can display the print setting screen (store application UI) by using the same layout information as the layout information used when the extension configurator313displays the print setting screen (desktop UI).

The layout managing unit704then returns the layout information acquired in step S1207, to the display unit701.

Upon receiving the function information acquisition request, the function managing unit702acquires the function information from the shared storage unit450(step S1209). That is, the function managing unit702acquires the function information saved in the shared storage unit450by the extension configurator313in step S1012ofFIG. 10. Accordingly, the store device application304can display the print setting screen (store application UI) by using the same function information as the function information used when the extension configurator313displays the print setting screen (desktop UI).

Then, the function managing unit702returns the function information acquired in step S1209, to the display unit701.

Upon receiving the term information, the layout information, and the function information, the display unit701displays the vendor-specific print setting screen (store application UI) based on these pieces of information (step S1210). That is, the display unit701displays, for example, a print setting screen (store application UI) G200illustrated inFIG. 13.

The print setting screen (store application UI)6200illustrated inFIG. 13is the vendor-specific print setting screen in the store application UI displayed based on the term information, the layout information, and the function information.

Here, the print setting screen (store application UI) G200illustrated inFIG. 13includes a setting set list G210indicating a list of setting sets. Note that the setting set list G210may not be displayed when the print setting screen (store application UI) G200illustrated inFIG. 13is displayed, but may be displayed by pressing a predetermined GUI part, etc.

In this manner, the display unit701of the store device application304displays the vendor-specific print setting screen (store application UI) based on the term information, the layout information, and the function information stored in the shared storage unit450. Said differently, the store device application304displays the vendor-specific print setting screen (store application UI) based on the term information, the layout information, and the function information that are shared with the extension configurator313.

Next, the user performs an operation for changing the function information in the print setting screen (store application UI) (step S1211). That is, for example, in the print setting screen (store application UI) G200illustrated inFIG. 13, the user selects a desired setting set from the setting set list G210and performs an operation for editing the setting set, to perform the operation to change the function information. Note that as described above, the changing of the function information is not limited to the editing of the setting set.

When the operation to change the function information is performed by the user, the display unit701accepts the changing operation (step S1212). Then, the display unit701requests the function managing unit702to update the function information (step S1213). Note that the function information update request includes, for example, the function information changed by a user's changing operation.

Upon receiving the function information update request, the function managing unit702updates the function information stored (saved) in the shared storage unit450(step S1214). That is, for example, the function managing unit702updates the function information stored in the shared storage unit450, to the function information included in the update request of the function information.

Accordingly, when the function information is changed in the vendor-specific print setting screen (store application UI), the client device10can update the function information stored in the shared storage unit450, to the changed function information.

As described above, in the client device10according to the first embodiment, the term information, the layout information, and the function information can be shared between the extension configurator313and the store device application304. Therefore, in the client device10of the first embodiment, it is possible to display the print setting screen (desktop UI) and the print setting screen (store application UI) based on the same term information, the same layout information, and the same function information.

Furthermore, in the client device10according to the first embodiment, when the function information is changed in either the print setting screen (desktop UI) or the print setting screen (store application UI), the function information stored in the shared storage unit450is updated. Accordingly, in the client device10according to the first embodiment, the operation of changing the function information performed in either the print setting screen (desktop UI) or the print setting screen (store application UI), can be applied to the other one of these screens.

Furthermore, in the client device10according to the first embodiment, for example, by changing the term information stored in the term information storage unit520and the layout information stored in the layout information storage unit530, a change that is made in the display mode of the print setting screen (desktop UI), can also be applied to the print setting screen (store application UI). That is, in the client device10according to the first embodiment, by changing the term information stored in the term information storage unit520and the layout information stored in the layout information storage unit530, the display mode of the print setting screen (store application UI) can be changed dynamically.

<<Modified Example of Display of Print Setting Screen (Store Application UI) and Change of Function Information—First Embodiment>>

Here, a modified example of the displaying of the print setting screen (store application UI) and the changing of the function information described by referring toFIG. 10, will be described by referring toFIG. 14.FIG. 14is a sequence diagram of another example of the process in which the print setting screen (desktop UI) is displayed and subsequently the function information is changed. InFIG. 14, it is assumed that the printer driver303supports a plurality of models of the image forming apparatuses20(that is, the printer driver303is a so-called printer driver common to different models). Note that inFIG. 14, the processes of steps S1001and S1012and steps S1014through S1017is the same as those ofFIG. 10, and therefore descriptions of these processes are omitted.

Following step S1012, upon receiving the term information, the layout information, and the function information, the display unit601displays a vendor-specific print setting screen (desktop UI) of a model A based on these pieces of information (step S1401). Here, the model A is, for example, the model of the image forming apparatus20set in advance in the printer driver303.

Next, the user performs an operation of switching the model in the print setting screen (desktop UI) of the model A (step S1402). Hereinafter, it is assumed that the user has performed an operation for switching to a model B.

When the user performs the operation of switching the model, the display unit601accepts the switching operation (step S1403). Then, after step S1004through step S1012, upon receiving the term information, the layout information, and the function information, the display unit601displays a vendor-specific print setting screen (desktop UI) of the model B, based on the received pieces of information (step S1404).

In this manner, the client device10may execute the process of saving the term information, the layout information, and the function information in the shared storage unit450(steps S1004through S1012) when the model switching operation is performed in the print setting screen (desktop UI). Accordingly, for example, in the client device10, the term information, the layout information, and the function information can be shared between the extension configurator313and the store device application304, on a per-model basis.

Second Embodiment

Next, a second embodiment will be described. In the second embodiment, when the printer driver303is installed, the term information, the layout information, and the function information are saved in the shared storage unit450. Accordingly, in the client device10according to the second embodiment, for example, even before the print setting screen (desktop UI) is displayed, the term information, the layout information, and the function information can be shared between the extension configurator313and the store device application304.

Note that in the second embodiment, the portions having substantially the same functions as those of the first embodiment and the portions performing the same processes as those of the first embodiment are denoted by the same reference numerals as those of the first embodiment, and descriptions of these portions are omitted.

First, a functional configuration of the client device10according to the second embodiment will be described by referring toFIG. 15.FIG. 15is a functional block diagram of an example of the client device10according to the second embodiment.

As illustrated inFIG. 15, the client device10according to the second embodiment includes an installer800. The installer800is a program for installing the printer driver303in the client device10.

When installing the printer driver303, the installer800requests the extension configurator313to save the term information, the layout information, and the function information. Accordingly, the extension configurator313can save the term information, the layout information, and the function information in the shared storage unit450.

Next, the details of the process performed by the client device10according to the second embodiment will be described.

<<Saving Term Information, Layout Information, and Function Information when Installing Printer Driver303—Second Embodiment>>

In the following description, the process of a case of saving the term information, the layout information, and the function information in the shared storage unit450, at the time of installing the printer driver303, will be described by referring toFIG. 16.FIG. 16is a sequence diagram of an example of a process of saving the term information, the layout information, and the function information in the shared storage unit450, at the time of installing the printer driver303.

First, the user performs an operation for installing the printer driver303from the installer800(step S1601). That is, for example, in an installation start screen displayed by the installer800, the user performs an operation for starting the installation of the printer driver303.

When the install operation is performed by the user, the installer800accepts the install operation (step S1602). Then, the installer800requests the display unit601of the extension configurator313to save information (term information, layout information, and function information) (step S1603). Note that the installer800can issue a request for saving information to the extension configurator313, for example, by using CreateProcess ( ).

Subsequently, the extension configurator313executes the processes of steps S1004through S1012. That is, the extension configurator313saves, in the shared storage unit450, the function information, the term information, and the layout information that are stored in the function information storage unit510, the term information storage unit520, and the layout information storage unit530, respectively.

As described above, in the client device10according to the second embodiment, the term information, the layout information, and the function information can be saved in the shared storage unit450at the time of installing the printer driver303. Thus, in the client device10according to the second embodiment, for example, even before the print setting screen (desktop UI) is displayed, the print setting screen (store application UI) can be displayed based on the term information, the layout information, and the function information.

Third Embodiment

Next, a third embodiment will be described. In the third embodiment, for example, an icon (image) representing a setting set is generated based on the function information in which the setting set is defined. That is, as described above, the shared storage unit450is implemented by, for example, the UserPropertyBag430and the QueuePropertyBag420; however, image data cannot be saved in these storage areas. Therefore, in the third embodiment, image data of an icon representing a setting set is generated based on the function information shared between the print setting screen (desktop UI) and the print setting screen (store application UI).

Accordingly, in the client device10according to the third embodiment, for example, it is possible to generate image data of an icon representing a setting set that is the same in the print setting screen (desktop UI) and in the print setting screen (store application UI).

Note that in the third embodiment, the portions having substantially the same functions as those of the first embodiment and the portions performing the same processes as those of the first embodiment are denoted by the same reference numerals as those of the first embodiment, and descriptions of these portions are omitted.

First, a functional configuration of the client device10according to the third embodiment will be described by referring toFIG. 17.FIG. 17is a functional block diagram of an example of the client device10according to the third embodiment.

As illustrated inFIG. 17, the extension configurator313of the client device10according to the third embodiment includes an image generating unit605. Furthermore, the store device application304of the client device10according to the third embodiment includes an image generating unit705. Furthermore, the client device10according to the third embodiment includes an image storage unit460. The image storage unit460is implemented by, for example, a LocalState folder that is writable by the store device application304.

In response to a request (image generation request) from the function managing unit602, the image generating unit605of the extension configurator313generates image data of an icon representing, for example, a setting set defined in the function information. Furthermore, the image generating unit605stores the generated image data in the function information storage unit510.

In response to a request (image generation request) from the function managing unit702, the image generating unit705of the store device application304generates, for example, image data of an icon representing a setting set defined in the function information. Furthermore, the image generating unit705saves the generated image data in the image storage unit460.

The image storage unit460stores (saves) the image data generated by the image generating unit705, in association with the function information.

Here, examples of an icon representing the setting set are illustrated inFIGS. 18A and 18B. An icon2100illustrated inFIG. 18Arepresents a setting set (2 in 1 landscape) defined in the function information1300illustrated inFIG. 9. This icon2100is displayed by the image data generated by the image generating unit605of the extension configurator313. An icon2200illustrated inFIG. 18Brepresents a setting set (2 in 1 landscape) defined in the function information1300illustrated inFIG. 9. This icon2200is displayed by the image data generated by the image generating unit705of the store device application304.

In this manner, the image generating unit605generates image data of the icon2100displayed in the print setting screen (desktop UI). Furthermore, the image generating unit705generates image data of the icon2200displayed in the print setting screen (store application UI).

Note that in the examples illustrated inFIGS. 18A and 18B, the icon2100and the icon2200, which represent the same setting set, are different; however, the present embodiment is not limited as such. The icon2100and the icon2200may be the same. That is, the image generating unit605and the image generating unit705may generate the same image data for displaying an icon, with respect to the icon representing the same setting set.

Next, the details of the process performed by the client device10according to the third embodiment will be described.

<<Display of Print Setting Screen (Desktop UI) and Registration of Function Information—Third Embodiment>>

First, by referring toFIG. 19, a description will be given of a process in the case where a user of the client device10displays the vendor-specific print setting screen (desktop UI) from the desktop application321, and subsequently registers function information (setting set).FIG. 19is a sequence diagram of an example of a process in which the print setting screen (desktop UI) is displayed and subsequently the setting set is registered.

Following step S1013, the user performs an operation for registering the function information in the print setting screen (desktop UI) (step S1901). That is, for example, the user performs a registration operation for registering (adding) a setting set. In the following description, it is assumed that the user has performed an operation for registering a setting set.

Note that the registration of the function information is not limited to the registration of the setting set. The registration of the function information may be the registration of an image used for a watermark, the registration of an image to be stamped on a print surface, and the registration of an image used for background pattern printing, etc. In this manner, the registration of the function information is to register the settings of various functions uniquely provided by the vendor.

When the operation of registering the function information is performed by the user, the display unit601accepts the registration operation (step S1902). Then, the display unit601requests the function managing unit602to register the function information (step S1903). The function information registration request includes, for example, the function information created according to the user's registration operation (that is, function information in which a setting set is defined).

Upon receiving the function information registration request, the function managing unit602saves the function information included in the registration request, in the function information storage unit510(step S1904).

Furthermore, the function managing unit602saves the function information included in the registration request, in the shared storage unit450(step S1905). Accordingly, the function information registered by the user can be shared between the extension configurator313and the store device application304.

Next, the function managing unit602requests the image generating unit605to generate an image representing the setting set defined in the function information (step S1906). Note that the image generation request includes, for example, the function information saved in the function information storage unit510in step S1904.

Upon receiving the image generation request, the image generating unit605generates image data of an icon representing the setting set defined in the function information, based on the function information included in the generation request (step S1907). Here, for example, the image generating unit605generates image data according to the print setting defined at “settings” in the function information and the corresponding setting value.

Note that, for example, the image generating unit605may refer to a predetermined table in which a print setting and a corresponding setting value are associated with image data, and then acquire the image data from the predetermined table. Such a table may be defined in advance in, for example, a program or a module, etc., that implements the image generating unit605.

Next, the image generating unit605saves the image data generated in step S1907, in the function information storage unit510in association with the function information stored in step S1904(step S1908).

As described above, when the function information is registered in the vendor-specific print setting screen (desktop UI), the client device10can register the function information in the function information storage unit510.

Furthermore, for example, when function information, in which a setting set, etc., is defined, is registered, the client device10can generate image data such as an icon representing the setting set. Accordingly, the client device10can display an icon, etc., representing the setting set in the vendor-specific print setting screen (desktop UI).

<<Display of Print Setting Screen (Store Application UI) and Registration of Function Information—Third Embodiment>>

Next, by referring toFIG. 20, a description will be given of a process in the case where the user of the client device10displays the vendor-specific print setting screen (store application UI) from the store application311, and subsequently registers the function information (setting set).FIG. 20is a sequence diagram of an example of a process of displaying the print setting screen (store application UI) and subsequently registering a setting set.

Following step S1208, upon receiving the function information acquisition request, the function managing unit702acquires the function information from the shared storage unit450(step S2001). That is, the function managing unit702acquires the function information saved in the shared storage unit450by the extension configurator313in step S1012ofFIG. 10.

Next, the function managing unit702acquires, from the image storage unit460, the image data stored in association with the function information acquired in step S2001(step S2002).

Here, when image data stored in association with the function information acquired in step S2001is not stored in the image storage unit460, the store device application304executes the processes of steps S2003through S2005.

That is, first, the function managing unit702requests the image generating unit705to generate an image (step S2003). Note that the image generation request includes, for example, the function information acquired from the function information storage unit510in step S2202.

Next, upon receiving the image generation request, the image generating unit705generates image data of an icon representing the setting set defined in the function information, based on the function information included in the generation request (step S2004). Here, for example, the image generating unit705generates image data according to the print setting defined at “settings” in the function information and the corresponding setting value.

Note that, for example, the image generating unit705may refer to a predetermined table in which the print setting and the corresponding setting value are associated with the image data, and then acquire the image data from the table.

Next, the image generating unit705saves the image data generated in step S2004, in the image storage unit460in association with the function information acquired in step S2001(step S2005). Then, the image generating unit705returns the generated image data to the function managing unit702.

Subsequently, the function managing unit702returns the function information acquired in step S2001and the image data acquired in step S2002or the image data returned from the image generating unit705, to the display unit701.

Accordingly, for example, in the vendor-specific print setting screen (store application UI), an icon representing a setting set, etc., can be displayed.

Next, the user performs an operation for registering the function information in the print setting screen (store application UI) (step S2006). That is, for example, the user performs a registration operation for registering (adding) a setting set. In the following description, it is assumed that the user has performed an operation for registering a setting set.

When the function information registration operation is performed by the user, the display unit701accepts the registration operation (step S2007). Then, the display unit701requests the function managing unit702to register the function information (step S2008). Note that the function information registration request includes, for example, function information created according to the user's registration operation (that is, function information in which a setting set is defined).

Upon receiving the function information registration request, the function managing unit702requests the image generating unit705to generate an image representing the setting set defined in the function information included in the registration request (step S2009). Note that the image generation request includes, for example, function information created according to the user's registration operation.

Upon receiving the image generation request, the image generating unit705generates image data of an icon representing the setting set defined in the function information, based on the function information included in the generation request (step S2010). Here, for example, the image generating unit705generates image data according to the print setting defined at “settings” in the function information and the corresponding setting value. Then, the image generating unit705returns the generated image data to the function managing unit702.

The image generating unit705may refer to a predetermined table in which, for example, the print setting and the corresponding setting value are associated with the image data, and then acquire the image data from the table.

Upon receiving the image data from the image generating unit705, the function managing unit702saves the image data in the image storage unit460in association with the function information created according to the user's registration operation (step S2011).

According to the above, when function information defining, for example, a setting set, etc., is registered in the vendor-specific print setting screen (store application UI), the client device10is able to generate image data such as an icon representing the setting set. Accordingly, the client device10can display an icon, etc., representing the setting set in the vendor-specific print setting screen (store application UI).

Fourth Embodiment

Next, a fourth embodiment will be described. In the fourth embodiment, for example, any image (for example, a stamp image, etc.) can be shared as function information between the extension configurator313and the store device application304. Note that the stamp image is an image printed on a print surface of printed matter.

Note that in the fourth embodiment, the portions having substantially the same functions as those of the first embodiment and the portions performing the same processes as those of the first embodiment are denoted by the same reference numerals as those in the first embodiment, and descriptions of these portions are omitted.

First, a functional configuration of the client device10according to the fourth embodiment will be described by referring toFIG. 21.FIG. 21is a functional block diagram of an example of the client device10according to the fourth embodiment.

As illustrated inFIG. 21, the extension configurator313of the client device10according to the fourth embodiment includes an image saving unit606. Furthermore, the store device application304of the client device10according to the fourth embodiment includes an image reading unit706.

The image saving unit606of the extension configurator313acquires image data related to a request, in response to the request (image saving request) from the function managing unit602, and then converts the acquired image data into a predetermined data format, and saves the image data in the shared storage unit450.

Here, the image saving unit606encodes the acquired image data into character data by, for example, Base64, etc. Note that in the following description, it is assumed that the image saving unit606encodes the image data into character data by the Base64. Therefore, in the shared storage unit450, the character data encoded by the image saving unit606is saved.

However, the present embodiment is not limited as such, and the image saving unit606may convert the image data into a data format that can be saved in, for example, the UserPropertyBag430and the QueuePropertyBag420, etc., and then save the converted data in the shared storage unit450. This is because the UserPropertyBag430and the QueuePropertyBag420, etc., cannot store image data.

The image reading unit706of the store device application304acquires the character data from the shared storage unit450, in response to a request (image reading request) from the function managing unit702, and converts the acquired character data into image data. That is, the image reading unit706decodes the character data acquired from the shared storage unit450, into image data, by the Base64.

Note that in the example illustrated inFIG. 21, the extension configurator313includes the image saving unit606, and the store device application304includes the image reading unit706; however, the present embodiment is not limited as such. For example, both the extension configurator313and the image saving unit606may include an image saving unit that acquires and converts image data, and an image reading unit that converts and saves image data.

Next, the details of the process performed by the client device10according to the fourth embodiment will be described.

<<Display of Print Setting Screen (Desktop UI) and Registration of Function Information—Fourth Embodiment>>

First, by referring toFIG. 22, a description will be given of a process in the case where the user of the client device10displays the vendor-specific print setting screen (desktop UI) from the desktop application321, and subsequently registers the function information (stamp image).FIG. 22is a sequence diagram of an example of a process in which the print setting screen (desktop UI) is displayed and subsequently registering a stamp image.

Following step S1013, the user performs an operation for registering function information in the vendor-specific print setting screen (desktop UI) (step S2201). That is, the user performs an operation for registering (adding) a stamp image by specifying, for example, a file path indicating the storage location of the image data of the stamp image. In the following description, it is assumed that the user has performed an operation for registering a stamp image.

When the function information registration operation is performed by the user, the display unit601accepts the registration operation (step S2202). Then, the display unit601requests the function managing unit602to register the function information (step S2203). Note that the function information registration request includes, for example, a file path, etc., indicating a storage location of the image data of the stamp image.

Upon receiving the function information registration request, the function managing unit602requests the image saving unit606to save the image (step S2204). Note that the image saving request includes a file path, etc., indicating the storage location of the image data of the stamp image.

Upon receiving the image saving request, the image saving unit606acquires the image data indicated by the file path included in the saving request (step S2205). Note that the file path may be the storage location of the image data stored in the HDD108of the client device10, or the storage location of the image data stored in a storage device, etc., coupled to the client device10via the network.

Next, the image saving unit606encodes the image data acquired in step S2205, into character data by the Base64, and saves the character data in the shared storage unit450(step S2206). Accordingly, the image data can be shared between the extension configurator313and the store device application304.

<<Display of Print Setting Screen (Store Application UI) and Registration of Function Information—Fourth Embodiment>>

Next, the process performed when the user of the client device10displays the vendor-specific print setting screen (store application UI) from the store application311will be described by referring toFIG. 23.FIG. 23is a sequence diagram of an example of a process of displaying the print setting screen (store application UI).

Following step S1208, upon receiving the function information acquisition request, the function managing unit702acquires the function information from the shared storage unit450(step S2301). That is, the function managing unit702acquires the function information saved in the shared storage unit450by the extension setting unit313in step S1012ofFIG. 10.

Next, the function managing unit702requests the image reading unit706to read the image (step S2302).

Next, upon receiving the image reading request, the image reading unit706acquires the character data from the shared storage unit450(step S2303).

Next, the image reading unit706decodes the character data acquired in step S2303, into image data, by the Base64(step S2304). Then, the image reading unit706returns the image data to the function managing unit702. Subsequently, the function managing unit702returns the function information and the image data to the display unit701.

As described above, for example, when a stamp image, etc., is registered in the print setting screen (desktop UI), the client device10can use the stamp image also in the print setting screen (store application UI). Similarly, for example, when a stamp image, etc., is registered in the print setting screen (store application UI), the client device10can use the stamp image also in the print setting screen (desktop UI).

Fifth Embodiment

Next, a fifth embodiment will be described. In the fifth embodiment, when a plurality of printer drivers303are installed in the client device10, the term information and the layout information, etc., of the respective printer drivers303are stored in different shared storage units450. Accordingly, in a case where one store device application304is used for a plurality of printer drivers303, the store device application304can display a different print setting screen (store application UI) for each printer driver303.

Note that in the fifth embodiment, the portions having substantially the same functions as those of the first embodiment and the portions performing the same processes as those of the first embodiment are denoted by the same reference numerals as those of the first embodiment, and descriptions of these portions are omitted.

First, a software configuration of the client device10according to the fifth embodiment will be described by referring toFIG. 24.FIG. 24is a diagram illustrating a software configuration of an example of the client device10according to the fifth embodiment.

As illustrated inFIG. 24, the client device10according to the fifth embodiment includes a printer driver303-1and a printer driver303-2, etc., that use the same store device application304. In the fifth embodiment, when the printer driver303-1and the printer driver303-2, etc., are not distinguished from each other, they are denoted as the “printer driver303”.

The printer driver303-1includes an extension configurator313-1, a configuration controller323-1, and a renderer333-1. Similarly, the printer driver303-2includes an extension configurator313-2, a configuration controller323-2, and a renderer333-2.

In the fifth embodiment, when the extension configurator313-1and the extension configurator313-2are not distinguished from each other, they are denoted as the “extension configurator313”. Similarly, when configuration controller323-1and configuration controller323-2are not distinguished from each other, they are denoted as the “configuration controller323”. Similarly, when the renderer333-1and the renderer333-2are not distinguished from each other, they are denoted as the “renderer333”.

Note that the functions of the extension configurator313, the configuration controller323, and the renderer333are the same as those described by referring toFIG. 4.

Next, the functional configuration of the client device10according to the fifth embodiment will be described by referring toFIG. 25.FIG. 25is a functional block diagram of an example of the client device10according to the fifth embodiment.

As illustrated inFIG. 25, the extension configurator313-1of the client device10according to the fifth embodiment includes a display unit601-1, a function managing unit602-1, a term managing unit603-1, and a layout managing unit604-1. Furthermore, the client device10according to the fifth embodiment includes a function information storage unit510-1, a term information storage unit520-1, a layout information storage unit530-1, and a shared storage unit450-1. These storage units are used by the extension configurator313-1.

Similarly, the extension configurator313-1of the client device10according to the fifth embodiment includes a display unit601-2, a function managing unit602-2, a term managing unit603-2, and a layout managing unit604-2. Furthermore, the client device10according to the fifth embodiment includes a function information storage unit510-2, a term information storage unit520-2, a layout information storage unit530-2, and a shared storage unit450-2. These storage units are used by the extension configurator313-2.

In the fifth embodiment, when the display unit601-1and the display unit601-2are not distinguished from each other, they are denoted as the “display unit601”. Similarly, with regard to the other functional units, when the function managing unit602-1and the function managing unit602-2are not distinguished from each other, they are denoted as the “function managing unit602”. When the term managing unit603-1and the term managing unit603-2are not distinguished from each other, they are denoted as the “term managing unit603”. When the layout managing unit604-1and the layout managing unit604-2are not distinguished from each other, they are denoted as the “layout managing unit604”.

Furthermore, when the function information storage unit510-1and the function information storage unit510-2are not distinguished from each other, they are denoted as the “function information storage unit510”. Similarly, with regard to the other functional units, when the term information storage unit520-1and the term information storage unit520-2are not distinguished from each other, they are denoted as the “term information storage unit520”. When the layout information storage unit530-1and the layout information storage unit530-2are not distinguished from each other, they are denoted as the “layout information storage unit530”. When the shared storage unit450-1and the shared storage unit450-2are not distinguished from each other, they are denoted as the “shared storage unit450”.

Note that the function of each of the above functional units and the information stored in each of the above storage units are as described by referring toFIG. 6.

As described above, the client device10according to the fifth embodiment includes the shared storage unit450used by the extension configurator313of the printer driver303, for each of the plurality of printer drivers303.

Next, the details of the process performed by the client device10according to the fifth embodiment will be described.

<<Display of Print Setting Screen (Store Application UI)—Fifth Embodiment>>

Next, a description is given of a process in which the user of the client device10selects one printer driver303out of the plurality of printer drivers303from the store application311, to display the vendor-specific print setting screen (store application UI), by referring toFIG. 26.FIG. 26is a sequence diagram of an example of process of displaying the print setting screen (store application UI) according to the fifth embodiment. Note that in the following description, for example, it is assumed that when installing the printer driver303, the term information, the layout information, and the function information of the printer driver303to be installed are saved in the shared storage unit450used by the extension setting unit313of the printer driver303to be installed.

First, the user selects one printer driver303out of the plurality of printer drivers303from the store application311, and then performs a display operation for displaying the print setting screen (step S2601). That is, for example, the user selects the printer driver303to be used from among the plurality of printer drivers303in the print screen displayed by instructing printing in the store application311. Then, the user performs an operation for displaying the vendor-specific print setting screen.

When the user selects the printer driver303and performs the operation for displaying the print setting screen, the store application311accepts the display operation (step S2602). Then, the store application311requests the display unit701of the store device application304to display the vendor-specific print setting screen (step S2603).

Next, when the display unit701of the store device application304receives the display request to display the vendor-specific print setting screen, the display unit701of the store device application304requests the term managing unit703to acquire the term information (step S2604).

Upon receiving the term information acquisition request, the term managing unit703acquires the term information from the shared storage unit450(step S2605). That is, the term managing unit703acquires the term information saved in the shared storage unit450by the extension configurator313of the printer driver303selected by the user.

The term managing unit703then returns the term information acquired in step S2605, to the display unit701.

Note that the term managing unit703can identify the shared storage unit450used by the extension configurator313of the printer driver303selected by the user, from among a plurality of the shared storage units450, from the argument PrintTaskSettingsActivatedEventArgs transferred from the OS302at the time of the activation of the store device application304.

Next, the display unit701requests the layout managing unit704to acquire layout information (step S2606).

Upon receiving the layout information acquisition request, the layout managing unit704acquires the layout information from the shared storage unit450(step S2607). That is, the layout managing unit704acquires the layout information saved in the shared storage unit450by the extension configurator313of the printer driver303selected by the user.

The layout managing unit704then returns the layout information acquired in step S2607, to the display unit701.

Note that, similar to the term managing unit703, the layout managing unit704can identify the shared storage unit450used by the extension configurator313of the printer driver303selected by the user from, for example, PrintTaskSettingsActivatedEventArgs.

Upon receiving the function information acquisition request, the function managing unit702acquires the function information from the shared storage unit450(step S2609). That is, the function managing unit702acquires the function information saved in the shared storage unit450by the extension configurator313of the printer driver303selected by the user.

The function managing unit702then returns the function information acquired in step S2609, to the display unit701.

Similar to the term managing unit703, the function managing unit702can identify the shared storage unit450used by the extension configurator313of the printer driver303selected by the user from, for example, PrintTaskSettingsActivatedEventArgs.

Upon receiving the term information, the layout information, and the function information, the display unit701displays the vendor-specific print setting screen (store application UI) based on these pieces of information (step S2610). Accordingly, the display unit701can display the vendor-specific print setting screen (store application UI) corresponding to the printer driver303selected by the user.

That is, when the user selects the printer driver303-1in step S2601, the display unit701displays, for example, the print setting screen (store application UI) G310illustrated inFIG. 27A. On the other hand, when the user selects the printer driver303-2in step S2601, the display unit701displays, for example, the print setting screen (store application UI) G320illustrated inFIG. 27B. In this way, the display unit701can display different print setting screens (store application UI) according to the printer driver303selected by the user.

As described above, in the client device10according to the fifth embodiment, when a plurality of printer drivers303use the same store device application304, a print setting screen (store application UI) corresponding to the printer driver303selected by the user, can be displayed.

Therefore, in the client device10according to the fifth embodiment, for example, different print setting screens (store application UI) can be displayed for the printer driver303for production printing, and for the printer driver303for ink jet printing.

Sixth Embodiment

Next, a sixth embodiment will be described. In the sixth embodiment, in the case where the extension configurator313of the printer driver303and the store device application304include modules that implement a predetermined function by the same processing contents (logic), even if the versions of these modules are different, the same function can be provided by these modules. Note that the printer driver303and the store device application304can install modules or upgrade the modules separately (that is, at different timings). Therefore, the versions of these modules may differ between the printer driver303and the store device application304.

Here, as illustrated inFIGS. 28A and 28B, the extension configurator313and the store device application304respectively include a preview image renderer607and a preview image renderer707, which are for rendering a preview image according to print settings set by the user. The preview image renderer607and the preview image renderer707are respectively implemented by different modules.

In this case, it is assumed that the version (ver. 1.0) of the module implementing the preview image renderer707is older than the version (ver. 1.1) of the module implementing the preview image renderer607.

In such a case, for example, the preview image of “ring binding”, which can be rendered by the preview image renderer607, cannot be rendered by the preview image renderer707in some cases. That is, for example, when the function of rendering a preview image of “ring binding” is supported in versions from and subsequent to “ver. 1.1”, the preview image renderer707of ver. 1.0 is unable to render a preview image of “ring binding”.

Therefore, the sixth embodiment makes it possible for the preview image renderer707to use a function (for example, a function of rendering a preview image of “ring binding”), which can be used by preview image renderer607but cannot be used by the preview image renderer707.

Note that in the sixth embodiment, the portions having substantially the same functions as those of the first and second embodiments and the portions performing the same processes as those of the first and second embodiments are denoted by the same reference numerals as those of the first and second embodiments, and descriptions of these portions are omitted.

First, a functional configuration of the client device10according to the sixth embodiment will be described by referring toFIG. 29.FIG. 29is a functional block diagram of an example of the client device10according to the sixth embodiment.

As illustrated inFIG. 29, the extension configurator313of the client device10according to the sixth embodiment includes the preview image renderer607. In addition, the store device application304of the client device10according to the sixth embodiment includes the preview image renderer707.

The preview image renderer607renders a preview image in the print setting screen (desktop UI) according to rendering method information for rendering a preview image. Similarly, the preview image renderer707renders a preview image in the print setting screen (store application UI) according to rendering method information.

In the client device10according to the sixth embodiment, the rendering method information is shared between the extension configurator313and the store device application304by using the shared storage unit450. Thus, even when the version of the module implementing the preview image renderer607is different from the version of the module implementing the preview image renderer707, the same preview image can be rendered. Said differently, a function (for example, a function of rendering a preview image of “ring binding”), which can be used only in either one of the preview image renderer607or the preview image renderer707, becomes usable in the other one of the preview image renderer607or the preview image renderer707.

Next, the details of the process performed by the client device10according to the fifth embodiment will be described.

<<Saving Term Information, Layout Information, Function Information, and Rendering Method Information when Installing Printer Driver303—Sixth Embodiment>>

First, by referring toFIG. 30, a description will be given of a process in the case where, when installing the printer driver303, in addition to the term information, the layout information, and the function information, the preview image renderer607saves rendering method information used for rendering a preview image, in the shared storage unit450.FIG. 30is a sequence diagram of an example of a process of saving the term information, the layout information, the function information, and the rendering method information in the shared storage unit450at the time of installing the printer driver303.

Following step S1012, the display unit601requests the preview image renderer607to save the rendering method information (step S3001).

Upon receiving the request to save the rendering method information, the preview image renderer607saves the rendering method information of a preview image that can be rendered by the preview image renderer607, in the shared storage unit450(step S3002). Here, an example of rendering method information4100saved in the shared storage unit450, is illustrated inFIG. 31.

In the rendering method information4100illustrated inFIG. 31, rendering method information of a preview image that can be rendered, is defined for each version by the JSON format. That is, in the rendering method information4100illustrated inFIG. 31, the rendering method information “rendering method1”, “rendering method2”, and “rendering method3” are defined as the rendering method information that can be used when “ver. 1.0” is the version of the module implementing the preview image renderer607and the preview image renderer707. Similarly, in the rendering method information4100illustrated inFIG. 31, the rendering method information “rendering method4” is defined as the rendering method information that can be used when “ver. 1.1” is the version of the module implementing the preview image renderer607and the preview image renderer707. Note that in the rendering method information, parameters indicating a rendering method of the preview image (for example, parameters defining a rendering method of a straight line or a curved line rendered as a preview image), etc., are defined.

As described above, the preview image renderer607of the printer driver303can save the rendering method information of a preview image that can be rendered by the preview image renderer607, in the shared storage unit450, when installing the printer driver303. Note that other than the timing of installing the printer driver303, the preview image renderer607may save the rendering method information of a preview image that can be rendered by the preview image renderer607in the shared storage unit450, for example, when displaying the print setting screen (desktop application UI).

<<Display of Print Setting Screen (Store Application UI)—Sixth Embodiment>>

Next, by referring toFIG. 32, a description will be given of a process in which the user of the client device10displays a vendor-specific print setting screen (store application UI) including a preview image rendered by the preview image renderer707, from the store application311.FIG. 32is a sequence diagram of an example of a process of displaying the print setting screen (store application UI) according to the sixth embodiment.

Following step S1209, the display unit701requests the preview image renderer707to render a preview image (step S3201). Note that, the request includes, for example, setting information related to printing that is set by the user (for example, whether to perform “ring binding”, paper size, and whether to perform allocation, etc.).

Upon receiving the request to render a preview image, the preview image renderer707determines whether rendering method information, which cannot be used with the present version, is necessary for rendering the preview image (step S3202). That is, the preview image renderer707determines whether rendering method information, which cannot be used with the present version (the version of the module implementing the preview image renderer707), is necessary for rendering a preview image based on the setting information included in the rendering request.

For example, it is assumed that the version of the module implementing the preview image renderer707is “ver. 1.0”, and the rendering method information necessary for rendering the preview image based on the setting information is “rendering method4”. In this case, the rendering method information “rendering method4” can be used with the version of the module “ver. 1.1”, and therefore in the module of version “ver. 1.0”, the rendering method information “rendering method4” is not implemented. Thus, in this case, the preview image renderer707determines that it is necessary to have the rendering method information that cannot be used with the present version “ver. 1.0”, in order to render a preview image based on the setting information included in the rendering request.

In step S3202, when it is determined that the rendering method information that cannot be used in the present version is necessary, the preview image renderer707acquires the necessary rendering method information from the shared storage unit450(step S3203).

That is, for example, it is assumed that the version of the module implementing the preview image renderer707is “ver. 1.0”, and the rendering method information “rendering method4” (for example, rendering method information for “ring binding”) is necessary for rendering a preview image based on the setting information. In this case, the preview image renderer707acquires the rendering method information “rendering method4” from the rendering method information4100stored in the shared storage unit450.

In this way, when the preview image renderer707cannot render the preview image with the version of the module that implements the preview image renderer707, the preview image renderer707acquires the rendering method information necessary for rendering the preview image from the shared storage unit450.

Next, the preview image renderer707renders a preview image based on the setting information according to the rendering method information (step S3204).

Next, the preview image renderer707determines whether the rendering method information4100stored in the shared storage unit450needs to be updated (step S3205). That is, the preview image renderer707determines whether there is any rendering method information that is not stored in the shared storage unit450, among the rendering method information of the preview image that can be rendered by the preview image renderer707.

In step S3205, when it is determined that the rendering method information4100stored in the shared storage unit450needs to be updated, the preview image renderer707updates the rendering method information4100stored in the shared storage unit450(Step S3206).

That is, for example, it is assumed that the version of the module that implements the preview image renderer707is “ver. 1.2”, and the preview image renderer707is able to use the rendering method information “rendering method5” (for example, rendering method information of “single-sleeve folding”). In this case, the preview image renderer707adds the rendering method information “rendering method5” that can be used with “ver. 1.2”, to the rendering method information4100stored in the shared storage unit450.

Then, the preview image renderer707returns the preview image rendered in step S3204, to the display unit701.

Next, upon receiving the term information, the layout information, the function information, and the preview image, the display unit701displays the vendor-specific print setting screen (store application UI) including the preview image, based on these pieces of information (step S3207). Thus, the vendor-specific print setting screen (store application UI) including the preview image rendered by the preview image renderer707, is displayed.

<<Display of Print Setting Screen (Desktop Application UI)—Sixth Embodiment>>

Next, by referring toFIG. 33, a description will be given of a process in which the user of the client device10displays the vendor-specific print setting screen (desktop UI) including the preview image rendered by the preview image renderer607, from the desktop application321.FIG. 33is a sequence diagram of an example of a process of displaying the print setting screen (desktop application UI).

Following step S1012, the display unit601requests the preview image renderer607to render a preview image (step S3301). Note that the request includes, for example, setting information related to printing set by the user.

Upon receiving the request to render a preview image, the preview image renderer607determines whether rendering method information, which cannot be used with the present version, is necessary for rendering the preview image (step S3302). That is, the preview image renderer607determines whether rendering method information, which cannot be used with the present version (the version of the module implementing the preview image renderer607), is necessary for rendering a preview image based on the setting information included in the rendering request.

In step S3302, when it is determined that the rendering method information that cannot be used with the present version is necessary, the preview image renderer607acquires the necessary rendering method information from the shared storage unit450(step S3303).

Next, the preview image renderer607renders a preview image based on the setting information according to the rendering method information (step S3304).

Then, the preview image renderer607returns the preview image rendered in step S3304, to the display unit601.

Next, upon receiving the term information, the layout information, the function information, and the preview image, the display unit601displays the vendor-specific print setting screen (desktop UI) including the preview image, based on these pieces of information (step S3305). Thus, the vendor-specific print setting screen (desktop UI) including the preview image rendered by the preview image renderer607, is displayed.

As described above, in the client device10according to the sixth embodiment, even when the extension configurator313and the store device application304include modules of different versions for implementing a predetermined function (for example, rendering a preview image) by the same logic, the same function can be provided with these modules of different versions.

In the sixth embodiment, the rendering of a preview image has been described as an example as the predetermined function; however, the present embodiment is not limited as such. For example, in addition to the rendering of a preview image, the predetermined functions include various functions related to printing, such as stapling and punching that are implemented by the same logic in the extension setting unit313and the store device application304.

According to one embodiment of the present invention, the sharing of functional settings between different print setting screens, is enabled.

The information processing apparatus, the information processing method, and the information processing system are not limited to the specific embodiments described in the detailed description, and variations and modifications may be made without departing from the spirit and scope of the present invention.