Information processing apparatus, control method, and application
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-04-11
- Publication Date
- 2026-03-27
AI Technical Summary
Extended applications may fail to obtain necessary information from a printer, leading to incomplete or failed processing if information acquisition is unsuccessful.
An application that stores first and second attribute information from the printing device, acquires and stores information, and displays a print setting screen using pre-stored information if second attribute information cannot be acquired.
Enables the extended application to execute predetermined processing even if information acquisition from the printing device fails, ensuring seamless operation.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device, a control method, and an application. [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 means of issuing print instructions to the printing device using the OS.
[0003] In recent years, Windows (registered trademark) has been provided with 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. They can be used by connecting a printing device that supports the standard driver to a host computer. By using the standard driver, it is not necessary to separately install a printer driver specific to the model of the connected printing device. In addition, the standard driver is configured to be able to specify printing functions according to Print Device Capabilities (hereinafter "PDC") generated based on information obtained from the connected printing device. As a result, a user who uses the standard driver can 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 provides 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 that extends the function of the standard driver by editing the PDC based on information acquired from the printer by the extension application. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Patent Publication No. 2021-108001 Summary of the Invention [Problem to be solved by the invention]
[0006] The extension application of Patent Document 1 can extend the functions of the standard driver by editing the PDC based on information acquired from the printer. However, it is possible that the extension application will fail to acquire information from the printer. If the acquisition fails, the extension application cannot execute a predetermined process using the information, at least until it succeeds in acquiring the information. [Means for solving the problem]
[0007] In order to solve the above-mentioned problems, the application of the present invention is an application that is stored in a storage means of an information processing device and displays a print setting screen, and causes the information processing device to execute an acquisition step of acquiring first attribute information and second attribute information from a printing device, a storage control step of storing in the storage means first information based on the first attribute information acquired in the acquisition step and second information based on the second attribute information, and a display control step of displaying a print setting screen based on the first information and the second information stored in the storage means in the storage control step, and is characterized in that, if the second attribute information cannot be acquired in the storage control step, information that is pre-stored by the application is stored in the storage means as the second information. Effect of the Invention
[0008] The present invention aims to enable an extended application to execute a specified process even if it fails to obtain information from a printing device. [Brief description of the drawings]
[0009] [Figure 1] FIG. 2 is a block diagram showing an example of a hardware configuration of the printing system. [Diagram 2] FIG. 2 illustrates an example of a software configuration of the printing system. [Diagram 3] 2 is a diagram showing an example of a PDC 203 generated by the print data generation software 202. FIG. [Figure 4] 13 is a diagram showing an example of a PDC 203 edited by a print function expansion unit 207. FIG. [Diagram 5] 13 is a diagram showing an example of a print setting screen displayed by a print setting screen expansion unit 205. FIG. [Figure 6] 13 is a diagram showing an example of the print setting screen when the print setting screen expansion unit 205 performs prohibition processing. FIG. [Figure 7] 13 is a diagram showing a processing flow for acquiring capability information from a printing device 102 by a capability information acquisition unit 211. FIG. [Figure 8] 13 is a diagram showing an example of information returned from the printing device 102. FIG. [Figure 9] 13 is a diagram showing an example of information (media-col-database) returned from the printing device 102. FIG. [Figure 10] 2 is a diagram showing an example of a data structure of stored information stored in a capability information acquisition unit 211. FIG. [Figure 11] 13 is a diagram showing an example of stored information when prohibition information common to all models is used. FIG. [Figure 12] FIG. 11 is a diagram showing a processing flow of information acquisition by the capability information acquisition unit 211 in the second embodiment. [Figure 13] FIG. 13 is a diagram showing a processing flow of information acquisition by the capability information acquisition unit 211 in the third embodiment. [Figure 14] FIG. 13 is a diagram showing a processing flow of information acquisition by the capability information acquisition unit 211 in the fourth embodiment. [Figure 15] FIG. 11 is a diagram showing a process flow in which the capability information acquisition unit 211 determines the device type. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the present invention, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the present invention.
[0011] The same components are given the same reference numbers and their explanations are omitted.
[0012] <<Embodiment 1>> <Printing system hardware configuration> 1 is a block diagram showing the hardware configuration of a printing system. In this diagram, 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 display devices such as a display unit 119 are connected to the output interface 115. A NETIF 120 is a network interface, and performs control for transferring data between the host computer 101 and an external device via a network.
[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 a program stored in the ROM 112, thereby executing functions described below in the host computer 101 and processes related to flowcharts described below. A printing device 102, which is a device, is connected to the host computer 101 via an input / output interface 116. Note that, although the printing device will be described as an inkjet printer that prints by ejecting ink onto a paper surface, printing may be performed by other methods (for example, electrophotographic methods). The host computer 101 may be a desktop personal computer, a smartphone, or a notebook computer.
[0015] In the first embodiment, two types of printing device 102 will be described as examples: an inkjet printer compatible with local connection, and a laser beam printer compatible with local connection and cloud connection. The local connection refers to a form 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 form in which the host computer 101 instructs the printing device 102 to print via the NETIF 120 and a cloud print service (not shown) on the Internet. Note that all of the descriptions of specific examples of Features and Options, such as the PDC 203, information 801, and information 901 described below, are examples of printing devices whose device type is an inkjet printer. In the diagrams and tables exemplified below, descriptions of specific examples of Features and Options relate to printing devices whose device type is an inkjet printer unless otherwise specified. In the first embodiment, the above-mentioned two types of device types are given as examples, but the above-mentioned two types are not limited to the above-mentioned two types, and a configuration in which a plurality of other device types and connection types are discriminated may be used.
[0016] <Software-centric printing system configuration> FIG. 2 is a diagram showing a schematic software configuration of a printing system. Here, the printing system will be described on the premise that a host computer 101 is equipped with Microsoft Windows 11 as the OS. FIG. 2(a) is a diagram showing a general configuration in the case where an extension application 204 is not associated with the print data generation software 202 and the printing device 102. The print data generation software 202 is software that is distributed bundled with the OS. The print data generation software 202 generates print data according to the definition of IPP (Internet Printing Protocol), which is a standard protocol for printing, and transmits it to the printing device 102. If the printing device can interpret the print data generated by the print data generation software 202, it can execute printing based on the print data generated by the print data generation software 202, regardless of the vendor (manufacturer) that designs the printing device.
[0017] 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 Print Ticket (hereinafter, "PT").
[0018] 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 and control items indicating their setting values according to capability information (information that can be set as print settings) acquired from the print data generation software 202. The capability information is also called Print Capabilities (hereinafter "PC"). The print data generation software 202 determines the PC based on the print function information 203. The print function information 203 is data indicating all print functions that can be set, their setting values, and the exclusive relationship between the setting values. The print function information 203 is also called PDC (Print Device Capabilities). The PDC 203 is 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 a PDC 203 according to attribute information in the acquired attribute data. The generated PDC 203 is editable.
[0019] The printing device attribute data acquired from the printing device 102 is a response acquired by issuing an IPP Get-Printer-Attributes operation to the printing device 102. The response includes attribute information indicating functions that can be specified on the printing device 102 (printing device capabilities) and setting values related to that attribute information. This response is stored in RAM 113.
[0020] The print data generation software 202 generates a PDC 203 for each printing device, and manages attribute information and setting values related to the attribute information that can be used by each printing device. Then, a print setting screen is displayed according to a PC generated based on the PDC 203.
[0021] By configuring in this way, the print data generation software 202 can be configured so that the user can specify the print functions available in the connected printing device 102. That is, 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 so that the user can specify the print functions available in accordance with the connected printing device. Note that here, a configuration using an IPP Class Driver installed in Windows (registered trademark) 11 will be described as the print data generation software 202. The IPP Class Driver is a printer driver that executes print processing according to the specifications of a standard printing 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. In addition, the IPP Class Driver 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 the information.
[0022] 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). If the data output by the drawing application 201 is data in GDI format, the OS converts the GDI format data output from the drawing application 201 into data in XPS format. Then, it passes the converted XPS format data 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 XPS format data to the print data generation software 202 as intermediate data. The intermediate data includes drawing data, which is information on a picture to be formed on paper, and print setting information set by the user.
[0023] 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 a picture to be formed on paper, 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 (capabilities of the printing device) that can be specified by the printing device 102, and setting values related to that attribute information. In printing using the IPP Class Driver, the drawing data is PDF or PWG-Raster data. The print setting attribute information also includes attributes (Features) and their values (Options) defined by IPP.
[0024] The printing device 102 prints on paper 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 paper 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.
[0025] Fig. 2B is a diagram showing a configuration when the extension application 204 is associated with the print data generation software 202. Note that configurations and processes not specifically mentioned below are the same as those in Fig. 2A.
[0026] The extension application 204 is software for extending the function 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 to download the extension application 204 from a server via the Internet and install it. 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 device identification information is, for example, the HWID (Hardware ID) of the printing device 102. The OS downloads the extension application 204 corresponding to the acquired device identification information from the server via the Internet and installs it. That is, the print data generation software 202 and the extension application 204 are held in the host computer 101 as separate files. The extension application 204 is, for example, an application provided by the vendor of the printing device 102.
[0027] The print data generation software 202 and the extension application 204 may be updated and upgraded, but these update processes are also 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. In addition, the trigger at which the host computer 101 acquires the print data generation software 202 is different from the trigger at which the extension application 204 is acquired. 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.
[0028] 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, a notification unit 209, and a capability information acquisition unit 211. 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.
[0029] The extension application 204 may terminate operation each time the processing of each unit is completed. In this case, the OS launches the extension application 204 each time a request to use any of the units is received from the drawing application 201, the print data generation software 202, or the printing device 102. Other configurations are also possible. For example, when the processing of the print setting screen extension unit 205 is completed, the OS terminates the operation of the extension application 204, but the OS may keep the extension application 204 running even after the processing of the skip control unit 206 is completed.
[0030] Furthermore, the extension application 204 may be designed to be able to cancel processing during the processing of each unit. For example, suppose an error occurs while sending print data to the printing device 102. At this time, the printing device 102 notifies the extension application 204, and the extension application 204 uses the notification unit 209 to display an error notification and a print cancel button on the computer 101. When the user selects the print cancel button, the extension application 204 stops the processing of the unit being processed. If printing is canceled, the job being processed in the print queue is deleted by the OS.
[0031] When the drawing application 201 receives a print request from a user, it issues a print instruction to the OS. In this configuration, as in the configuration of FIG. 2(a), the drawing application 201 can display a print setting screen. In response to a predetermined user operation on the print setting screen provided by the drawing application 201, a print setting screen provided by the extension application 204 is displayed. Specifically, a print setting screen provided by a print setting screen extension unit 205 included in the extension application 204 is displayed. The print setting screen extension unit 205 executes processing related to display control. Note that whether or not the print setting screen provided by the print setting screen extension unit 205 is displayed depends on the user operation. Details of the print setting screen extension unit 205 will be described later with reference to FIG. 5.
[0032] Furthermore, when the drawing application 201 accepts a print request from a user and issues a print instruction to the OS, the OS starts up a skip control unit 206. The skip control unit 206 controls whether or not to skip the processing of the print data generation software 202. The processing of the print data generation software 202 refers to the processing in which the print data generation software 202 converts intermediate data generated by the OS into print data. Skipping this processing refers to the processing in which the print data generation software 202 sets a flag indicating that the intermediate data is not converted by the print data generation software 202, but is passed directly to the extension application 204.
[0033] After the skip control process of skip control unit 206, the OS generates intermediate data based on the print instruction output from drawing application 201. The generated intermediate data is passed to print data generation software 202. If skip control is not performed by skip control unit 206, the intermediate data is processed by print data generation software 202 to print data that can be interpreted by printing device 102, and passed to print data editing unit 208. On the other hand, if processing by print data generation software 202 is skipped, the intermediate data is passed to print data editing unit 208 without being processed by print data generation software 202. This makes it possible for the intermediate data to be processed by print data editing unit 208.
[0034] 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 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 UI screen on the display unit 119, and can provide functions such as displaying the layout result of the intermediate data or 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 closing the GUI screen starts the print data sending process.
[0035] 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 on paper based on the received print data.
[0036] When 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. When the print data editing unit 208 converts the intermediate data into print data, the conversion may be performed using a function provided by the OS.
[0037] 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. Details of the PDC edited by the print function extension unit 207 will be described later with reference to Figures 3, 4, 8, and 9. This allows the print function extension unit 207 to add functions provided by the extension application 204, add exclusive relationships between setting values of print functions, and the like. Furthermore, the print function extension unit 207 can add information about functions to the PDC that could not be added to the PDC by the print data generation software 202.
[0038] 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 starts up. In this way, in cases where an option (e.g., a finisher) is added later to the printing device 102 and printing-related functions are extended, the print function extension unit 207 can detect the extended function and add it to the PDC 203.
[0039] 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 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 a UI screen of the notification unit 209 is displayed. The UI screen of the notification unit 209 displays, for example, a detailed message of the out-of-paper error and a method for loading paper.
[0040] The configuration of the extension 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. The extension application 204 may also be simply called printing software.
[0041] <Example of PDC editing using the print function expansion unit> First, the print data generation software 202 acquires capability information of the printing device 102 connected to the host computer 101, and generates a PDC 203 based on that information. The capability information 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 requests the print function extension unit 207 of the extension application 204 to edit the PDC 203 when the print queue is associated with the extension application 204. The OS requests the PDC 203 to be edited not only when the extension application 204 is associated with the print queue, but also when the print setting screen is opened by the print setting screen extension unit 205. When the print function extension unit 207 receives a PDC editing request from the OS, it acquires the PDC 203 generated by the print data generation software 202, and starts PDC editing.
[0042] The following describes in detail the PDC 203 generated by the print data generation software 202. Figures 8 and 9 show an example of a response corresponding to the IPP Get-Printer-Attributes operation issued to the printing device 102. The print data generation software 202 receives the response shown in Figures 8 and 9.
[0043] 8 is an example of a response that can be obtained by issuing an IPP Get-Printer-Attributes operation to the printing device 102. The information 801 includes attribute information indicating features that can be specified by the printing device 102 and setting values (options) related to the attribute information. As shown in the information 801, feature information such as size and media, and setting values (options) that can be set for each feature can be obtained from the printing device 102. The document-format-supported shown in the information 802 indicates a print data format that can be accepted by the printing device 102. The information 802 indicates that the printing device 102 supports the data formats 'application / octet-stream', 'image / jpeg', 'image / urf', and 'image / pwg-raster'. The print-color-mode-supported shown in the information 803 indicates a color mode that can be specified when printing by the printing device 102. Information 803 indicates that the printing device 102 supports the color modes: 'color', 'monochrome', and 'auto' (automatic selection). The "sides-supported" information in information 804 indicates that the printing device 102 supports two-sided printing, two-sided printing with two-sided printing on the short side and two-sided printing on the long side. The "printer-firmware-name" and "printer-firmware-version" indicate the name and version information of the firmware of the main body of the printing device 102, respectively. The "information 805" indicates that the name of the firmware is "Inkjet-AAA" and the version information is 1.090. The "media-size-supported" information in information 806 indicates the media sizes supported by the printing device 102, expressed in units of 1 / 100 mm for width and height. The example of the information 806 indicates that the printing device 102 supports printing on A5, A4, and B5 size paper. The information 807 , media-supported, indicates the names of media sizes supported by the printing device 102 .The media-type-supported information 808 indicates the media type supported by the printing device 102. The information 808 indicates the paper type supported by the printing device 102. The printing device 102 supports platinum (glossy pro platinum), gold (glossy gold), mat (matte photo paper), stationary (plain paper), photographic (photo paper), and envelope (envelope paper). The media-source-supported information 809 indicates a list of paper feed ports supported by the printing device 102. The information 809 indicates that the printing device 102 supports auto (automatic selection), main (main tray), and rer (rear tray) as paper feed ports for printing paper. The media-top (bottom / right / left)-margin-supported information 810 indicates the length of the margin that can be set when printing with the printing device 102, top, bottom, left, and right, relative to the paper. The example of the information 810 indicates that the margins of 5 mm, 0 mm, 8 mm, and 6 mm can be set on the top side of the paper. It also indicates that the margins of 3.4 mm, 0 mm, 6.4 mm, 5.6 mm, 6 mm, and 5 mm can be set on the left side of the paper. It also indicates that the margins of 3.4 mm, 0 mm, 6.3 mm, 5.6 mm, 6 mm, and 5 mm can be set on the right side of the paper. It also indicates that the margins of 5 mm, 0 mm, 12.7 mm, and 6 mm can be set on the bottom of the paper. Note that the margins that can be set depending on the size and media of each paper are described in an information group called media-col-database, which will be described later. The attribute values exemplified for the information 802 to information 810 are merely examples, and actually, attribute values other than those exemplified are included as each attribute value. Also, the example shown in the information 801 is merely an example, and the response obtained by issuing the IPP Get-Printer-Attributes operation also includes attribute information other than those exemplified.
[0044] FIG. 9 is a diagram showing an example of information of an attribute value called media-col-database in a response obtained by issuing an IPP Get-Printer-Attributes operation to the printing device 102. The media-col-database attribute value includes a list of combinations of Option values that can be set as print settings in the printing device 102. The collection shown in information 902 represents one combination. The example of information 902 indicates that printing is possible with the paper size set to A4, the top, bottom, left, and right margins set to 5 mm, 5 mm, 3.4 mm, and 3.4 mm, respectively, the paper feed slot set to automatic selection, and the media set to plain paper. Like information 902, information 903 is also an example included in the list of combinations that can be printed in the printing device 102. Information 901 is merely an example of information included in the media-col-database. In reality, it includes combinations of all options that can be printed by the printing device 102 for the four features of paper size, margin, paper feed slot, and media. The print data generation software 202 issues an IPP Get-Printer-Attributes operation to the printing device 102 and acquires information such as information 801 and information 901. The print data generation software 202 generates a PDC 203 based on the acquired information.
[0045] An example of the PDC 203 generated by the print data generation software 202 is shown using information 301 in FIG. 3. The PDC 203 is described in xml format as in the information 301 in FIG. 3, and attribute information indicating features that can be specified by the printing device 102 and setting values (Options) related to the attribute information are described. The information 302 indicates that ISOA4, ISOA5, and ISOB5 can be specified as the PageMediaSize (paper size). Here, PageMediaSize indicates the feature, and ISOA4 and the like indicate the setting values (Options) for that feature. For features described later, the feature and setting values (Options) are written in the same manner. The information 303 indicates that Borderless and None can be set as the PageBorderless (borderless print setting). The information 304 indicates that Plain (plain paper), Photographic (photo paper), and EnvelopePlain (envelope paper) can be specified as the PageMediaType (media). Furthermore, information 305 indicates that Main (main tray) or Rear (rear tray) can be specified as JobInputBin (paper feed port). Information 306 indicates that Color, Monochrome, and GrayScale can be specified as PageOutputColor (color mode during printing). Information 307 indicates options that can be set for JobDuplexAllDocumentsContiguously (duplex printing setting). Here, OneSided (single-sided printing), TwoSideShortEdge (short-edge binding), and TwoSidedLongEdge (long-edge binding) can be specified.
[0046] The information 308 is called InvalidCombination, and is prohibition information (conflict information) for controlling the OS 301 to prohibit printing in which two specified items are set at the same time. The InvalidCombination is generated based on the media-col-database shown in FIG. 9. The media-col-database is a set of possible combinations, and a combination not defined in the media-col-database is an Invalid Combination. The information 308 of the PDC 203 indicates that printing in which EnvelopePlain (envelope paper) is specified as the medium and Borderless (borderless) is specified as the borderless print setting is prohibited. Assume that a user simultaneously sets the two items specified as Invalid Combination in the information 308 and issues a print command using the print data generation software 202. The OS executes a Validate Print Ticket process to forcibly change one or both of the set values corresponding to the Invalid Combination. In the example of information 308, if the user sets the medium to envelope paper, sets borderless printing to ON, and issues a command to execute printing, the OS will either turn off the borderless printing setting or change the media setting to one that supports borderless printing. Note that the information described in information 301 is merely an example, and other features, options, and conflict information will actually be described.
[0047] As described above, the print data generation software 202 or the OS acquires information such as the above-mentioned information 801 and information 901 by issuing a Get-Printer-Attributes operation to the printing device 102. Furthermore, the print data generation software 202 or the OS generates a PDC 203 based on the acquired information. In the PDC 203 generated here, only Features and Options known to the OS are described. In other words, vendor-specific information such as media: glossy pro platinum and matte photo paper shown in information 808 is not described in the PDC 203. Furthermore, the invalid combination information described in the PDC 203 reflects only a portion of the information in the media-col-database acquired from the printing device 102. In this way, in the PDC 203 generated by the print data generation software 202 or the OS, only standard or general-purpose Features and Options are described from the information 801 and information 901 acquired from the printing device 102.
[0048] The print function extension unit 207 of the extension application 204 edits the PDC 203 generated by the print data generation software 202 or the OS, and extends the functions that the user can use when printing to the printing device 102 using the print data generation software 202. Specifically, the print function extension unit 207 writes a new Feature or Option in the PDC 203, or writes a new Invalid Combination. For example, by adding a Feature or Option, it is possible to add a function provided by the extension application 204, or a function that is supported by the printing device 102 but not supported by the print data generation software 202. Furthermore, by adding an Invalid Combination, it is possible to add an exclusive relationship (prohibition information) between the setting values of the print functions, etc. In this embodiment, the capability information acquisition unit 211 of the extension application 204 acquires capability information 801 and information 901 by issuing a Get-Printer-Attributes operation of IPP to the printing device 102. Then, the print function extension unit 207 edits the PDC 203 based on the acquired capability information 801 and information 901. The capability information acquisition unit 211 executes processing related to storage control for writing information to the shared information 210. Note that in this embodiment, the capability information acquisition unit 211 will be described taking as an example a case where it acquires capability information from the printing device 102. The print data generation software 202 may transmit print data to the printing device 102 via a cloud print service. The cloud print service acquires and stores capability information from the printing device 102 in advance. The capability information acquisition unit 211 transmits a Get-Printer-Attributes operation to the cloud print service. Then, the capability information acquisition unit 211 receives the capability information of the printing device 102 from the cloud print service.
[0049] An example of PDC 203 edited by print function extension unit 207 will be described using information 401 shown in Fig. 4. Here, an example will be described in which print function extension unit 207 adds media, deletes unnecessary color mode settings, and adds prohibited characters information as editing processes for PDC 203. Specifically, information 401 is information in which print function extension unit 207 adds and deletes options from information 304, 306, and 308 in Fig. 3. Note that the attributes of the information shown in information 402 to information 408 are the same as those of information 302 to information 308, and therefore description thereof will be omitted.
[0050] Information 404 indicates that the print function extension unit 207 has added vendor-specific media. Specifically, PhotoPapaerGlossy, PhotoPapaerGold, and MattePhotoPaper have been added to PageMediaType.
[0051] In information 406, the print function extension unit 207 deletes GrayScale from PageOutputColor. This is because GrayScale is an option with the same characteristics as Monochrome. If GrayScale remains, grayscale will be displayed as a color mode option when the drawing application 201, the OS, or the print setting screen extension unit 205 displays the print setting screen. If both grayscale and monochrome, which have the same characteristics, are displayed, this may confuse the user, so the above processing is performed.
[0052] In information 408, the print function expansion unit 207 has added two pieces of invalid combination information to the invalid combination. The first is a combination of media: Platinum Glossy Pro and paper feed slot: main tray. The second is a combination of media: Platinum Glossy Pro and duplex printing: short edge binding.
[0053] In this way, the print function extension unit 207 edits the PDC 203 based on the information acquired by the capability information acquisition unit 211 from the printing device 102. This makes it possible to add functions provided by the extension application 204 and to add functions that are supported by the printing device 102 but not supported by the print data generation software 202. Furthermore, by using the extension application 204, it is possible to add an exclusive relationship (prohibition information) between setting values of printing functions. Here, the addition of a function and the addition of an exclusive relationship (prohibition information) between setting values of printing functions have been described as examples of PDC editing by the print function extension unit 207. The above-mentioned processing is merely an example, and in reality, it is also possible to add functions and add an exclusive relationship (prohibition information) between setting values of printing functions.
[0054] <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. 5. A PC is generated based on the PDC 203 edited by the print function extension unit 207. A print setting screen 501 in Fig. 5(a) is an example of a screen displayed by the print setting screen extension unit 205 based on the generated PC. The print setting screen extension unit 205 is called by the OS when a 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 a PC that can be obtained from the OS.
[0055] Control 502 is a control item that can set the type of paper to be used for printing, and can set items such as plain paper, photo paper, etc. Control 502 accepts the selection of one paper type from the paper types corresponding to 404 in FIG.
[0056] Control 503 is a control item that can set the paper size used for printing. Control 503 accepts the selection of one paper size from the paper sizes (A4, A5, etc.) corresponding to 402 in Fig. 4. List 510 shown in Fig. 5(b) shows the display state when control 503 is expanded, and the user can select a paper size from the expanded list.
[0057] Control 504 is a control that can set the paper feed port for printing device 102, and can set items such as the main tray and rear tray. Items corresponding to 405 in Fig. 4 are displayed in control 504. List 511 shown in Fig. 5(c) shows the display state when control 504 is expanded, and the user can select a paper feed port from the expanded list.
[0058] Control 505 is a control item that can set the print orientation, and can be set to either portrait or landscape. Control 506 is a control item that can switch between enabling and disabling double-sided printing. Control 507 is a control item that can set the binding direction when printing on both sides, and can set items such as long edge binding or short edge binding, for example. Control 509 is a cancel button that closes the screen without reflecting the settings. Control 508 is an OK button that reflects the settings and closes the screen.
[0059] The example of the screen shown in FIG. 5 is merely one example, and in reality, the screen may be configured to allow other features and options to be set, and information other than the print settings may be displayed.
[0060] Furthermore, on the print setting screen displayed by the print setting screen extension unit 205, it is possible to apply prohibition rules unique to the extended application 204. For example, it is clear from the PDC Invalid Combination that both "Paper type: envelope" and "Borderless printing: enabled" cannot be set for one piece of print data. However, the Invalid Combination does not state whether the setting of "Paper type" or "Borderless printing" should be changed. In this regard, by using the rules stored in the extended application 204, the setting value of one of the setting items is changed to eliminate the prohibition.
[0061] In the first embodiment, the print setting screen expansion unit 205 performs prohibition processing based on prohibition information generated by the capability information acquisition unit 211 based on the media-col-database acquired from the printing device 102 .
[0062] A screen when the print setting screen extension unit 205 applies the unique prohibition rule of the extension application 204 will be described with reference to FIG. 6. FIG. 6(a) is an example of a screen in which the user operates the list 601 displayed by expanding the control 502 of the screen 501 to change the paper type. Here, a case is taken as an example in which the control 506 that allows the user to change the double-sided printing setting is checked (double-sided printing with long edge binding is set to ON) and the user changes the media to photo paper. The print setting screen extension unit 205 refers to the prohibition information generated based on the media-col-database acquired by the capability information acquisition unit 211. The media-col-database acquired by the capability information acquisition unit 211 from the printing device 102 does not include the combination of media: photo paper and double-sided printing: long edge binding. In this case, the Invalid Combination describes that "media: photo paper" and "double-sided printing with long edge binding" cannot be set in one print data. The print setting screen extension unit 205 detects that the setting has been changed to the above combination and performs prohibition processing. Specifically, the long-edge binding double-sided printing setting is turned off, or the media is changed to one for which the long-edge binding double-sided printing setting is available. Fig. 6B shows an example in which, when the above-mentioned prohibition processing is performed, notification text 602 is displayed on the print setting screen 501 displayed by the print setting screen expansion unit 205, notifying the user that prohibition processing has been performed. The example in Fig. 6B shows an example in which the long-edge binding double-sided printing setting is turned off as the prohibition processing. In this way, the print setting screen expansion unit 205 can expand the print setting screen of the print data generation software 202, and prohibition processing unique to the extension application 204 is performed on the expanded print setting screen.
[0063] In the print setting screen provided by the print data generation software 202, the prohibition processing of the OS is executed at the timing when the user instructs to execute printing, and the user is notified that the print setting has been changed due to the prohibition processing. The prohibition processing of the OS at this timing is executed based on the InvalidCombination written in the PDC. On the other hand, in the print setting screen displayed by the print setting screen expansion unit 205, the prohibition processing can be executed at the time when the user changes the print setting, and it is possible to immediately notify that the prohibition processing has been executed. Therefore, the user can easily determine which print setting has been determined to be prohibited. In this way, when the prohibition processing is executed immediately, it is necessary for the print setting screen expansion unit 205 to execute the prohibition processing by itself, not the prohibition processing of the OS. Note that when the print setting screen expansion unit 205 executes the prohibition processing, it may use the Invalid Combination stored in the PDC, or the prohibition information stored in the shared information 210.
[0064] The example of the character string prohibition processing described here is merely one example, and character string prohibition processing may actually be performed for other Features and Options.
[0065] <Example of information acquisition processing of capability information processing unit> As described above, the extension application 204 uses information acquired by the capability information acquisition unit 211 from the printing device 102 when performing PDC editing processing by the print function extension unit 207 or displaying the print setting screen by the print setting screen extension unit 205. In practice, the capability information acquisition unit 211 converts the acquired capability information into a data structure that can be interpreted by the print function extension unit 207 and the print setting screen extension unit 205, and stores it in the shared information 210. The print function extension unit 207 and the print setting screen extension unit 205 read information associated with the printing device 102 stored in the shared information 210, and perform PDC editing processing and prohibition processing on the print setting screen based on the read information.
[0066] The information that the capability information acquisition unit 211 acquires from the printing device 102 is the response value obtained by issuing an IPP Get-Printer-Attributes operation to the printing device 102. The information acquired in the response described above includes basic configuration information and capability information of the printing device 102 as shown in information 801, and information such as media-col-database that indicates a list of combinations of printable options as shown in information 901. For the sake of simplicity, the information shown in information 801 is referred to as basic capability information, and the media-col-database information shown in information 901 is referred to as combination list information.
[0067] The timing at which the OS instructs the print function extension unit 207 to edit the PDC depends on the OS. Also, the timing at which the print setting screen extension unit 205 displays the print setting screen depends on the user's operation. In this way, at a timing when the extension application 204 cannot be involved, the processing by the above units is called, and each time, the capability information acquisition unit 211 needs to acquire information from the printing device 102. Generally, the data size of the basic capability information is relatively small, whereas the data size of the combination list information is huge compared to the basic capability information. If the capability information acquisition unit 211 performs information acquisition processing from the printing device 102 each time, the communication load between the host computer 101 and the printing device 102 becomes large. Also, this causes a delay in the execution of the PDC editing processing by the print function extension unit 207 and the processing of displaying the print setting screen by the print setting screen extension unit 205.
[0068] As described above, the response information acquired from the printing device 102 by Get-Printer-Attributes is stored in the RAM 113. If the area allocated in the RAM for the print data generation software 202 or the extension application 204 is insufficient, the acquisition of the basic capability information or the combination list information may fail. Also, there are cases where the acquisition of the basic capability information or the combination list information may fail even in a situation where the communication environment with the printing device 102 is unstable. For example, the data size of the combination list information may be too large, and the information acquisition process may not be completed within the time limit set by the OS, resulting in a timeout without the combination list information being acquired. In this case, the subsequent process may continue without the combination list information being acquired, and the printing function extension unit 207 or the print setting screen extension unit 205 may not be able to execute the process normally. If the acquisition of the basic capability information or the combination list information fails, the printing function extension unit 207 cannot perform PDC editing, and the print setting screen extension unit 205 cannot perform prohibition processing. In order to avoid such a failure in communication with the printing device 102, it is necessary to keep communication between the capability information acquisition unit 211 and the printing device 102 to a bare minimum, and furthermore, it is necessary to take measures to avoid communication failure.
[0069] A method of dealing with a failure in obtaining information while minimizing communication between the capability information obtaining unit 211 and the printing device 102 in the first embodiment will be described.
[0070] Fig. 7 is a diagram showing a process flow in which the capability information acquisition unit 211 acquires basic capability information and combination list information from the printing device 102. The process shown in Fig. 7 starts when the capability information acquisition unit 211 is started, for example, when the print function extension unit 207 is instructed to edit PDC from the OS or when the print setting screen extension unit 205 displays the print setting screen by a user operation. The above timing is merely an example, and the capability information acquisition unit 211 may actually be started at other timings. A program for executing the process shown in Fig. 7 is stored in the external storage device 114, and the following process is realized by the CPU 111 executing the program.
[0071] The capability information acquisition unit 211 is started, and processing for acquiring capability information from the printing device 102 begins. In S701, the capability information acquisition unit 211 determines whether or not basic capability information associated with the print queue corresponding to the printing device 102 from which the capability information is to be acquired is stored in the shared information 210 of the extension application 204. The information associated with the print queue corresponding to the printing device 102 will be described later with reference to FIG.
[0072] If the result of the determination in S701 is No, in S703, the capability information acquisition unit 211 uses IPP Get-Printer-Attributes to acquire basic capability information from the printing device 102. Fig. 8 shows an example of basic capability information acquired by the capability information acquisition unit 211 from the printing device 102 in S703. However, information 801 in Fig. 8 is merely an example, and other information may actually be acquired from the printing device 102 as basic capability information.
[0073] In S703, the capability information acquisition unit 211 performs a process of acquiring basic capability information from the printing device 102. In the following S704, the capability information acquisition unit 211 determines whether the basic capability information acquisition process in S703 was successful or not. Specifically, it determines whether the basic capability information has been loaded into an area reserved for basic capability information on the RAM 113, and whether the information corresponding to the basic capability information is empty. If the determination in S704 is No, the capability information acquisition unit 211 proceeds to the process of S706.
[0074] If the determination in S704 is Yes, the capability information acquisition unit 211 proceeds to S705 and stores the basic capability information acquired from the printing device 102 in the shared information 210 of the extension application 204. An example of a data structure of information in which the capability information acquisition unit 211 stores the basic capability information acquired from the printing device 102 in the shared information 210 is shown in data structure 1001 in FIG. 10. The data structure 1001 shows that the basic capability information of the printing device 102 is stored in a hierarchical structure with QueueName as a key, DataName below that, and Data below that. QueueName is a name that is uniquely given as a name representing the print queue of the printing device 102 on the OS, and the capability information acquisition unit 211 acquires the queue name using the API of the OS. Below QueueName, a list of DataNames representing the attributes of the basic capability information acquired from the printing device 102 is stored as key information. DataName stores key information such as the device type of the printing device 102, the size supported by the printing device 102, the media, the paper feed slot, prohibition information 1, prohibition information 2, etc. Prohibition information is prohibition information created by the capability information acquisition unit 211 based on combination list information acquired from the printing device 102, which will be described later, and indicates that the two Option values stored in the lower layer are exclusive. In other words, it is information indicating that the two Option values stored as prohibition information cannot be set simultaneously when printing with the printing device 102. With the data structure described above, the capability information acquisition unit 211 stores basic capability information of the printing device 102 in the shared information 210 for the number of print queues corresponding to the multiple printing devices 102. In the first embodiment, all information stored in the storage area by the capability information acquisition unit 211 is stored in String format, but in reality, it may be stored in other data formats. Note that when the process described in FIG. 7 is executed for one print queue for the first time, the prohibition information and device type are not stored in the shared information 210 at the stage of S705. That is, in the case of queue (1) in FIG. 10, information on size, media, and paper feed port is stored in the shared information 210.
[0075] In S705, when the capability information acquisition unit 211 stores the basic capability information of the printing device 102, the capability information acquisition unit 211 determines the device type of the printing device 102. The capability information acquisition unit 211 determines whether or not information indicating the device type is stored in the shared information 210. If information indicating the device type is stored, the capability information acquisition unit 211 proceeds to S706. On the other hand, if information indicating the device type is not stored in the shared information 210, the capability information acquisition unit 211 executes the processing shown in Fig. 15. The processing by which the capability information acquisition unit 211 determines the device type of the printing device 102 will be described with reference to the flow diagram in Fig. 15.
[0076] In S1501, the capability information acquisition unit 211 checks whether the response to the IPP Get-Printer-Attributes operation of the printing device 102 includes a marker-types attribute. If the result of the determination in S1501 is Yes, the capability information acquisition unit 211 executes the process shown in S1502. In S1502, the capability information acquisition unit 211 checks whether the marker-types attribute value in the response to the Get-Printer-Attributes operation of the printing device 102 is ink-cartridge. If the result of the determination in S1502 is Yes, the capability information acquisition unit 211 determines in S1503 that the device type of the printing device 102 is a locally connected inkjet printer. In S1503, the capability information acquisition unit 211 writes information indicating that the printing device 102 is an inkjet printer to the shared information 210.
[0077] If the result of the determination in S1501 is No, the capability information acquisition unit 211 determines in S1505 whether the response to the IPP Get-Printer-Attributes operation of the printing device 102 includes a printer-supply attribute. If the result of the determination in S1505 is Yes, the capability information acquisition unit 211 executes the process described in S1506. In S1506, the capability information acquisition unit 211 determines whether the printer-supply attribute value in the response to the Get-Printer-Attributes operation includes the character string "type=toner". If the result of the determination in S1506 is Yes, the capability information acquisition unit 211 determines in S1507 that the device type of the printing device 102 is a laser beam printer. In S1507, the capability information acquisition unit 211 writes information indicating that the printing device 102 is a laser beam printer to the shared information 210.
[0078] If the print function extension unit 207 determines No in S1502, S1505, and S1506, it determines that the device type of the printing device 102 is "other." The print function extension unit 207 writes information into the shared information 210 indicating that the device type is "other."
[0079] 15, the capability information acquisition unit 211 determines the device type based on information obtained in response to the IPP Get-Printer-Attributes operation of the printing device 102, but the capability information acquisition unit 211 may also determine the device type based on other information. For example, the capability information acquisition unit 211 may determine the device type based on information obtained from the printing device 102 by another method. The capability information acquisition unit 211 may also determine the device type based on information such as the name of the printing device 102 obtained from the printing device 102 and table information held by the extended application 204. The table information may also be configured to be acquired from a server (not shown).
[0080] By performing the process shown in FIG.
[0081] If the result of the determination in S701 is Yes, the capability information acquisition unit 211 proceeds to S702 and determines whether the device type of the printing device 102 is a laser beam printer. In S702, the capability information acquisition unit 211 determines whether the device type of the printing device 102 is a laser beam printer based on the information stored in the shared information 210. If the device type is not stored in the shared information 210, the capability information acquisition unit 211 executes the process shown in FIG. 15. Then, the capability information acquisition unit 211 executes the determination in S702 based on the result of FIG. 15. If the result of the determination in S702 is Yes, the capability information acquisition unit 211 executes the process of S703. If the result of the determination in S702 is No, the capability information acquisition unit 211 executes the process of S706.
[0082] After the process of S705 is completed, or if the process of S702 is judged as No, the capability information acquisition unit 211 executes the process of S706. In S706, the capability information acquisition unit 211 judges whether the device type of the printing device 102 from which the capability information is to be acquired is a laser beam printer. Specifically, the capability information acquisition unit 211 judges whether the device type of the printing device 102 is a laser beam printer by referring to the information stored in the shared information 210. If the process of S706 is judged as No, the capability information acquisition unit 211 executes the process of S707. If the process of S706 is judged as Yes, the capability information acquisition unit 211 ends the capability information acquisition process.
[0083] In S707, the capability information acquisition unit 211 determines whether combination list information associated with the print queue corresponding to the printing device 102 for which capability information is to be acquired is stored in the shared information 210 of the extension application 204. If the determination in S707 is No, the capability information acquisition unit 211 executes processing in S708. If the determination in S707 is Yes, the capability information acquisition unit 211 ends the capability information acquisition processing.
[0084] In S708, the capability information acquisition unit 211 performs a process of acquiring combination list information from the printing device 102. In the following S709, the capability information acquisition unit 211 judges whether the combination list information acquisition process in S708 was successful. Specifically, it judges whether information has been loaded into an area for the combination list information acquired on the RAM 113, and whether the information corresponding to the combination list information is empty. In S709, the capability information acquisition unit 211 judges that the combination list information acquisition process in S708 has failed in the following cases. If the capability information acquisition unit 211 does not receive a command indicating that the acquisition of the combination list information is complete within a predetermined time after transmitting a request to acquire the combination list information, the capability information acquisition unit 211 judges that the combination list information acquisition process has failed. Also, if no information is stored in the area of the RAM 113 reserved by the capability information acquisition unit 211 for writing the combination list information, the capability information acquisition unit judges that the combination list information acquisition process has failed. Furthermore, if the combination list information acquired by the capability information acquisition unit 211 is missing, the capability information acquisition unit 211 determines that the process of acquiring the combination list information has failed.
[0085] If the result of S709 is No, the capability information acquisition unit 211 executes the process of S711.
[0086] If the determination in S709 is Yes, the capability information acquisition unit 211 proceeds to processing in S710. In S710, the capability information acquisition unit 211 generates prohibition information based on the combination list information acquired from the printing device 102. The combination list information describes all combinations of print settings that can be printed by the printing device 102, so by verifying all combinations, it is possible to derive combinations of print settings that cannot be printed by the printing device 102. In this way, the capability information acquisition unit 211 derives combination information between two items of print settings that cannot be printed by the printing device 102, and generates prohibition information.
[0087] Next, the capability information acquisition unit 211 stores the generated prohibition information in the shared information 210. When the processing in S710 ends, the capability information acquisition unit 211 ends the capability information acquisition processing. By executing the processing in S710, the prohibition information is written in the shared information 210.
[0088] If the result of S709 is No, the capability information acquisition unit 211 executes the process of S711. In S711, the capability information acquisition unit 211 stores the model-wide prohibition information previously stored in the shared information 210 of the extended application 204 in the shared information 210 as prohibition information associated with the printing device 102. The model-wide prohibition information previously stored in the shared information 210 of the extended application 204 represents prohibition information that is applied commonly to all models. The previously stored prohibition information is used as substitute information when the capability information acquisition unit 211 fails to acquire combination list information from the printing device 102. The model-wide prohibition information is specifically information that prohibits the combination of media other than plain paper and double-sided printing (short edge binding / long edge binding) and the combination of borderless printing and double-sided printing (short edge binding / long edge binding). FIG. 11 shows an example of information stored in the shared information 210 as storage information when the capability information acquisition unit 211 can acquire basic capability information from the printing device 102 but fails to acquire combination list information. When the capability information acquisition unit 211 fails to acquire combination list information from the printing device 102, model-specific prohibition information such as prohibition 1 to prohibition 12 in information 1101 is stored in the shared information 210 as prohibition information of the printing device 102. In the first embodiment, the examples of model-specific prohibition information are merely examples. In reality, combination information other than the combination of media other than plain paper and double-sided printing (short edge binding / long edge binding) and the combination of borderless printing and double-sided printing (short edge binding / long edge binding) may be used as model-specific prohibition information. When the process of S711 ends, the capability information acquisition unit 211 ends the capability information acquisition process.
[0089] 10 shows two examples of prohibition rules 1 and 2, but the number of prohibitions based on the combination list information acquired from the printing device 102 may be greater than the above. Also, the number of prohibitions generated based on the combination list information may be greater or less than the number of prohibitions common to all models.
[0090] When the print function extension unit 207 and the print setting screen extension unit 205 request acquisition of capability information from the printing device 102, the capability information acquisition unit 211 executes processing to acquire the capability information and store the acquired capability information in the shared information 210.
[0091] 7 ends, the print function extension unit 207 executes an update process for the PDC 203. The print function extension unit 207 updates the PDC 203 based on the shared information 210 stored in S705, S710, and S711. Here, the PDC 203 is updated for all setting items and setting values stored in the shared information 210. In this way, it becomes possible to add to the PDC 203 setting items and setting values that were not written before the extension application 204 was run.
[0092] One of the features of the processing of the capability information acquisition unit 211 in the first embodiment is that, when the basic capability information can be acquired from the printing device 102 whose device type is an inkjet printer, the basic capability information is not acquired from the printing device 102 thereafter. The basic capability information that can be acquired from the printing device 102 whose device type is an inkjet printer is unlikely to be changed due to a change in the main body settings of the printing device 102 or an update of the main body firmware version. Therefore, once acquisition is completed, there are many cases where it is not necessary to acquire it again. Therefore, when the basic capability information can be acquired from the printing device 102 whose device type is an inkjet printer, the basic capability information is not acquired from the printing device 102 thereafter. In subsequent printing, the print function extension unit 207 and the print setting screen extension unit 205 display the print setting screen using the PDC 203. In addition, the print setting screen extension unit 205 uses the prohibition information stored in the shared information 210 to determine whether the print settings are set in accordance with the prohibition.
[0093] Furthermore, the basic capability information is essential for the PDC editing process in the print function extension unit 207. Therefore, if the basic capability information cannot be obtained from the printing device 102, it is desirable to try to obtain the capability information again at a time when it is possible to do so.
[0094] Thus, according to the first embodiment, when basic capability information can be acquired from the printing device 102 whose device type is an inkjet printer, the basic capability information is not acquired from the printing device 102 thereafter. This makes it possible to reduce the communication load between the host computer 101 and the printing device 102. It also has the effect of shortening the time required to acquire information from the printing device 102 and speeding up the processing of the print function extension unit 207 and the print setting screen extension unit 205. Furthermore, even if acquisition of basic capability information has failed, it is possible to attempt to acquire the information again if it is necessary to acquire the information again.
[0095] On the other hand, for the printing device 102 whose device type is a laser beam printer, even if the capability information acquired by the capability information acquisition unit 211 has been stored in the storage area, the capability information is acquired again. It is assumed that the basic capability information of the printing device 102 whose device type is a laser beam printer will change due to changes in the configuration information (e.g., a finisher, etc.). For this reason, it is considered desirable to acquire the basic capability information from the printing device 102 each time. In addition, the model-specific combination list information held by the printing device 102 whose device type is a laser beam printer is even more enormous than that of the printing device 102 whose device type is an inkjet printer. Furthermore, when performing prohibition processing for a laser beam printer, it is necessary to perform prohibition processing for multiple options, and the method is also complicated. For this reason, the communication load can be reduced by applying prohibition information common to the model without acquiring combination list information from the printing device 102 whose device type is a laser beam printer.
[0096] In this way, according to the first embodiment, by switching the process for acquiring basic capability information depending on the device type, it is possible to flexibly respond to the characteristics of the device type.
[0097] Also, one of the features of the first embodiment is that once the combination list information has been acquired, the acquisition process is not performed again regardless of whether the acquisition process is successful or unsuccessful. This is because the data size of the combination list information is often larger than the data size of the basic capability information. In an environment in which the capability information acquisition unit 211 has failed to acquire the combination list information from the printing device 102 once, even if the information acquisition is attempted again, there is a possibility that the information acquisition process cannot be completed within the time limit set by the OS. Since the combination list information acquisition process has a large data size, it is expected that the processing load will also be large. Therefore, in the first embodiment, if the capability information acquisition unit 211 fails to acquire the combination list information from the printing device 102, the model-specific prohibition information is stored in the shared information 210 as substitute information for the prohibition information of the printing device 102. In this way, the capability information acquisition unit 211 is prevented from attempting to acquire the combination list information again. Furthermore, by substituting prohibition information common to all models as prohibition information for the printing device 102, the print setting screen expansion unit 205 can perform minimum prohibition processing even if the capability information acquisition unit 211 is unable to acquire combination list information for the printing device 102. Prohibition processing that applies prohibition information specific to the model generated by the capability information acquisition unit 211 using the combination list information acquired from the printing device 102 can execute prohibition processing suited to the printing device 102 more accurately than prohibition processing that applies prohibition information common to all models.
[0098] If the prohibition information common to all models is not applied, there is a high possibility that the user will make a misprint or that an error will occur in the main body of the printing device 102. For example, according to prohibition 1 of the information 1101, the combination of media: photo paper and double-sided printing is prohibited, and printing with the setting of the above combination is restricted for the printing device 102. Even if the printing device 102 is caused to execute printing with the setting of the above combination without applying the prohibition information common to all models, the printing device 102 does not support double-sided printing with photo paper. Therefore, the printing device 102 changes double-sided printing to single-sided printing, or changes to printing from a paper feed port where a medium capable of double-sided printing is set, and printing is performed on paper that is not intended by the user. Alternatively, it is assumed that an error will occur on the printing device 102, causing printing to stop. Either of these will cause printing or errors that are not intended by the user, so it is desirable for the extended application 204 to restrict printing with a setting of a combination that is not supported by the printing device 102 as much as possible. Even if the capability information acquisition unit 211 cannot acquire the combination list information of the printing device 102, it is preferable that the print setting screen expansion unit 205 performs prohibition processing using prohibition information common to all models.
[0099] As described above, according to the first embodiment, when the basic capability information can be acquired from the printing device 102, the printing device 102 does not thereafter acquire the basic capability information, thereby making it possible to reduce the communication load between the host computer 101 and the printing device 102. In addition, the time required to acquire information from the printing device 102 can be shortened, and the processing speed of the print function extension unit 207 and the print setting screen extension unit 205 can be increased. Furthermore, if the acquisition of the basic capability information has failed, it is possible to try to acquire the basic capability information again. In addition, by switching the process of acquiring the basic capability information depending on the device type, it is possible to flexibly respond to the characteristics of the device type.
[0100] Furthermore, if the capability information acquisition unit 211 fails to acquire combination list information from the printing device 102, it stores the prohibition information common to all models in the shared information 210 as substitute information for the prohibition information of the printing device 102. This makes it possible to avoid processes that are likely to take time, such as re-acquiring combination list information. Also, if the capability information acquisition unit 211 is unable to acquire combination list information for the printing device 102, it substitutes the prohibition information common to all models for the prohibition information of the printing device 102. This enables the print function extension unit 207 to add a minimum amount of prohibition information to the PDC, and the print setting screen extension unit 205 to perform a minimum amount of prohibition processing.
[0101] <<Embodiment 2>> In the first embodiment, the characteristic processing and the effects when the capability information acquisition unit 211 acquires capability information from the printing device 102 are described. In the second embodiment, a form in which further effects can be obtained by adding an additional configuration to the first embodiment is described. Configurations other than those described below in the second embodiment are the same as those in the first embodiment, and therefore descriptions thereof will be omitted. An element added to the capability information acquisition processing flow of the capability information acquisition unit 211, which is a new configuration in the second embodiment, is described below.
[0102] 12 shows a flow of capability information acquisition processing of the capability information acquisition unit 211 in the second embodiment. New symbols are assigned only to new configurations in the second embodiment, and the other configurations are the same as those in the first embodiment, so the symbols are reused and the description is omitted.
[0103] In the second embodiment, the capability information acquisition unit 211 first acquires the firmware version of the printing device main body from the printing device 102 in S1201 as a capability information acquisition process. Here, the firmware version of the printing device 102 is acquired using IPP Get-Printer-Attributes. Next, in S1202, the capability information acquisition unit 211 compares the firmware version of the printing device 102 stored in the shared information 210 with the firmware version of the printing device 102 newly acquired in S1201. The capability information acquisition unit 211 determines whether the firmware version of the printing device 102 stored in the shared information 210 is older than the newly acquired firmware version of the printing device 102. Note that the determination in S1202 may be such that the capability information acquisition unit 211 only determines whether the acquired firmware version is different from the firmware version stored in the shared information 210. If the firmware version information is not stored in the shared information 210, or if the stored firmware version is older than the acquired firmware version, the capability information obtaining unit 211 determines Yes. Otherwise, the capability information obtaining unit 211 determines No.
[0104] If the result of S1202 is Yes, the capability information acquisition unit 211 executes the process of S703. If the result of S1202 is No, the capability information acquisition unit 211 executes the process of S702. The subsequent processes from S702 to S711 are the same as those in the first embodiment. In the second embodiment, the capability information acquisition unit 211 executes the process of S1203 before terminating the information acquisition process. Specifically, the capability information acquisition unit 211 stores the firmware version of the printing device 102 acquired in S1201 in the shared information 210. In the second embodiment, the firmware version of the printing device 102 is added to DataName of the data structure shown in information 1001 and stored in the shared information 210 as a data structure, thereby making it possible to refer to the latest firmware version of the printing device 102.
[0105] As described above, the second embodiment is characterized in that, compared to the first embodiment, the firmware version of the printing device 102 when the capability information acquisition unit 211 acquires the capability information from the printing device 102 is newly stored. According to the second embodiment, the capability information acquisition unit 211 can detect a firmware update of the printing device 102 and acquire the capability information from the printing device 102 again. This makes it possible to dynamically respond to cases such as when a function is added by a firmware update of the printing device 102 without updating the extension application 204 itself. For example, when the media supported by the printing device 102 is expanded by a firmware update of the printing device 102, it becomes possible to add information of the media newly supported by the printing device 102 to the PDC by performing the capability information acquisition process again.
[0106] <<Embodiment 3>> In the second embodiment, an effect obtained by adding an additional configuration to the process in the first embodiment when the capability information acquisition unit 211 acquires capability information from the printing device 102 was described. In the third embodiment, a form in which an additional configuration is added to the first embodiment in a similar manner to obtain a further effect will be described. Configurations other than those described later in the description of the third embodiment are the same as those in the first embodiment, and therefore description thereof will be omitted. An element added to the capability information acquisition process flow of the capability information acquisition unit 211, which is a new configuration in the third embodiment, will be described.
[0107] 13 shows a flow of capability information acquisition processing of the capability information acquisition unit 211 in the third embodiment. New symbols are assigned only to new configurations in the third embodiment, and the other configurations are the same as those in the first embodiment, so the symbols are reused and the description is omitted.
[0108] In the third embodiment, as the capability information acquisition process of the capability information acquisition unit 211, first, in S1301, the capability information acquisition unit 211 acquires the version information of the extended application 204. Here, the application version of the extended application 204 is acquired from the printing device 102 using the API of the OS. Next, in S1302, the capability information acquisition unit 211 compares the version information of the extended application 204 stored in the shared information 210 with the latest version information of the extended application 204 acquired in S1301. The version of the extended application 204 stored in the shared information 210 is the version information of the extended application 204 when the capability information of the printing device 102 was previously acquired. The capability information acquisition unit 211 determines whether the stored version information of the extended application 204 is older than the acquired version information of the extended application 204. The capability information acquisition unit 211 may determine whether the version information of the extended application 204 stored in the shared information 210 is different from the acquired version information of the extended application 204.
[0109] If the result of S1302 is Yes, the capability information acquisition unit 211 executes the process of S703. If the result of S1302 is No, the capability information acquisition unit 211 executes the process of S702. The subsequent processes from S702 to S711 are the same as those in the first embodiment. In the third embodiment, the capability information acquisition unit 211 executes the process of S1303 before terminating the information acquisition process. Specifically, the capability information acquisition unit 211 stores the version information of the extension application 204 acquired in S1301 in the shared information 210. In the third embodiment, the version information of the extension application 204 is stored in the storage area as a data structure in which the version information of the extension application 204 is added to DataName of the data structure shown in the information 1001. In this way, it is possible to refer to the version information of the extension application 204 at the time when the capability information is acquired from the printing device 102.
[0110] As described above, compared to the first embodiment, the third embodiment is characterized in that the capability information acquisition unit 211 newly references the version information of the extension application 204 when the capability information acquisition unit 211 acquires the capability information from the printing device 102. According to the third embodiment, when the capability information acquisition unit 211 detects an update to the extension application 204 and the extension application 204 is updated, it becomes possible to acquire the capability information again from the printing device 102. As a result, when the function is expanded by updating the extension application 204 itself, it becomes possible to update the capability information without changing the logic of the capability information acquisition process of the information acquisition unit 211.
[0111] <<Embodiment 4>> In the second and third embodiments, the effects obtained by adding an additional configuration to the process when the capability information acquisition unit 211 described in the first embodiment acquires capability information from the printing device 102 have been described. In the fourth embodiment, a form in which further effects can be obtained by similarly adding an additional configuration to the first embodiment will be described. Configurations other than those described later in the description of the fourth embodiment are the same as those of the first embodiment, and therefore description will be omitted. An element added to the capability information acquisition process flow of the capability information acquisition unit 211, which is a new configuration in the fourth embodiment, will be described. The current time may be acquired from the OS of the host computer 101 or from the printing device 102.
[0112] 14 shows a flow of the capability information acquisition process of the capability information acquisition unit 211 in the fourth embodiment. New symbols are assigned only to new configurations in the fourth embodiment, and the other configurations are the same as those in the first embodiment, so the symbols are reused and the description is omitted.
[0113] In the fourth embodiment, as the capability information acquisition process of the capability information acquisition unit 211, first, in S1401, the capability information acquisition unit 211 acquires the current date and time at the time of executing the process of S1401. The capability information acquisition unit 211 acquires the current date and time using the API of the OS.
[0114] Next, the process proceeds to S1402, where the capability information acquisition unit 211 compares the date and time when the capability information of the printing device 102 stored in the shared information 210 was acquired with the current date and time newly acquired in S1401. Then, the capability information acquisition unit 211 determines whether a certain period has passed since the date and time when the stored capability information of the printing device 102 was acquired. The certain period may be, for example, one month or one year, and may be arbitrarily set by the developer of the extension application 204 or may be arbitrarily set by the user. If the result of the determination in S1402 is Yes, the capability information acquisition unit 211 executes the process described in S703. If the result of the determination in S1402 is No, the capability information acquisition unit 211 executes the process described in S702. The subsequent processes from S702 to S711 are the same as those in the first embodiment. In the fourth embodiment, the capability information acquisition unit 211 executes the process of S1403 before terminating the information acquisition process. Specifically, the capability information acquisition unit 211 stores the current date and time acquired in S1401 in the shared information 210. In the fourth embodiment, the capability information acquisition date and time information is added to DataName of the data structure shown in the information 1001 and stored in the shared information 210 as a data structure, thereby making it possible to refer to the date and time information at the time of acquiring the capability information from the printing device 102.
[0115] As described above, compared to the first embodiment, the fourth embodiment is characterized in that the capability information acquisition unit 211 newly references the current date and time information when the capability information acquisition unit 211 acquired the capability information from the printing device 102. According to the fourth embodiment, it becomes possible to detect that a certain period of time has passed since the capability information acquisition unit 211 last acquired capability information from the printing device 102, and to acquire capability information from the printing device 102 again. This makes it possible to reflect capability information updated by a firmware update of the printing device 102 performed within a predetermined period of time in the PDC and shared information 210.
[0116] <<Other embodiments>> The first to fourth embodiments have been described taking as an example the processing when the client computer 101 acquires capability information from the printing device 102. It is also possible to register the capability information of the printing device 102 in a cloud print service, and the client computer 101 transmits print data to the printing device 102 via the cloud print service. At this time, the client computer 101 acquires the capability information from the cloud print service. When the client computer 101 acquires the capability information from the cloud print service, it may perform the same processing as in the first to fourth embodiments. In this case, the processing shown in FIG. 7 and FIGS. 12 to 15 is executed based on the capability information acquired by the capability information acquisition unit 211 from the cloud print service.
[0117] The present invention can also be realized by executing the following process. That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads and executes the program code. In this case, the computer program and the storage medium on which the computer program is stored constitute the present invention.
[0118] Examples of storage media for supplying the program code include flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs. [Explanation of symbols]
[0119] 101 Host Computer 102 Printing device 202 Printing data generation software 203 PDC 204 Extended Applications 205 Print setting screen expansion unit 207 Printing function expansion unit 211 Ability Information Acquisition Unit
Claims
1. An information processing device, If the device type of the printing device connected to the information processing device is of a predetermined type, basic capability information is obtained; otherwise, information on a list of possible setting value combinations for the printing device is obtained. When it is not of the specified type, If the information in the aforementioned list is successfully retrieved, the prohibited information based on the information in the aforementioned list is stored; if the information in the aforementioned list is not successfully retrieved, common prohibited information that is not dependent on the model of the printing device is stored. An application program characterized in that it does not acquire the information in the list when the device type is a predetermined type.
2. The application program according to claim 1, characterized in that the predetermined type is a laser beam printer.
3. The application program according to claim 1, characterized in that the basic capability information includes information such as paper size, paper type, and paper feed slot that can be set in the printing device during printing.
4. The application program according to claim 1, characterized in that the information of the list of settable combinations of setting values is information representing combinations of paper size, margin, paper feed slot and paper type that can be printed on in the printing device.
5. The application program according to Claim 1, characterized in that the common prohibition information includes information prohibiting the combination of paper types other than plain paper and double-sided printing, and the combination of borderless printing and double-sided printing in the printing device.
6. The application program according to claim 1, characterized in that the determination of whether the device type is a predetermined type is performed based on attribute information indicating the type of recording material used for printing obtained from the printing apparatus.
7. The application program according to Claim 1, characterized in that the information processing device obtains firmware version information from the printing device, and when it determines that the firmware version information is different from the firmware version information obtained when the basic capability information was previously acquired, it causes the device to re-execute the acquisition of basic capability information and the storage of the prohibited information or the common prohibited information as described in Claim 1.
8. The application program according to Claim 1, characterized in that the information processing device acquires version information of the application program, and when it determines that the version information is different from the version information of the application program at the time the basic capability information was acquired previously, it causes the device to re-execute the acquisition of basic capability information and the storage of the prohibited information or the common prohibited information as described in Claim 1.
9. The application program according to Claim 1, characterized in that the information processing device stores the date and time on which the basic ability information was acquired, and when it determines, based on a comparison with the current date and time, that a predetermined period of time or more has elapsed since the acquisition of the basic ability information, it causes the acquisition of the basic ability information and the storage of the prohibited information or the common prohibited information described in Claim 1 to be executed again.
10. The application program according to claim 1, characterized in that the acquisition of the basic capability information or the list information is performed at a timing instructed by the operating system of the information processing device.
11. A control method for an information processing device, If the device type of the printing device connected to the information processing device is of a predetermined type, basic capability information is obtained; otherwise, information on a list of possible setting value combinations for the printing device is obtained. When it is not of the specified type, If the information in the aforementioned list is successfully retrieved, the prohibited information based on the information in the aforementioned list is stored; if the information in the aforementioned list is not successfully retrieved, common prohibited information that is not dependent on the model of the printing device is stored. A control method characterized in that, when the device type is a predetermined type, the information in the list is not acquired.
12. If the device type of the printing device connected to the information processing device is of a predetermined type, basic capability information is acquired; if it is not of the predetermined type, information on a list of combinations of setting values that can be set in the printing device is acquired. When it is not of the specified type, If the information in the aforementioned list is successfully retrieved, the prohibited information based on the information in the aforementioned list is stored; if the information in the aforementioned list is not successfully retrieved, common prohibited information that is not dependent on the model of the printing device is stored. An information processing device characterized in that it does not acquire the information in the list when the device type is a predetermined type.