Application program, method, and information processing apparatus
Patent Information
- Application Number
- JP2024129116
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-05
- Publication Date
- 2025-08-04
AI Technical Summary
Existing driver configurations, such as those described in Patent Document 1, lack the ability to dynamically expand functionalities based on the specific type of printing device, limiting the customization and optimization of printing capabilities.
An application program that acquires device function information, determines the device type, and edits the printer driver capabilities (PDC) to include additional functions and settings supported by the specific printing device, using a control mechanism to tailor the editing process to the device type.
Enables the expansion of driver functionalities to match the capabilities of the connected printing device, enhancing user customization and optimization of printing options.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing apparatus, method, and program for expanding the functionality of a device driver. [Background technology]
[0002] There is a known configuration in which a printer driver installed on a host computer is used as software for controlling the printing device to issue print instructions to a printing device connected to the host computer. An operating system (OS), which is the basic software, is installed on the host computer, and the printer driver is configured according to the specifications defined by the OS and runs when called by the OS. By providing a printer driver that conforms to the OS specifications, a vendor that provides a printing device can provide a method of using the OS to instruct the printing device to print.
[0003] In recent years, Windows (registered trademark) has provided standard class drivers (hereinafter also referred to as "standard drivers") that can be commonly used by printing devices provided by multiple vendors. Such standard drivers are included in the OS package and can be easily used by connecting any printing device to the host computer. This makes it unnecessary to separately install a model-specific printer driver suitable for the printing device, which is highly convenient. In addition, the standard driver is configured to be able to specify printing functions according to PrintDeviceCapabilities (hereinafter "PDC") generated based on information obtained from the connected printing device. This allows a user who uses the standard driver to specify printing functions according to the capabilities of the connected printing device, even though the user is using one standard driver.
[0004] A standard driver can be associated with an application for function extension (hereinafter also referred to as an "extension application"). The extension application can be provided by a vendor that supplies a printing device. The extension application can provide a function (extension function) that cannot be realized by the standard driver alone by editing the PDC generated by the standard driver. Patent Document 1 discloses a technology for extending functions such as a stamp function by an extension application. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] JP 2019-74906 A Summary of the Invention [Problem to be solved by the invention]
[0006] In Patent Document 1, the extension application realizes a layout printing function by editing a spool file. However, further ingenuity is required to realize the function extension of the driver according to the type of device.
[0007] An object of the present invention is to provide a mechanism for implementing function extension of a driver according to the type of device. [Means for solving the problem]
[0008] In order to solve the above problems, the program of the present invention is an application program for expanding the function of a driver corresponding to a device, and causes a computer to function as a first acquisition means for acquiring function information of the device created by the driver, a second acquisition means for acquiring a type of the device, an editing means for editing the function information acquired by the first acquisition means, and a control means for controlling the editing means to differ the editing process for the function information acquired by the first acquisition means depending on the type of the device acquired by the second acquisition means. Effect of the Invention
[0009] According to the present invention, it is possible to realize the function extension of a driver according to the type of device. [Brief description of the drawings]
[0010] [Figure 1] FIG. 2 is a diagram illustrating a hardware configuration of a printing system. [Diagram 2] FIG. 2 is a diagram illustrating a software configuration of the printing system. [Diagram 3] FIG. 11 is a diagram for explaining an editing process of a PDC. [Figure 4] 13 is a diagram showing a print setting screen displayed by a print setting screen expansion unit. FIG. [Diagram 5] 13 is a flowchart showing an editing process of a PDC. [Figure 6] 13 is a flowchart showing an editing process of a PDC. [Figure 7] 13 is a flowchart showing an editing process of a PDC. [Figure 8] 13 is a flowchart showing an editing process of a PDC. [Figure 9] 13 is a flowchart showing an editing process of a PDC. [Figure 10] FIG. 13 is a diagram showing a PDC created by print data generation software. [Figure 11] FIG. 2 is a diagram showing a list of functions and setting values described in a PDC. [Figure 12] FIG. 11 is a diagram showing a list of capability information acquired from a printing device. [Figure 13] FIG. 4 is a diagram showing a list of print functions supported by an extension application. [Figure 14] FIG. 13 is a diagram showing a PDC after editing. [Figure 15] FIG. 13 is a diagram showing combination information of Option values. [Figure 16] FIG. 13 is a diagram showing a PDC acquired from an OS. [Figure 17]FIG. 13 is a diagram showing a PDC after editing. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Hereinafter, the embodiments will be described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims. Although the embodiments describe a number of features, not all of these features are essential to the invention, and the features may be combined in any manner. Furthermore, in the attached drawings, the same reference numbers are used for the same or similar configurations, and duplicated descriptions are omitted.
[0012] <Printing system hardware configuration> 1 is a block diagram showing an example of a hardware configuration of a printing system. In this figure, a host computer 101 is an example of an information processing device, and has an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface 116. Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and a display device such as a display unit 119 is connected to the output interface 115. A NETIF 120 is a network interface, and performs control for transferring data between an external device via a network. The network may be a wired network, a wireless network, or a network including both.
[0013] An initialization program is stored in the ROM 112. Application programs, an operating system (OS), print data generation software, and various other data are stored in the external storage device 114. The RAM 113 is used as a work memory or the like when the various programs stored in the external storage device 114 are executed, and the various programs can run within the host computer 101.
[0014] In this embodiment, the CPU 111 executes processes according to the procedures of the program stored in the ROM 112, thereby executing the functions of the host computer 101 described below and the processes related to the flowcharts described below. The printing device 102, which is a device, is connected to the host computer 101 via an input / output interface 116. Here, the host computer 101 and the printing device 102 are configured separately, but they may be configured as one information processing device. The printing device 102 will be described as an inkjet printer that prints images on a recording medium by an inkjet recording method, but it may be a recording device that performs printing by another method (for example, an electrophotographic method). The host computer 101 may be a desktop personal computer, a smartphone, or a notebook computer.
[0015] <Software-centric printing system configuration> 2(a) and 2(b) are diagrams showing an example of the software configuration of a printing system. Here, a printing system using a host computer 101 equipped with Microsoft's (registered trademark) Windows 11 as the OS is described. FIG. 2(a) shows the configuration when an extension application 204 is not associated with print data generation software 202 and the printing device 102.
[0016] The drawing application 201 is software that creates content (drawing data) to be printed. For example, this corresponds to a word processing application or a spreadsheet application. When the drawing application 201 receives a print request from a user, it issues a print instruction to the OS. The print instruction includes print setting information for instructing the operation of the print data generation software 202 and the printing device 102. The print setting information is also called a PrintTicket (PT).
[0017] In order to output print setting information, the drawing application 201 can display a print setting screen provided by the print data generation software 202, the OS, or the drawing application 201. The print setting screen includes setting items (hereinafter also referred to as "control items") indicating print functions that can be set according to capability information (information that can be set as print settings) acquired from the print data generation software 202, and control items indicating their setting values. The capability information is also called print capabilities (PrintCapabilities (PC)). The print data generation software 202 determines the print capabilities based on the print function information 203. The print function information 203 is data indicating all configurable print functions, their setting values, and the exclusive relationships between the setting values. The print function information 203 is also called print device capabilities (PDC).
[0018] The PDC 203 is included in a configuration file of the print data generation software 202, and is stored in the external storage device 114 as an unchangeable file. Alternatively, the PDC 203 may be dynamically generated by the print data generation software 202. Specifically, the print data generation software 202 or the OS acquires printing device attribute data from the printing device 102, and generates the PDC 203 according to attribute information in the acquired attribute data. When the PDC 203 is dynamically generated, the generated PDC 203 is editable. The printing device attribute data acquired from the printing device 102 is a response acquired by issuing a Get-Printer-Attributes operation of the IPP (Internet Print Protocol) to the printing device 102. The response includes attribute information indicating functions (printing device capabilities) that can be specified by the printing device 102, and setting values related to the attribute information. This response is saved in the RAM 113.
[0019] By configuring in this manner, the print data generation software 202 can be configured to allow the user to specify print functions available on each printing device 102 according to the connected printing device 102. In other words, even when printing devices with different functions or printing devices developed by different vendors are connected, the print data generation software 202 can be configured to allow the user to specify print functions available on the connected printing device.
[0020] Here, a configuration using an IPP Class Driver installed in Windows (registered trademark) 11 as the print data generation software 202 will be described. The IPP Class Driver is a printer driver that executes print processing according to the specifications of a predetermined standard print protocol called IPP (Internet Print Protocol), and is included in the OS package. The IPP Class Driver is not a specific printer driver according to the model of the printing device 102, but a standard class driver that can be commonly used by multiple printing devices. The IPP Class Driver also acquires capability information of the connected printing device 102 so that the user can specify the print functions supported by the connected printing device 102, and generates a PDC 203 based on that information.
[0021] The OS generates intermediate data (also called input data) based on the print instruction output from the drawing application 201, and passes it to the print data generation software 202. The data output by the drawing application 201 for printing is data in Graphic Device Interface format (GDI format data) or data in XML Paper Specification format (XPS format data). It is assumed that an IPP Class Driver is used as the print data generation software 202. In this case, if the data output by the drawing application 201 is data in GDI format, the OS converts the data in GDI format output from the drawing application 201 into data in XPS format. Then, it passes the converted data in XPS format to the print data generation software 202 as intermediate data. If the data output by the drawing application 201 is data in XPS format, the OS passes the data in XPS format to the print data generation software 202 as intermediate data. The intermediate data includes drawing data, which is information on an image to be formed on a recording medium, and print setting information set by a user.
[0022] The print data generation software 202 converts the acquired intermediate data into print data that can be interpreted by the printing device 102, and transmits it to the printing device 102. The print data includes drawing data, which is information about an image to be formed on a recording medium, and print setting attribute information (attribute information that specifies print settings) generated based on print setting information set by the user. The print setting attribute information includes attribute information that indicates functions that can be specified by the printing device 102 (capabilities of the printing device), and setting values related to that attribute information.
[0023] The printing device 102 prints on a recording medium based on the print data sent from the print data generation software 202. At this time, the printing device 102 forms the drawing data included in the print data on the recording medium in accordance with the print setting attribute information included in the print data. The print setting attribute information includes attribute information and its setting value for specifying the print quality (priority on image quality, priority on speed, etc.) and double-sided printing, etc. For example, if the print setting attribute information includes attribute information specifying double-sided printing and a setting value indicating that it is to be performed, the printing device 102 executes double-sided printing.
[0024] 2B is a diagram showing an example of a configuration when the extension application 204 is associated with the print data generation software 202 and the printing device 102. Note that configurations and processes not specifically mentioned below are the same as those in FIG. 2A.
[0025] The extension application 204 is software for extending the functions of the print data generation software 202, and is not included (bundled) in advance in the OS. Therefore, the user needs to operate the host computer 101, for example, to download and install the extension application 204 from a server via the Internet. Alternatively, the extension application 204 may be automatically installed based on the connection of the printing device 102 to the host computer 101. Specifically, when the printing device 102 is connected to the host computer 101, the OS acquires device identification information from the printing device 102. The OS may download and install the extension application 204 corresponding to the acquired device identification information from a server via the Internet. In other words, the print data generation software 202 and the extension application 204 are held in the host computer 101 as separate files.
[0026] The print data generation software 202 and the extension application 204 may be updated and upgraded, but these update processes may also be performed at different times. That is, the timing at which the host computer 101 acquires the print data generation software 202 is different from the timing at which the extension application 204 is acquired. The trigger at which the host computer 101 acquires the print data generation software 202 may also be different from the trigger at which the host computer 101 acquires the extension application 204. When the extension application 204 is installed, the OS associates the extension application 204 with the print data generation software 202 and the printing device 102.
[0027] The extension application 204 described in this embodiment includes a print setting screen extension unit 205, a skip control unit 206, a print function extension unit 207, a print data editing unit 208, and a notification unit 209. The extension application 204 also includes shared information 210 that can be commonly accessed by each unit. The shared information 210 is actually a file saved in the external storage device 114, or information stored in the RAM 113. The extension application 204 writes and reads information to and from the shared information 210 by using an API (Application Program Interface) provided by the OS.
[0028] The extended application 204 may terminate its operation each time the processing of each unit is completed. In that case, the OS will launch the extended application 204 each time a request to use each unit is received. It may also be configured in a different form. For example, when the processing of the print setting screen extension unit 205 is completed, the OS will terminate the operation of the extended application 204. On the other hand, the OS may leave the extended application 204 running even when the processing of the skip control unit 206 is completed. Furthermore, the extended application 204 may cancel processing during the processing of each unit. If canceled, the job being processed in the print queue will be deleted by the OS.
[0029] When the drawing application 201 receives a print request from a user, it issues a print instruction to the OS. In FIG. 2(b), like the configuration in FIG. 2(a), the drawing application 201 can display a print setting screen. In FIG. 2(b), the print setting screen provided by the extension application 204 is displayed. Specifically, the print setting screen provided by the print setting screen extension unit 205 included in the extension application 204 is displayed. Note that whether or not the print setting screen provided by the print setting screen extension unit 205 is displayed depends on the user's operation. Details of the print setting screen extension unit 205 will be described later with reference to FIG. 4.
[0030] Also, when the drawing application 201 accepts a print request from a user and issues a print instruction to the OS, the OS starts the skip control unit 206. The skip control unit 206 controls whether or not to skip the processing of the print data generation software 202. After the skip control processing of the skip control unit 206, the OS generates intermediate data based on the print instruction output from the drawing application 201, and the intermediate data is passed to the print data generation software 202. Here, if the skip control is not performed by the skip control unit 206, the intermediate data is processed by the print data generation software 202 into print data that can be interpreted by the printing device 102, and passed to the print data editing unit 208. On the other hand, if the print data generation software 202 is skipped, the intermediate data is passed to the print data editing unit 208 without being processed by the print data generation software 202. This makes it possible to process the intermediate data in the print data editing unit 208.
[0031] The print data editing unit 208 edits the intermediate data passed from the print data generation software 202 or the print data processed by the print data generation software 202. Taking layout printing as an example of the editing content, the print data editing unit 208 changes the layout of the intermediate data or the print data based on the print setting information of layout printing received from the OS. The print data editing unit 208 can also display a graphical user interface screen (GUI screen) on the display unit 119, and can provide functions such as displaying the layout result of the intermediate data or the print data as a preview screen. Note that while the GUI screen displayed by the print data editing unit 208 on the display unit 119 is left open, the print data is not sent to the printing device 102, and the print data sending process is performed by closing the GUI screen.
[0032] After the print data editing unit 208 edits the print data, the print data is passed to the printing device 102. The printing device 102 prints onto a recording medium based on the received print data. If the print data generation software 202 is skipped by the skip control unit 206, the print data editing unit 208 may convert the received intermediate data into print data that can be interpreted by the printing device 102. Also, a function provided by the OS may be used to convert the intermediate data into print data.
[0033] The extension application 204 has a print function extension unit 207. The print function extension unit 207 can edit the PDC 203 generated by the print data generation software 202 or the OS. This allows the print function extension unit 207 to add functions provided by the extension application 204. The print function extension unit 207 can also add functions that are supported by the printing device 102 but not supported by the print data generation software 202, add exclusive relationships between setting values of print functions, and so on. The OS starts the print function extension unit 207 when the extension application 204 is first associated with the printing device 102 and the print data generation software 202. Furthermore, the OS may start the print function extension unit 207 at other times, such as when the OS is started. In this way, in a case where an optional device (e.g., a finisher, etc.) is added to the printing device 102 later and functions related to printing are extended, the print function extension unit 207 can detect the extended function and add it to the PDC 203.
[0034] The extension application 204 also has a notification unit 209. The notification unit 209 can display a notification to the user in response to an error occurring in the printing device 102. For example, when an out-of-paper error occurs in the printing device 102, the print data generation software 202 detects it, and the OS uses a notification function called a toast notification, which is a function of the OS, to display a message on the display unit 119. When the user presses this toast notification, the notification unit 209 of the extension application 204 is called by the OS, and the UI screen of the notification unit 209 is displayed. On the UI screen of the notification unit 209, for example, a detailed message of the out-of-paper error and a paper refilling method can be displayed. Note that once the extension application 204 has sent print data to the printing device 102, it cannot display a screen such as a guide linked to the print data during the processing of each unit.
[0035] In addition, the configuration of the extended application 204 for realizing this embodiment is not limited to having all of the above-mentioned functions (units), and may have only some of the functions or other functions. Also, the extended application 204 may be simply called printing software. As described above, the extended application 204 can be said to have at least one of the following functions.
[0036] Function to display the setting screen (executed by the print setting screen extension unit 205) A function for controlling whether or not to skip the processing of the print data generation software 202 (executed by the skip control unit 206) A function for editing print data input to the printing device 102 (performed by the print data editing unit 208) A function for extending the functions that can be specified by the print data generation software 202 (executed by the print function extension unit 207) A function for displaying a screen in response to an error occurring in the printing device 102 (performed by the notification unit 209) <Example of the screen displayed by the print setting screen expansion unit> Next, the print setting screen displayed by the print setting screen extension unit 205 will be described with reference to Fig. 4. The print capability is generated based on the PDC 203 edited by the print function extension unit 207. The print setting screen 401 in Fig. 4(a) is an example of a screen displayed by the print setting screen extension unit 205 based on the generated print capability. The print setting screen extension unit 205 is called by the OS when the user instructs the drawing application 201 to display the print setting screen. The print setting screen extension unit 205 displays a screen on which the user can specify setting values of print functions that can be specified by the print data generation software 202 based on the print capability that can be acquired from the OS.
[0037] Control 402 is a control item that can set the type of paper to be used for printing, and can set items such as plain paper and photo paper. Control 403 is a control item that can set the paper size to be used for printing, and can set items such as A4 and letter. List 410 shown in FIG. 4(b) shows the display state when control 403 is expanded, and the user can select a paper size from the expanded list.
[0038] Control 404 is a control that can set the paper feed port for printing paper of the printing device 102, and can set items such as the main tray and rear tray, for example. List 411 shown in Fig. 4(c) shows the display state when control 404 is expanded, and the user can select a paper feed port from the expanded list.
[0039] Control 405 is a control item that can set the print orientation, and can be set to either portrait or landscape. Control 406 is a control item that can switch between enabling and disabling double-sided printing. Control 407 is a control item that can set the binding direction when printing double-sided, and can set items such as long edge binding or short edge binding, for example. Control 409 is a cancel button that closes the screen without reflecting the settings. Control 408 is an OK button that reflects the settings and closes the screen.
[0040] <PDC editing process using the print function extension unit> 3 is a block diagram for explaining the editing process of the PDC 203 by the print function extension unit 207 in this printing system. First, the print data generation software 202 acquires capability information 302 of the printing device 102 connected to the host computer 101, and generates the PDC 203 based on the acquired information. The capability information 302 acquired from the printing device 102 includes information that the user can set as print settings when printing to the printing device 102. The OS 301 requests the print function extension unit 207 of the extension application 204 to edit the PDC 203 when the extension application 204 is associated with the print queue for the printing device 102, for example. The OS 301 may request the PDC 203 to be edited when the print setting screen is opened by the print setting screen extension unit 205, in addition to when the extension application 204 is associated for the first time. When the print function extension unit 207 receives a PDC editing request from the OS 301, it acquires the PDC 203 generated by the print data generation software 202 and starts editing the PDC 203. Details of print function extension by editing the PDC 203 will be described below.
[0041] Fig. 5 is a flowchart showing an editing process of the PDC 203 by the print function extension unit 207 in this printing system. The process in Fig. 5 is realized, for example, by the CPU 111 reading a program stored in the ROM 112 into the RAM 113 and executing it. Hereinafter, the print function extension unit 207 will be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.
[0042] 5 begins when the extension application 204 receives an instruction to edit the PDC 203 from the OS 301. In S501, the print function extension unit 207 acquires capability information from the printing device 102. The capability information 302 includes attribute information indicating functions (Features) that can be specified on the printing device 102 and setting values (Options) related to the attribute information. The capability information 302 is included in a response acquired by issuing an IPP Get-Printer-Attributes operation to the printing device 102.
[0043] 12 is a diagram showing an example of a list of capability information 302 acquired from the printing device 102. As shown in table 1201, information on features such as size and media, and setting values (options) that can be set for each feature can be acquired from the printing device 102. In this embodiment, paper size, media, and paper feed slot are described as printing functions, but other features and options such as printing the number of copies may also be used. Note that the feature names and option names used in the following description are merely examples, and other names (information indicating functions) and setting values may also be used.
[0044] In S502, the print function extension unit 207 acquires a list of print functions supported by the extension application 204 from the shared information 210. The list of print functions supported by the extension application 204 is stored in the shared information 210, and includes all print functions that can be processed by the extension application 204 and their setting values.
[0045] 13 is a diagram showing an example of a list of print functions supported by the extension application 204. The list of print functions supported by the extension application 204 includes functions that can be set when printing, such as size and media, as well as setting values that can be set for each function. The list of print functions supported by the extension application 204 may be updated by updating the extension application 204, etc.
[0046] In S503, the print function extension unit 207 acquires the PDC 203 created by the print data generation software 202 from the OS 301. The PDC 203 is created based on the capability information 302 that the print data generation software 202 acquires from the printing device 102.
[0047] 10 is a diagram showing an example of a PDC 203 created by the print data generation software 202. The PDC 1001 includes information on features supported by the printing device 102 and information on functions supported by the print data generation software 202 that are determined based on information on setting values (Options) for each feature.
[0048] For example, information 1002 indicates that ISOA4 or North America Letter (letter) can be specified as PageMediaSize (paper size). Here, PageMediaSize indicates a feature, and ISOA4 or the like indicates a setting value (Option) for that feature. For features described later, the feature and setting value (Option) are written in a similar manner. Information 1003 indicates that Plain (plain paper) or Photographic (photo paper) can be specified as PageMediaType (media). Information 1004 indicates that Main (main tray) or Rear (rear tray) can be specified as JobInputBin (paper feed port). Information 1005 indicates that color, monochrome, or grayscale can be specified as PageOutputColor (color mode during printing). Information 1006 is prohibition information (conflict information) for controlling OS 301 to prohibit printing in which the two described items are specified at the same time. The example of PDC1001 indicates that printing with Photographic (photo paper) specified as the media and Main (main tray) specified as the paper feed slot is prohibited by OS 301. The information described in PDC1001 is merely an example, and other features, options, and conflict information may also be described.
[0049] FIG. 11 is a diagram showing an example of a list of print functions described in the PDC 203 created by the print data generation software 202 and setting values that can be set for each function. In the PDC 1001 created by the print data generation software 202, only print functions supported by the print data generation software 202 are described among the capability information 302 (table 1201) acquired from the printing device 102. Therefore, the functions of the PDC 1001 are limited. For example, the capability information 302 (table 1201) acquired from the printing device 102 includes sizes such as 7×10 inches and Western-style No. 6, but the corresponding sizes are not supported by the print functions (table 1101) supported by the print data generation software 202, and the corresponding sizes are not described in the PDC 1001. In this embodiment, the print function extension unit 207 adds features and options to the PDC 1001, so that the extension application 204 can compensate for the lack of functions of the print data generation software 202.
[0050] In this embodiment, the print function extension unit 207 can also delete unnecessary features and options from the PDC 1001 created by the print data generation software 202. For example, the PDC 1001 created by the print data generation software 202 describes three options, Color, Monochrome, and Grayscale, for a feature called PageOutputColor. Here, Grayscale is not information returned from the printing device 102, but is created independently by the print data generation software 202. The printing device 102 in this embodiment is configured to perform the same operation regardless of whether Monochrome or Grayscale is specified in PageOutputColor. Therefore, it is sufficient that only one of Monochrome and Grayscale in PageOutputColor can be specified. In such a case, the print function extension unit 207 can execute a process of deleting unnecessary option items.
[0051] Furthermore, although there are multiple combinations of Option values that are prohibited in printing device 102, the conflict information recorded in PDC 1001 of printing device 102 generated by print data generation software 202 is limited. If a combination of Option values that should not be set is specified and printing is performed on printing device 102, there is a possibility that printing device 102 will perform an unexpected operation. For this reason, it is desirable for the PDC 1001 of printing device 102 to record, as conflict information, combinations of Option values that should not be set.
[0052] Returning to the description of the processing of FIG. 5 by the print function extension unit 207, in S504, the print function extension unit 207 acquires information for identifying the device type of the print device 102 from the print device 102, and in S505, identifies the device type based on the acquired information. The print function extension unit 207 can add or delete features or options to the PDC 1001. In this case, the features or options that the print function extension unit 207 should add or delete from the PDC 1001 differ depending on the type of the print device 102. Details of PDC editing according to device type will be described later. In this embodiment, three types of print devices 102 will be described as examples: a locally connected inkjet printer, a cloud connected inkjet printer, and a laser beam printer (locally connected and cloud connected).
[0053] The local connection refers to a connection in which the host computer 101 and the printing device 102 are connected in a state in which they can directly communicate with each other via the input / output interface 116 and the NETIF 120. The cloud connection refers to a connection in which the host computer 101 issues a print instruction to the printing device 102 via the NETIF 120 and a cloud print service (not shown) on the Internet. All of the examples of features and options such as the PDC 1001 and the capability information 302 (table 1201) described so far are examples related to a printing device whose device type is an inkjet printer. In the diagrams and tables exemplified below, unless otherwise specified, those with specific examples of features and options relate to a printing device whose device type is an inkjet printer. In this embodiment, the above three types of device types are given as examples, but the above three types are not limited to these, and a configuration in which multiple other device types and connection types are determined may be used.
[0054] Fig. 9 is a flowchart showing the processing of S505 by the print function extension unit 207. Note that the processing of Fig. 9 is premised on the assumption that the information acquired in S505 is information obtained by a response to the IPP Get-Printer-Attribute operation of the printing device 102. However, the device type may be determined using information obtained by other methods.
[0055] In S901, the print function extension unit 207 determines whether or not the response to the IPP Get-Printer-Attribute operation of the printing device 102 includes a marker-types attribute. If it is determined that the marker-types attribute is included, the process proceeds to S902. In S902, the print function extension unit 207 determines whether or not the marker-types attribute value in the response to the IPP Get-Printer-Attribute operation of the printing device 102 is ink-cartridge. If it is determined that the marker-types attribute value is ink-cartridge, the process proceeds to S903. In S903, the print function extension unit 207 determines whether or not the response to the IPP Get-Printer-Attribute operation of the printing device 102 includes a printer-device-id attribute.
[0056] If it is determined that the printer-device-id attribute is included, the process proceeds to S904. In S904, the print function extension unit 207 determines whether or not MDL:UPW is included in the printer-device-id attribute value of the response to the IPP Get-Printer-Attribute operation of the printing device 102. If it is determined that MDL:UPW is included, in S905, the print function extension unit 207 specifies the device type of the printing device 102 as a "cloud-connected inkjet printer." Note that, in the present embodiment, the printing device 102 returns MDL:UPW to the printer-device-id attribute value of the response to the IPP Get-Printer-Attribute operation in the case of cloud connection. However, other attribute values and return values may be used. In S904, the print function extension unit 207 may determine whether or not the printing device 102 is cloud-connected based on the specifications of the printing device 102. Also, the print function extension unit 207 may determine whether or not the printing device 102 is cloud-connected by a method other than the above-mentioned method. For example, when the printing device 102 is cloud-connected, the print data generation software 202 for cloud connection is used. Therefore, in step S904, the name and type of the print data generation software 202 may be determined to determine whether the printing device 102 is cloud-connected.
[0057] If it is determined in S903 that the printer-device-id attribute is not included, or if it is determined in S904 that the MDL:UPW is not included, the process proceeds to S906. In S906, the print function extension unit 207 identifies the device type of the printing device 102 as a "locally connected inkjet printer."
[0058] If it is determined in S901 that the marker-types attribute is not included, the process proceeds to S908. In S908, the print function extension unit 207 determines whether or not the response to the IPP Get-Printer-Attribute operation of the printing device 102 includes a printer-supply attribute. If it is determined in S908 that the printer-supply attribute is included, the process proceeds to S909. In S909, the print function extension unit 207 determines whether or not the printer-supply attribute value in the response to the IPP Get-Printer-Attribute operation of the printing device 102 includes type=toner. If it is determined in S909 that type=toner is included, the print function extension unit 207 identifies the device type of the printing device 102 as a "laser beam printer" in S910.
[0059] If it is determined in S902 that the attribute is not ink-cartridge, if it is determined in S908 that the printer-supply attribute is not included, or if it is determined in S909 that type=toner is not included, the process proceeds to S907. In S907, the print function extension unit 207 identifies the device type of the printing device 102 as "other."
[0060] In Fig. 9, the print function extension unit 207 identifies the device type based on information obtained by a response to the IPP Get-Printer-Attribute operation of the printing device 102. However, the device type may be identified based on other information. For example, the device type may be identified based on information obtained from the printing device 102 by another method. The device type may also be identified based on information such as the name of the printing device 102 obtained from the printing device 102 and table information held by the extension application 204. In this case, the table information may be configured to be obtained from a server (not shown).
[0061] Returning to the explanation of the processing in FIG. 5, in S506, the print function extension unit 207 stores the device type information of the printing device 102 identified in S505 in the shared information 210. The stored device type information of the printing device 102 is used by the print function extension unit 207 to switch the contents of the editing processing of the PDC 203. However, the device type information may be used for other purposes by other units of the extension application 204. Also, if the device type information of the printing device 102 is already included in the shared information 210, the print function extension unit 207 may be configured to skip the processing of S504 and S505.
[0062] In S507, the print function extension unit 207 determines whether the device type information of the printing device 102 stored in the shared information 210 is an inkjet printer. If it is determined in S507 that it is an inkjet printer, in S508 the print function extension unit 207 performs editing processing of the PDC 203 corresponding to the case where the device type is an inkjet printer. Details of the processing of S508 will be described later with reference to FIG.
[0063] If it is determined in S507 that the device is not an inkjet printer, then in S509 the print function extension unit 207 determines whether the device type information of the printing device 102 stored in the shared information 210 is a laser beam printer. If it is determined in S509 that the device is a laser beam printer, then in S510 the print function extension unit 207 performs editing processing of the PDC 203 corresponding to the case where the device type is a laser beam printer. Details of the processing of S510 will be described later with reference to FIG. 8. If it is determined in S509 that the device is not a laser beam printer, the print function extension unit 207 does not perform editing processing of the PDC 203 and ends the processing of FIG. 5.
[0064] 6 is a flowchart showing the editing process of the PDC 203 in S508 when the device type is an inkjet printer. The processes of S601 and S602 are repeatedly performed by the print function extension unit 207 for each candidate Feature to be added to the PDC 1001 of the printing device 102. In this embodiment, the Features that the print function extension unit 207 adds to the PDC 1001 are the three Features of paper size, media, and paper feed port, as shown in table 1301. Therefore, in this example, the processes of S601 and S602 are repeatedly performed for these three Features. Note that the print function extension unit 207 may also perform addition processes for other Features.
[0065] In step S601, the print function expansion unit 207 determines an option to be added to the PDC 1001.
[0066] 7 is a flowchart showing the process of determining an Option that the print function extension unit 207 adds to the PDC 1001. The processes of S701 to S703 are performed for each Option candidate of each Feature that the print function extension unit 207 adds to the PDC 1001 of the printing device 102. Here, the Option candidates are Options included in a table 1201 that lists capability information acquired by the print function extension unit 207 from the printing device 102. For example, according to table 1201, when the Feature is size, the Option candidates are A4, A5, letter, 7×10 inches, and Western style No. 6.
[0067] In S701, the print function extension unit 207 determines whether the PDC 1001 of the printing device 102 acquired from the OS 301 in S503 includes the Option candidate being processed. For example, if the Feature being processed is size and the Option candidate being processed is A4, then since the PDC 1001 includes an Option called ISOA4 that indicates A4, it is determined in S701 that the Option candidate being processed is included. If it is determined in S701 that the Option candidate being processed is included, it is determined that the Option in question is already included in the PDC 1001 and therefore no additional processing is required, and the processing of S701 to S703 is performed for the next Option candidate.
[0068] If it is determined in S701 that the option candidate being processed is not included, the process proceeds to S702. In S702, the print function extension unit 207 determines whether or not the table 1301 indicating the print functions supported by the extension application 201, which was acquired in S502 from the shared information 210 of the extension application 204, includes the option candidate being processed. For example, assume that the feature being processed is size, and the option candidate being processed is 7×10 inches. In this case, since 7×10 inches is included in the options when the feature in the table 1301 is size, it is determined in S702 that the option candidate being processed is included. If it is determined in S702 that the option candidate being processed is included, in S703, the print function extension unit 207 determines the option being processed as the option to be added to the PDC 1001 of the printing device 102 acquired from the OS 301. The print function extension unit 207 temporarily stores the result determined in S703 in the RAM 113 or the external storage device 114.
[0069] If it is determined in S702 that the Option candidate being processed is not included, the print function extension unit 207 performs the processes of S701 to S703 for the next Option candidate. In this embodiment, for example, when the Feature is size, the print function extension unit 207 determines as the Option to be added in S703 is a function that exists in tables 1201 and 1301, but does not exist in table 1101. That is, as a result of this example, 7×10 inches and Western style No. 6 are determined as the Option to be added.
[0070] Returning to the description of Fig. 6, in S602, the print function extension unit 207 adds the Option determined in S601 to the PDC 1001 of the printing device 102 as an Option of the Feature being processed. By repeating the processes from S601 to S602, the print function extension unit 207 performs the addition process of the Option determined to be added in S703 for all Features to be subjected to the addition process.
[0071] In S603, the print function extension unit 207 adds the conflict information to the PDC 1001 of the printing device 102 acquired from the OS 301. In this embodiment, in order to determine the conflict information to be added, the print function extension unit 207 acquires the value of the media-col-database attribute of the response value of IPP Get-Printer-Attribute from the printing device 102. The media-col-database attribute value includes information on a list of combinations that can be printed on the printing device 102 from a list of combinations of Option values that can be set as print settings.
[0072] 15 is a schematic diagram showing an example of combination information included in the media-col-database attribute. The values in each column of table 1501 indicate the option values belonging to each feature, and each row represents one combination. For example, the first row of table 1501 indicates that printing is possible on the printing device 102 when a combination of size: A4, paper feed: automatic, and media: plain paper is specified. Table 1501 lists three features: size, paper feed, and media, but other features may also be listed.
[0073] Returning to the description of FIG. 6, in S603, the print function extension unit 207 verifies all combinations of Option values included in the media-col-database acquired from the printing device 102. Then, the print function extension unit 207 determines a list of combinations of Option values that cannot be printed on the printing device 102. Furthermore, the print function extension unit 207 adds a list of combinations between two items from the list of combinations of Option values that cannot be printed on the printing device 102 to the PDC 1001. An example of conflict information to be added to the PDC 1001 is conflict information for a combination of paper feed slot: main tray, media: glossy gold, which is not listed in the media-col-database 1501.
[0074] In step S604, the print function expansion unit 207 deletes grayscale from the Options of the Feature color mode from the PDC 1001.
[0075] 14 shows an example of a PDC after the print function extension unit 207 executes the process of S508 on the PDC 1001. Compared to the PDC 1001, the PDC 1401 has added Option 1402 such as 7×10 inches for the size function, Option 1403 such as Photo Paper Glossy for the media function, and additional conflict information 1406. Option 1404 corresponds to Option 1004. Also, as shown in Option 1405, the Option value for grayscale, which is an unnecessary function for the printing device 102, has been deleted from the Page Output Color function.
[0076] By the above processing, when the device type is an inkjet printer, it is possible to add options, add conflict information, and delete unnecessary options. Note that the print function extension unit 207 may add or delete features in addition to options and conflict information.
[0077] Next, an editing process of the PDC 203 corresponding to the case where the device type of the printing device 102 is identified as a laser beam printer in S510 will be described. When the device type of the printing device 102 is identified as a laser beam printer, the capability information list acquired from the OS 301 in S501 may differ from table 1201 in FIG. 12, but since it is not used in the following description, the details will be omitted. FIG. 16 shows an example of the PDC of the printing device 102 acquired from the OS 301 in S503 when the device type of the printing device 102 is a laser beam printer. The PDC 1601 includes information on the functions (Features) supported by the printing device 102 and information on the setting values (Options) for each function, which are supported by the print data generation software 202. For example, information 1602 indicates that color, monochrome, and grayscale can be specified as PageOutputColor (color mode during printing). Information 1603 indicates that Standard (forward order) and Reverse (reverse order) can be specified as JobPageOrder (print page order). Information 1604 is prohibition information (conflict information) for controlling OS 301 to prohibit printing that specifies the two listed items at the same time. The example of PDC1601 indicates that printing that specifies ISOA5 as the size and BypassTray as the paper feed slot is prohibited by OS 301. Note that the information listed in PDC1601 is merely an example, and other Features, Options, and conflict information may also be listed.
[0078] If the device type of the printing device 102 is a laser beam printer, the PDC 1601 contains unnecessary options. The GrayScale option value of the PageOutputColor in the information 1602 is an unnecessary option value for the same reason as that explained in S604. In addition, the printing device 102, whose device type is a laser beam printer, has a function for controlling the page order on the device side. If Reverse (reverse order) is specified as the JobPageOrder in the information 1603, the print data generation software 202 edits the page order of the print data to reverse it. The printing device 102 cannot know that the page order has already been edited in reverse on the host computer 101 side. Therefore, if the printing device 102 is a laser beam printer, the print data will be further edited to change the page order. As a result, the combination of these operations causes the pages to be printed in the correct reverse order. Therefore, if the printing device 102 is a laser beam printer, the Reverse option value of the JobPageOrder in the information 1603 is deleted by the process described below. As a result, it is possible to make it impossible to specify reverse order settings in the GUI provided by the print setting screen extension unit 205.
[0079] In addition, in the printing device 102 whose device type is a laser beam printer, printable combinations are determined by option values of three or more features. That is, conflict information is composed of combinations of options of three or more features. When conflict information consisting of three or more features is described in information 1604 of the PDC 1601, it is necessary to describe information on all combinations, which results in an enormous amount of information and a problem of long conflict processing time.
[0080] 8 is a flowchart showing the editing process of the PDC 203 corresponding to the case where the device type is a laser beam printer in S510. In S801, the print function extension unit 207 deletes unnecessary Options written in the PDC 1601 of the printing device 102 acquired from the OS 301. Specifically, the print function extension unit 207 deletes GrayScale, which is an Option value of PageOutputColor in the information 1602, and Reverse, which is an Option value of JobPageOrder in the information 1603.
[0081] In S802, the print function extension unit 207 deletes the conflict information 1604 written in the PDC 1601. A PDC 1701 in Fig. 17 shows an example of a PDC after the editing process in Fig. 8 has been carried out. The above is the details of the process in S510.
[0082] As described above, in this embodiment, the function of the print data generation software 202 can be extended by the processing of the extension application 204. The extension application 204 can extend the function according to the capability of the connected printing device 102 by editing the PDC 203 based on the capability information 302 acquired from the printing device 102 connected to the host computer 101. Furthermore, the extension application 204 can identify the device type of the printing device 102 based on the information included in the capability information 302 acquired from the printing device 102. The extension application 204 executes the editing process of the PDC 203 by switching to a process different for each device type based on the identified device type. For example, when the device type is an inkjet printer, the extension application 204 adds conflict information to the PDC 203 in S603. When the device type is a laser beam printer, the extension application 204 deletes the conflict information from the PDC 203 in the processing of S802. These processes cannot be realized by simply reflecting the capability information 302 acquired from the printing device 102 in the PDC 203. Through these processes, the extension application 204 can realize optimal function extension processes according to the connected printing device 102 and its device type.
[0083] 5, the process is switched between two device types, an inkjet printer and a laser beam printer, but a plurality of device types may be specified and the process may be switched according to the specified device type. For example, as shown in S905, when it is determined that the printing device 102 is cloud connected, the extension application 204 may be configured to execute an editing process of the PDC 203 that is optimal for the cloud connection.
[0084] With the above configuration, the extension application 204 in this embodiment can realize optimal function extension processing with a single extension application 204, without providing different extension applications 204 according to the connected printing device 102.
[0085] The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.
[0086] The disclosure of the present embodiment includes the following information processing device, method, and program. (Item 1) An application program for expanding the functionality of a driver corresponding to a device, a first acquiring means for acquiring function information of the device created by the driver; A second acquisition means for acquiring the type of the device; editing means for editing the functional information acquired by the first acquisition means; a control means for controlling the editing means so as to change an editing process for the function information acquired by the first acquisition means in accordance with the type of the device acquired by the second acquisition means; A program that makes a computer function as a (Item 2) a third acquisition means for acquiring function information of the device supported by the application; The program according to item 1, characterized in that the control means controls the editing means to add at least a part of the function information acquired by the third acquisition means to the function information acquired by the first acquisition means. (Item 3) a fourth acquiring means for acquiring function information from the device; The program described in item 2, characterized in that the control means controls the editing means to add at least a part of the function information acquired by the third acquisition means to the function information acquired by the first acquisition means based on the function information acquired by the fourth acquisition means. (Item 4) 4. The program according to item 3, wherein the acquisition by the fourth acquisition means is executed via communication with the device using a predetermined protocol. (Item 5) 5. The program according to item 4, wherein the predetermined protocol is Internet Print Protocol (IPP). (Item 6) The program described in any one of items 2 to 5, characterized in that when the type of device acquired by the second acquisition means is a recording device using an inkjet recording method, the information added to the functional information acquired by the first acquisition means includes at least one of the size of the recording medium, the paper feed port, the type of recording medium, and conflict information in print settings. (Item 7) 7. The program according to any one of claims 1 to 6, wherein the control means controls the editing means to delete a part of the functional information acquired by the first acquisition means. (Item 8) The program described in item 7, characterized in that when the type of device acquired by the second acquisition means is at least one of a recording device using an inkjet recording method and a recording device using an electrophotographic method, the information to be deleted from the function information acquired by the first acquisition means includes color mode information. (Item 9) 8. The program according to item 7, wherein the information to be deleted differs depending on the type of the device acquired by the second acquisition means. (Item 10) The program described in item 9, characterized in that when the type of the device acquired by the second acquisition means is a recording device using an electrophotographic method, the information to be deleted from the functional information acquired by the first acquisition means includes at least one of page order, color mode information, and conflict information in print settings. (Item 11) 11. The program according to any one of items 1 to 10, wherein the acquisition by the second acquisition means is performed via communication with the device using a predetermined protocol. (Item 12) 12. The program according to item 11, wherein the predetermined protocol is Internet Print Protocol (IPP). (Item 13) 13. The program according to any one of items 1 to 12, wherein the function information edited by the editing means is used for displaying a user interface screen. (Item 14) Item 14. The program according to item 13, wherein the user interface screen is a print setting screen. (Item 15) 15. The program according to any one of claims 1 to 14, wherein the first acquisition means acquires functional information of the device created by the driver based on the application being associated with the driver. (Item 16) 16. The program according to any one of items 1 to 15, wherein the driver is included in an OS and operates based on a standard protocol. (Item 17) A first acquisition means for acquiring function information of a device, the function information being generated by a driver corresponding to the device; A second acquisition means for acquiring a type of the device; editing means for editing the functional information acquired by the first acquisition means; a control means for controlling the editing means so as to change an editing process for the function information acquired by the first acquisition means according to the type of the device acquired by the second acquisition means; An information processing device comprising: (Item 18) A method executed in an information processing device, comprising: a first acquisition step of acquiring function information of the device generated by a driver corresponding to the device; A second acquisition step of acquiring a type of the device; an editing step of editing the functional information acquired in the first acquisition step; a control step of controlling the editing step so as to vary an editing process for the functional information acquired in the first acquisition step according to the type of the device acquired in the second acquisition step; The method according to claim 1, further comprising:
[0087] The invention is not limited to the above-described embodiments, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention. [Explanation of symbols]
[0088] 101 host computer: 102 printing device: 111 CPU: 112 ROM: 113 RAM
Claims
An application program that collaborates with an IPP Class Driver, comprising: causing a computer of an information processing apparatus to:[[]] a first display step of displaying a first screen based on the capability information of an inkjet type image forming apparatus; a second display step of displaying a second screen based on the capability information of an electrophotographic type image forming apparatus; An application program characterized by causing the above to be executed. The application program according to claim 1, further comprising an acquisition step of acquiring capability information from an image forming apparatus. The application program according to claim 2, further comprising a determination step of determining whether the capability information acquired in the acquisition step is the capability information of the inkjet type image forming apparatus or the capability information of the electrophotographic type image forming apparatus, causing the first screen to be displayed when it is determined in the determination step that the capability information acquired in the acquisition step is the capability information of the inkjet type image forming apparatus, causing the second screen to be displayed when it is determined in the determination step that the capability information acquired in the acquisition step is the capability information of the electrophotographic type image forming apparatus. The application program according to claim 2, characterized by the above. The application program according to claim 3, wherein the acquisition step acquires the capability information of the image forming apparatus from the image forming apparatus according to the Internet Print Protocol. The application program according to claim 4, wherein the acquisition step acquires the capability information of the image forming apparatus from the image forming apparatus according to the Get Printer Attribute command. The application program according to claim 5, wherein the determination step determines whether the capability information acquired in the acquisition step is the capability information of the inkjet type image forming apparatus or the electrophotographic type image forming apparatus based on the response of the Get Printer Attribute command. The application program according to claim 1, wherein reverse printing can be set on the first screen and reverse printing cannot be set on the second screen. A storage medium storing the application program according to any one of claims 1 to 7. A method executed in an information processing apparatus having an application program that collaborates with an IPP Class Driver, comprising: a first display step of displaying a first screen based on the capability information of an inkjet type image forming apparatus by a first display means; a second display step of displaying a second screen based on the capability information of an electrophotographic type image forming apparatus by a second display means; A method characterized by comprising the steps. An information processing apparatus having an application program that collaborates with an IPP Class Driver, comprising: a first display means for displaying a first screen based on the capability information of an inkjet type image forming apparatus; a second display means for displaying a second screen based on the capability information of an electrophotographic type image forming apparatus; An information processing apparatus characterized by comprising the means.