Information processing apparatus, information processing system, and non-transitory recording medium storing instructions for executing an information processing method

An information processing apparatus, system, and a non-transitory recording medium storing instructions for executing an information processing method. The information processing system includes the information processing apparatus with one or more printer drivers installed and an image forming apparatus connected to the information processing apparatus to perform bidirectional communication with the image forming apparatus in response to a request from at least one of the printer drivers, by setting control information in a storage area corresponding to the printer driver and requesting a communication control program to perform the bidirectional communication with the image forming apparatus based on a control information set for the printer driver.

CROSS-REFERENCE TO RELATED APPLICATION

This patent application is based on and claims priority pursuant to 35 U.S.C. § 119(a) to Japanese Patent Application No. 2018-043628, filed on Mar. 9, 2018, in the Japan Patent Office, the entire disclosure of which is hereby incorporated by reference herein.

BACKGROUND

Technical Field

The present disclosure relates to an information processing apparatus, an information processing system, and a non-transitory recording medium storing instructions for executing an information processing method.

Background Art

In Windows (registered trademark) Operating System (OS) from Windows 2000 to Windows 7, a printer driver architecture called a Version 3 (hereinafter referred to as “V3”) printer driver is adopted. In Windows 8 and later Windows OS, in addition to the V3 printer driver, a new printer driver architecture called a Version 4 (hereinafter referred to as “V4”) printer driver is adopted.

The V4 printer driver provides a technique for implementing a plurality of functions such as obtaining device information while printing with an image forming apparatus connected via a universal serial bus (USB).

SUMMARY

Embodiments of the present disclosure described herein provide an information processing apparatus, system, and a non-transitory recording medium storing instructions for executing an information processing method. The information processing system includes the information processing apparatus with one or more printer drivers installed and an image forming apparatus connected to the information processing apparatus to perform bidirectional communication with the image forming apparatus in response to a request from at least one of the printer drivers, by setting control information in a storage area corresponding to the printer driver and requesting a communication control program to perform the bidirectional communication with the image forming apparatus based on control information set for the printer driver.

DETAILED DESCRIPTION

A description is given of several embodiments of the present disclosure with reference to drawings.

FIG. 1is a diagram illustrating a system configuration of an information processing system100according to a present embodiment. As illustrated inFIG. 1, the information processing system100includes an information processing apparatus101and an image forming apparatus102. The information processing apparatus101and the image forming apparatus102are communicably connected via a USB cable103.

Examples of the information processing apparatus101include information terminals such as a personal computer (PC), a tablet terminal, and a smartphone. The information processing apparatus101receives a print instruction from the user, creates print data from print target data, and transmits a print request to the image forming apparatus102. The information processing apparatus101acquires device information including the configuration of the image forming apparatus102and options via the USB cable103and displays a print setting screen reflecting the information acquired from the image forming apparatus102on a display device of the information processing apparatus101.

Examples of the print target data include printable electronic data such as image data and document data. The print data is electronic data obtained by converting the print target data into a format such as Page Description Language (PDL) that can be printed by the image forming apparatus102.

Examples of the image forming apparatus102include an electronic apparatus having a printing function, such as a printer, or a multifunction peripheral (MFP) providing scanning, copying, printing, and facsimile capabilities and the like in a single housing. The image forming apparatus102prints the print data in response to the print request received from the information processing apparatus101.

FIG. 2AandFIG. 2Bare diagrams for describing a problem according to an embodiment of the present disclosure.

In Windows (registered trademark) Operating System (OS) from Windows 2000 to Windows 7, a printer driver architecture called a Version 3 (hereinafter referred to as “V3”) printer driver is adopted. In Windows 8 and later Windows OS, in addition to the V3 printer driver, a new printer driver architecture called a Version 4 (hereinafter referred to as “V4”) printer driver is adopted.

In the V3 printer driver, a language monitor is used to perform bidirectional communication via the USB interface. The language monitor communicates bidirectionally with the image forming apparatus102and acquires device information of the image forming apparatus102. Also, the language monitor allowed vendors to install their own functions.

On the other hand, with the V4 printer driver, the language monitor has been discontinued and a USB Bidi Extender is introduced instead. In the USB Bidi Extender, vendors can customize only Bidi Extender JavaScript (registered trademark) and Bidi Extension Extensible Markup Language (XML). With the V4 printer driver, the information processing apparatus101communicates bidirectionally with the image forming apparatus102using the USB Bidi Extender.

For example, when the information processing apparatus101and the image forming apparatus102are connected by the USB cable103, a USB port for the image forming apparatus102is created in the information processing apparatus101by the OS.

In addition, a plurality of printer drivers may be used for the created USB port. For example, the plurality of printer drivers corresponding to different file formats designating the same USB port may be installed in the information processing apparatus101.

As described above, in the information processing apparatus101in which a plurality of printer drivers uses one USB port, the USB Bidi Extender included in the printer driver may not operate and the USB Bidi Extender of another printer driver may be used.

For example, as illustrated inFIG. 2A, it is assumed that the printer driver A201aand the USB Bidi Extender A202acorresponding to the printer driver A201aare installed in the information processing apparatus101. Further, it is assumed that the printer driver B201band the USB Bidi Extender B202bcorresponding to the printer driver B201bare installed in the information processing apparatus101. Further, it is assumed that the USB port203is designated for both the printer driver A201aand the printer driver B201b.

For example, when the printer driver A201acommunicates bidirectionally with the image forming apparatus102, the printer driver A201apreferably communicates bidirectionally with the image forming apparatus102via the USB Bidi Extender A202a. Similarly, when the printer driver B201bcommunicates bidirectionally with the image forming apparatus102, the printer driver B201bpreferably communicates bidirectionally with the image forming apparatus102via the USB Bidi Extender B202b.

However, in reality, only one USB Bidi Extender can be used and the user cannot designate the USB Bidi Extender to be used due to constraints of the OS or the like, as illustrated for example inFIG. 2B. In the example ofFIG. 2B, since the printer driver B201bcannot use the USB Bidi Extender B202b, it is sometimes impossible to perform bidirectional communication correctly with the image forming apparatus102.

Therefore, the information processing apparatus101according to the present embodiment defines only processes common to each printer driver in the USB Bidi Extender. For example, only processing for acquiring control information (for example, model information acquisition request) from a storage area corresponding to the printer driver (for example, a property bag) and sending it to the image forming apparatus102is defined in the USB Bidi Extender.

Further, the printer driver stores the control information in the storage area corresponding to the printer driver. Thus, the printer driver B201bcan correctly perform bidirectional communication even when the USB Bidi Extender A202ais used as illustrated for example inFIG. 2B.

An example of a hardware configuration of the information processing apparatus101and the image forming apparatus102included in the information processing system100according to the present embodiment is described.

Hardware Configuration of Information Processing Apparatus

FIG. 3is a block diagram illustrating a hardware configuration of the information processing apparatus101according to the present embodiment. As illustrated inFIG. 3, the information processing apparatus101according to the present embodiment includes an input device301, a display device302, an external device interface (I/F)303, and a random access memory (RAM)304. Further, the information processing apparatus101includes a read only memory (ROM)305, a central processing unit (CPU)306, a communication I/F307, and a hard disk drive (HDD)308. These hardware devices are connected to each other by a bus B.

The input device301includes a keyboard, a mouse, a touch panel, and the like to enable the user to input various operation signals. The display device302includes a display and the like and displays the processing result produced by the information processing apparatus101. Note that at least one of the input device301and the display device302may be connected to the information processing apparatus101for use when necessary.

The communication I/F307is an interface for connecting the information processing apparatus101to a network.

The HDD308is a nonvolatile storage device that stores programs and data. Examples of the programs or data stored in the HDD308include an operating system (OS) for controlling an entire operation of the information processing apparatus101and an application program providing various functions on the OS.

The information processing apparatus101may include, as an alternative to the HDD308, a drive device such as a solid state drive (SSD) that uses a flash memory as a storage medium. The HDD308manages stored programs and data using a predetermined file system or a database (DB).

The external device I/F303is an interface such as the USB for connecting an external device to the information processing apparatus101. For example, the information processing apparatus101can connect the image forming apparatus102to the information processing apparatus101by using the USB cable103connected to the external device I/F303.

The ROM305is a nonvolatile semiconductor memory capable of holding programs and data even when the power is turned off. The ROM305stores programs and data such as OS settings, network settings, and the like, and a basic input/output system (BIOS) executed when the information processing apparatus101is activated. The RAM304is a volatile semiconductor memory that temporarily holds programs and data.

The CPU306loads programs or data from the storage device such as the ROM305and the HDD308onto the RAM304and executes processes to implement entire control and functions of the information processing apparatus101.

The hardware configuration illustrated inFIG. 3allows the information processing apparatus101according to the present embodiment to implement various kinds of processes as described below.

Hardware Configuration of Image Forming Apparatus

FIG. 4is a block diagram illustrating a hardware configuration of the image forming apparatus102according to embodiments of the present disclosure.

As illustrated inFIG. 4, the image forming apparatus102according to the present embodiment includes a controller401, an operation panel402, an external device I/F403, a communication I/F404, and a plotter405. Further, the controller401includes a CPU411, a RAM421, a ROM431, a non-volatile random-access memory (NVRAM)441, and an HDD451.

The ROM431is a nonvolatile memory that stores various programs and data. The RAM421is a volatile memory that temporarily holds programs and data. The NVRAM441stores setting information and the like, for example. The HDD451is a nonvolatile storage device that stores various programs and data.

The CPU411loads programs, data, or setting information from the storage device such as the ROM431, the NVRAM441and the HDD451onto the RAM421and executes processes to implement entire control and functions of the image forming apparatus102.

The operation panel402includes an input device that accepts input from the user and a display device that performs display.

The external device I/F403is, for example, an interface such as the USB for connecting the external device to the image forming apparatus102. For example, the image forming apparatus102can connect the image forming apparatus102to the information processing apparatus101by using the USB cable103connected to the external device I/F403.

The communication I/F404is an interface for connecting the image forming apparatus102to the network.

The hardware configuration illustrated inFIG. 4allows the image forming apparatus102according to the present embodiment to implement various kinds of processes as described below.

[Functional Configuration of Information Processing Apparatus]

The functional configuration of the information processing apparatus101according to the present embodiment is described with reference toFIG. 5.FIG. 5is a block diagram illustrating an example of a functional configuration of the information processing apparatus.

As illustrated inFIG. 5, the information processing apparatus101according to the present embodiment includes an application510, an OS520, a printer driver530, and a store device application540.

The application510is an application program that can issue an instruction (request) for printing to the OS520in response to a user's print instruction, such as document creation software, image viewing/editing software, a browser, and the like. The application510includes a store application511and a desktop application512.

The store application511is an application that can be obtained from, for example, “Windows Store” that provides applications to Windows (registered trademark) 8/Windows RT and subsequent versions of Windows OS. In the store application511, a store application user interface (UI) is used. In Windows 8 and Windows 8.1, the store application511is called from the UI also called “Modern UI” or “Metro UI” provided by the OS520.

On the other hand, the desktop application512is an application that can be used also in, for example, Windows 7 or earlier versions.

The OS520is Windows 8/Windows RT or later versions of Windows OS.

The printer driver530is a program for controlling printing. In the present embodiment, the printer driver530is the aforementioned V4 printer driver. The printer driver530includes an extension setting unit531, a setting control unit532, and a drawing unit533.

The extension setting unit531is also referred to as a printer extension. When printing is performed from the desktop application512, the extension setting unit531displays a customized print setting screen or the like.

The setting control unit532is also called a prohibition script, and verifies, for example, whether or not a combination of print settings is valid. For example, the extension setting unit531can hide a combination of print settings verified by the setting control unit532to be invalid or return to the default setting.

In response to a request from the application510, the OS520, or the like, the setting control unit532returns Print Capability, which is setting capability information indicating those functions that are settable by the printer driver530. Further, in response to a request from the application510, the OS520, or the like, the setting control unit532acquires setting values of various functions set in the printer driver530from Devmode Property Bag and returns PrintTicket indicating the acquired setting value. In addition, the setting control unit532saves the setting value indicated by PrintTicket in DevmodePropertyBag.

Note that PrintCapability and PrintTicket returned to the OS520are used, for example, to display the current value of each function, options, and the like on the print setting screen displayed by the extension setting unit531.

The drawing unit533creates print data from the print target data on which the print instruction is made in the application510.

When printing is instructed from the store application511, the store device application540displays the customized print setting screen or the like. Note that the store device application540is an application that can be obtained from the “Windows store” like the store application511.

When printing is instructed from the desktop application512, the printer driver530can generate print data based on the print settings on the print setting screen displayed by the extension setting unit531. On the other hand, when printing is instructed from the store application511, the printer driver530can generate print data based on the print settings on the print setting screen displayed by the store device application540.

The extension setting unit531and the store device application540constitute a UI unit550for displaying the customized print setting screen.

The spooler560is a module provided by the OS520or the like. The spooler560temporarily stores the print data generated by the printer driver530, and sequentially transmits the print data to the image forming apparatus102using the USB Bidi Extender570.

The USB Bidi Extender570includes JavaScript (USB Bidi JavaScript) called by the spooler560and controls the bidirectional communication with the image forming apparatus102. In this disclosure, the USB Bidi Extender570is an example of a communication control program.

[Storage Area Accessible by V4 Printer Driver530and Store Device Application540]

A storage area accessible by the V4 printer driver530and the store device application540is described with reference toFIG. 6.

As illustrated inFIG. 6, the extension setting unit531, the setting control unit532, the drawing unit533, and the store device application540can access a storage area called Property Bag610. Note that such access to the storage area can be performed using an application program interface (API) provided by the OS520.

As illustrated inFIG. 6, the Property Bag610includes a Driver Property Bag611, a Queue Property Bag612, and a User Property Bag613.

The Driver Property Bag611is a storage area for storing configuration information and the like determined when the V4 printer driver530is created. The extension setting unit531, the setting control unit532, the drawing unit533, and the store device application540can read various information from the Driver Property Bag611. On the other hand, the extension setting unit531, the setting control unit532, the drawing unit533, and the store device application540cannot write information to the Driver Property Bag611.

The Queue Property Bag612is a storage area for storing setting information and the like for each logical printer (printer icon). The extension setting unit531and the store device application540can read from and write various kinds of information to the Queue Property Bag612. In addition, the setting control unit532and the drawing unit533can read various kinds of information from the Queue Property Bag612. Further, the information stored in the Queue Property Bag612can also be read from the above-described USB Bidi Extender.

Note that the logical printer is, for example, a virtual printer displayed as a printer icon in a printer folder or the like of the OS520. A user of the information processing apparatus101can create a plurality of logical printers having different setting information (for example, paper size, paper orientation, print quality, etc.) for one image forming apparatus102.

The User Property Bag613is a storage area for storing setting information and the like for each user for each logical printer. The extension setting unit531, the setting control unit532, and the store device application540are capable of reading and writing various information from and to the User Property Bag613.

Further, the extension setting unit531and the drawing unit533can read and write various kinds of information in and from a unique storage area620.

The unique storage area620is implemented by using, for example, a registry, a file, or the like, and is a storage area different from the Property Bag610. The unique storage area620is defined by, for example, the vendor providing the V4 printer driver530or the like.

The store device application540cannot access any storage area other than the Property Bag610due to constraints imposed by the OS520. Further, the setting control unit532cannot access any storage areas other than the Devmode Property Bag and the Property Bag610described above. That is, the store device application540and the setting control unit532cannot read or write various information from or to the unique storage area620.

This is the same as the constraint imposed on the store application511, and is meant to prevent, for example, the store device application540and the setting control unit532from changing the registry, etc., used by the OS520and adversely affecting the operation of the OS520. Such a technique is called “sandboxing”.

First Embodiment

Hereinafter, a functional configuration of the information processing apparatus according to a first embodiment is described.

Functional Configuration

FIG. 7is a block diagram illustrating a functional configuration of the information processing apparatus101according to the first embodiment of the present disclosure.

In the information processing apparatus101, for example, programs such as the application510, one or more printer drivers530aand530b, the store device application540, and the like are installed.

The information processing apparatus101implements the Queue Property Bags612aand612band the spooler560and the like which are storage areas corresponding to each of one or more printer drivers530aand530bby executing the OS520in the CPU306.

InFIG. 7, it is assumed that the printer driver530bhas the same functional configuration as that of the printer driver530a. In the following description, “printer driver530” is used to indicate any one of the one or more printer drivers530aand530b. Likewise, the Queue Property Bag612is used to indicate any one of the Queue Property Bags among the Queue Property Bags612aand612b.

The information processing apparatus101implements the extension setting unit531, the setting control unit532, and the drawing unit533described with reference toFIG. 5by executing the printer driver530by the CPU306.

Further, the extension setting unit531according to the present embodiment includes a setting screen display unit710and a bidirectional communication unit720.

Using the device information of the image forming apparatus102acquired by the bidirectional communication unit720, the setting screen display unit710causes the display unit of the display device302or the like to display a print setting screen.

The bidirectional communication unit720includes a setting unit721, a request unit722, an acquisition unit723, and the like, and acquires the device information of the image forming apparatus102from the image forming apparatus102via the spooler560and the USB Bidi Extender570.

The setting unit721sets (stores) the control information for performing bidirectional communication with the image forming apparatus102in the storage such as the Queue Property Bag612corresponding to the printer driver530. The bidirectional communication unit720stores a request command724such as a request to acquire device information for requesting, for example, the image forming apparatus102to acquire device information. Further, the setting unit721sets the request command724in the Queue Property Bag612corresponding to the printer driver530.

For example, the setting unit721of the printer driver530asets the request command724corresponding to the printer driver530ain the Queue Property Bag612acorresponding to the printer driver530a. Similarly, the setting unit721of the printer driver530bsets the request command724corresponding to the printer driver530bin the Queue Property Bag612bcorresponding to the printer driver530b.

FIG. 8Aillustrates an example image of the request command724. In the request command724as illustrated for example inFIG. 8A, one or more request commands to be transmitted to the image forming apparatus102are stored. Note that althoughFIG. 8Aillustrates an example in which the request command is a character string, the request command is not limited to the character string and may be binary data or the like, for example.

FIG. 8Billustrates an example of the request command724to be stored in the Queue Property Bag612. When the setting unit721sets the request command in the Queue Property Bag612as illustrated for example inFIG. 8B, a request command key and a value corresponding to the request command are set as a pair.

When the USB Bidi Extender570reads the request command from the Queue Property Bag612, the USB Bidi Extender570designates the request command key and read the value corresponding to the request command key.

In the present embodiment, it is assumed that the format, content, or the like of the request command differs for each printer driver.

The request unit722transmits an execution request for requesting execution of bidirectional communication with the image forming apparatus102to the USB Bidi Extender570via the spooler560. The execution request includes, for example, information necessary for acquiring the request command724stored in the Queue Property Bag612such as the request command key.

The USB Bidi Extender570according to the present embodiment acquires the request command stored in the Queue Property Bag612a, for example, in response to the execution request from the request unit722of the printer driver530aand transmits the request command to the image forming apparatus102. Similarly, the USB Bidi Extender570acquires the request command stored in the Queue Property Bag612b, for example, in response to the request from the request unit722of the printer driver530band transmits the request command to the image forming apparatus102.

The acquisition unit723acquires the device information of the image forming apparatus102acquired by the USB Bidi Extender570via the spooler560.

FIG. 8Cillustrates an example of the device information801acquired from the image forming apparatus102by the acquisition unit723. For example, in response to the request command “@ PJL INFO OPTION” inFIG. 8A, the information of “Option” of the device information801is acquired, and in response to the request command “@ PJL INFO TRAY”, the device information801“InputTray” is acquired.

In the example ofFIG. 8C, a duplex unit, an HDD, and a memory of 256 MB are indicated as the options mounted on the image forming apparatus102. Further, as information on the tray, the image forming apparatus102includes a tray1and a manual sheet feeding tray, the paper size of the tray1is A4, and the paper size of the manual sheet feeding tray is A5 as indicated for example inFIG. 8C.

In this manner, the USB Bidi Extender570according to the present embodiment executes a process common to each printer driver530, which is to acquire the request command from the Queue Property Bag612, transmit the request command to the image forming apparatus102, and acquire the device information.

Therefore, for example, as described with reference toFIG. 2, even when the printer driver530buses the USB Bidi Extender570for the printer driver530a, bidirectional communication with the image forming apparatus102can be performed without a problem.

Processing Flow

Processing flow of the information processing method according to the present embodiment is described below.

(Processing of Information Processing System1)

FIG. 9is a sequence diagram illustrating an example of processing executed by the information processing system according to the first embodiment. In particular,FIG. 9illustrates an example of processing when the setting screen display unit710of the printer driver530displays the print setting screen reflecting the device information of the image forming apparatus102.

In step S901, the setting screen display unit710of the printer driver530requests the bidirectional communication unit720to acquire the device information of the image forming apparatus102connected to the information processing apparatus101.

In steps S902and S903, the setting unit721of the bidirectional communication unit720stores the request command724corresponding to the printer driver530in the Queue Property Bag612corresponding to the printer driver530. It is assumed that the request command724is stored in the Queue Property Bag612as illustrated for example inFIG. 8B.

In steps S904and S905, the request unit722of the bidirectional communication unit720requests bidirectional communication to the USB Bidi Extender570via the spooler560. The request for bidirectional communication includes the request command key “Bidi Request Command” as illustrated for example inFIG. 8B.

In step S906, the bidirectional communication unit720waits for a certain length of time until the processing of the USB Bidi Extender570is completed.

In step S907, the USB Bidi Extender570reads the request command from the Queue Property Bag612using the request command key included in the request for bidirectional communication.

In step S908, the USB Bidi Extender570transmits to the image forming apparatus102the request command that requests the image forming apparatus102to acquire the device information.

In step S909, the USB Bidi Extender570acquires the device information transmitted from the image forming apparatus102according to the request command. It is assumed that the device information801as illustrated for example inFIG. 8Cis acquired.

In step S910, the USB Bidi Extender570transmits the acquired device information801to the spooler560. In step S911, the spooler560stores the notified device information801in a cache in the spooler560.

In steps S912and S913, upon completion of waiting for the certain length of time, the acquisition unit723of the bidirectional communication unit720requests and acquires from the spooler560, the device information801acquired by bidirectional communication.

In step S914, the bidirectional communication unit720notifies the setting screen display unit710of the acquired device information801.

In step S915, the setting screen display unit710displays the print setting screen reflecting the acquired device information801on the display unit such as the display device302.

(Example of Display Screen)

FIGS. 10 to 12are diagrams illustrating examples of display screens according to the first embodiment of the present disclosure.

FIG. 10illustrates an example of the print setting screen1000displayed by the setting screen display unit710of the printer driver530. For example, when the user selects a printer properties button1001on the print setting screen1000, the processing illustrated inFIG. 9is started.

The print setting screen1000illustrated inFIG. 10is displayed, for example, when the user opens the print setting screen of the printer driver530in order to change the print setting when executing printing, or the like. Further, the print setting screen1000illustrated inFIG. 10is displayed, for example, when the user opens the print setting screen from a menu of a printer icon in order to change a standard print setting.

FIG. 11illustrates an example of a display screen1100for displaying a list of printer icons (logical printers) by the OS. For example, the process illustrated inFIG. 9is started by the user selecting to view properties1103of a printer driver from a menu1102displayed by right-clicking on a printer icon1101from the list of printer icons.

FIG. 12illustrates an example of the print setting screen displayed in step S915ofFIG. 9. In the print setting screen1200illustrated inFIG. 12the device information801as illustrated for example inFIG. 8Cis reflected and a check box1201indicating that a duplex unit is mounted and a check box1202indicating that an HDD is mounted are checked. Further, as an input tray information1203, the image forming apparatus102includes the tray1and the manual sheet feeding tray, and the paper size of the tray1is A4, the paper size of the manual sheet feeding tray is A5, and the like are displayed.

(Processing of Information Processing System2)

FIG. 13illustrates another example of the process of the information processing system according to the first embodiment. In the processing illustrated inFIG. 9, the setting unit721of the printer driver530sets the request command724in the Queue Property Bag612each time the setting screen display unit710requests acquisition of the device information.

However, as in the process illustrated inFIG. 13, the setting unit721may set the request command724in the Queue Property Bag612before receiving the acquisition request of the device information from the setting screen display unit710.

Note that steps S904to S915are the same as the processes illustrated inFIG. 9. Accordingly, only the differences from the process illustrated inFIG. 9are described below.

In steps S1301and S1302, the setting unit721of the bidirectional communication unit720sets the request command724in the Queue Property Bag612before receiving the device information acquisition request from the setting screen display unit710in step S1303. As a result, the processing in steps S902and S903inFIG. 9are omitted in the subsequent processing.

Thus, for example, when the request command724set in the Queue Property Bag612by the setting unit721has the same content each time, processing can be executed efficiently by the processing illustrated inFIG. 13.

In the above description, it is assumed that the setting unit721of the printer driver530sets the request command724in the Queue Property Bag612corresponding to the printer driver530. Since the Queue Property Bag612is the storage area for each logical printer as described above, the request commands724of the plurality of printer drivers530are not repeatedly stored.

However, the storage area in which the setting unit721of the printer driver530sets the request command724may be a storage area other than the Queue Property Bag612, for example, the unique storage area620inFIG. 6or the like.

In this case, the setting unit721of each printer driver530, for example, as illustrated inFIG. 8D, stores the request command724in the unique storage area620or the like using a different request command key for each printer driver530.

For example, the setting unit721of the printer driver530astores the request command724in the unique storage area620or the like in association with the request command key “BidiRequestCommand 1”. Further, the request unit722of the printer driver530atransmits the request for bidirectional communication including the request command key “BidiRequestCommand 1” to the USB Bidi Extender570via the spooler560.

Similarly, the setting unit721of the printer driver530bstores the request command724in the unique storage area620or the like in association with the request command key “BidiRequestCommand 2”. Further, the request unit722of the printer driver530btransmits the request for bidirectional communication including the request command key “BidiRequestCommand 2” to the USB Bidi Extender570via the spooler560.

As a result, the unique storage area620functions as the storage corresponding to each of the printer drivers530.

Second Embodiment

In the first embodiment, it is assumed that the setting unit721of the printer driver530sets the request command724in the storage area such as the Queue Property Bag612, for example. However, in addition to the request command724, the setting unit721of the printer driver530may further set information such as a transmission condition1401in the storage area such as the Queue Property Bag612.

In the second embodiment, an example of processing in a case in which the setting unit721of the printer driver530sets the request command and the transmission condition is described.

Functional Configuration

FIG. 14is a block diagram illustrating an example of a functional configuration of the information processing apparatus according to the second embodiment. The bidirectional communication unit720of the printer driver530illustrated inFIG. 14stores a request command and a transmission condition1401as illustrated for example inFIG. 15Ain advance, instead of the request command724according to the first embodiment illustrated inFIG. 7.

FIG. 15Aillustrates an example of the request command and the transmission condition1401. InFIG. 15A, the transmission condition “True” indicates that the corresponding request command is always transmitted. In addition, the transmission condition “If (Option Tray ON)” indicates that the corresponding request command is transmitted when the option tray information is on. As described above, condition for transmitting the corresponding request command is defined in the transmission condition of the request command and the transmission condition1401.

FIG. 15Billustrates another example of the request command and the transmission condition to be stored in the Queue Property Bag612. When the setting unit721sets the request command and the transmission condition1401in the Queue Property Bag612as illustrated for example inFIG. 15B, the request command key and the value corresponding to the request command key are set in a pair. Further, as illustrated for example inFIG. 15B, the setting unit721sets the request command and corresponding transmission condition as the value corresponding to the request command key.

The USB Bidi Extender570can read the request command and the transmission condition from the Queue Property Bag612by designating the request command key.

Further, the USB Bidi Extender570according to the present embodiment has a transmission determination unit1402implemented by JavaScript (USB Bidi JavaScript). The transmission determination unit1402acquires the value corresponding to the request command key as illustrated for example inFIG. 15Band determines whether or not to transmit each request command to the image forming apparatus102.

The functional configuration of the information processing apparatus101other than the above is similar to the functional configuration of the information processing apparatus101according to the first embodiment illustrated inFIG. 7.

Processing Flow

Processing flow of the information processing method according to the second embodiment is described below.

FIG. 16is a flowchart illustrating an example of processing of the information processing apparatus according to the second embodiment.FIG. 16illustrates an example of processing when the setting screen display unit710of the printer driver530displays the print setting screen reflecting the device information of the image forming apparatus102. Note that steps S910to S915illustrated inFIG. 16are the same as the processing according to the first embodiment illustrated inFIG. 9, and a description is given focusing on differences from the first embodiment.

In step S1601, the setting screen display unit710of the printer driver530requests the bidirectional communication unit720to acquire the device information of the image forming apparatus102connected to the information processing apparatus101.

In steps S1602and S1603, the setting unit721of the bidirectional communication unit720causes the Queue Property Bag612corresponding to the printer driver530to store the request command and the transmission condition1401corresponding to the printer driver530. As an example, it is assumed that the request command key and the value (request command and transmission condition) as illustrated inFIG. 15Bare stored in the Queue Property Bag612.

In steps S1604and S1605, the request unit722of the bidirectional communication unit720requests the USB Bidi Extender570for bidirectional communication via the spooler560. It is assumed that the request command key “BidiRequestCommand” as illustrated for example inFIG. 15Bis included in the request for bidirectional communication.

In step S1606, the bidirectional communication unit720waits for a certain length of time until the processing of the USB Bidi Extender570is completed.

In step S1607, the USB Bidi Extender570reads the request command and transmission condition from the Queue Property Bag612using the request command key included in the request for bidirectional communication.

In steps S1608and S1609, the USB Bidi Extender570transmits request information with the transmission condition “True” to the image forming apparatus102in the acquired request command and transmission condition and acquires the device information transmitted from the image forming apparatus102.

In step S1610, the transmission determination unit1402of the USB Bidi Extender570determines whether transmission is necessary for the request command with transmission condition other than “True”, and when it is determined that transmission is necessary, causes steps S1611and S1612to be executed.

In steps S1611and S1612, the USB Bidi Extender570transmits a request command determined to be transmitted to the image forming apparatus102and acquires the device information transmitted from the image forming apparatus102.

FIG. 17AandFIG. 17Bare diagrams illustrating an example of the device information according to the second embodiment.FIG. 17AandFIG. 17Billustrate an example of the device information acquired from the image forming apparatus102in steps S1608to S1612ofFIG. 16. For example, in steps S1608and S1609inFIG. 16, option information (Option) and tray information (InputTray) as illustrated inFIG. 17Aare acquired. In addition, optional tray information (OptionTray) as illustrated inFIG. 17Bis acquired by the processing in steps S1610to1612inFIG. 16.

“Option Tray=ON” included in the “Option” information illustrated in FIG.17A indicates that the optional tray is mounted on the image forming apparatus102.

Also, the “Option Tray” information ofFIG. 17Bindicates that trays2and3are mounted as optional trays on the image forming apparatus102, the paper size of tray2is B5, and the paper size of tray3is A3.

In the above example, description has been made assuming that the setting unit721of the printer driver530stores table information as illustrated inFIG. 15Bin the Queue Property Bag612corresponding to the printer driver530.

As another example, the setting unit721of the printer driver530may store a JavaScript source code1501as illustrated inFIG. 15Cin the Queue Property Bag612as the request command and transmission condition1401. Note that the JavaScript source code1501is an example of a script language.

In this case, the USB Bidi Extender570acquires the device information from the image forming apparatus102by executing JavaScript as illustrated inFIG. 15Cacquired from the Queue Property Bag612.

The request command and the transmission condition1401may be set in the Queue Property Bag612before the acquisition of the device information from the setting screen display unit710is requested, as in the process illustrated inFIG. 13for the first embodiment.

In the above description, the printer driver530is assumed to be a V4 printer driver, but the present disclosure is also applicable to other printer drivers having restrictions similar to those of the V4 printer driver.

As described above, according to each of the above embodiments, the bidirectional communication with the image forming apparatus can be made correctly, in the V4 printer driver or the printer driver having the same restriction, when utilizing the USB port by a plurality of printer drivers.