Printing application, information processing apparatus and control method of information processing apparatus
The printing application and extension application enhance the functionality of common printer drivers by executing functions that they cannot perform, enabling broader printing capabilities on devices from multiple manufacturers.
Patent Information
- Application Number
- JP2024014879
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-02
- Publication Date
- 2025-08-15
AI Technical Summary
Existing printer drivers cannot execute all functions available on printing devices from multiple manufacturers, limiting the capabilities of information processing devices when printing.
A printing application and extension application that work together with a common printer driver to extend its functionality, allowing the execution of functions that the printer driver cannot perform, by acquiring and instructing the printing device to execute these functions using the extension application.
Enables the execution of functions on printing devices that were previously inaccessible through common printer drivers, enhancing the capabilities of information processing devices to handle a wider range of printing tasks.
Smart Images

Figure 2025119831000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a print application, an information processing apparatus, and a control method for an information processing apparatus. [Background technology]
[0002] A host computer (information processing device) capable of processing information exchanged between the printing device and the printing device is communicatively connected to the printing device. The control software for controlling the printing device is, for example, a printer driver installed on the host computer by the printing device. This printer driver allows the host computer to issue print instructions to the printing device. An operating system (hereinafter referred to as "OS"), which is the basic software, is pre-installed on the host computer. The printer driver is configured in accordance with specifications defined by the OS and can be called and operated by the OS. Furthermore, such printer drivers differ depending on the vendor supplying the printing device; in other words, they are model-specific printer drivers suited to each printing device.
[0003] In recent years, Windows® has provided standard class drivers (hereinafter sometimes referred to as "universal printer drivers") that can be used across printing devices supplied by multiple different vendors. Such universal printer drivers are pre-installed in the OS. Any printing device can be connected to a host computer with an OS that incorporates the universal printer driver, allowing the use of the universal printer driver. This eliminates the need to install model-specific printer drivers. Furthermore, the universal printer driver can be used by specifying the printing functions of the printing device according to the Print Device Capabilities (hereinafter referred to as "PDC") generated based on information obtained from the printing device. This allows the printing functions to be specified for each printing device using a single universal printer driver.
[0004] Patent Document 1 discloses an information processing device that constitutes a print control server. The information processing device has a print control application built on a first architecture (e.g., 32-bit) and an operating system on a second architecture (e.g., a 64-bit OS) that can execute a program on the first architecture. The information processing device also has a storage means for storing print setting information (Devmode information) used for printing. In addition, in the information processing device, the print control application can request a change in print settings using the Devmode information. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Publication No. 2018-101303 Summary of the Invention [Problem to be solved by the invention]
[0006] However, although a printing device has a number of executable functions, these functions may include functions that the information processing device described in Patent Document 1 cannot instruct the printing device to execute.
[0007] The present invention has been made in consideration of the above-mentioned problems. It is an object of the present invention to provide a print application that can execute functions executable by a printing device, including functions that cannot be executed by a printing device using a common printer driver that can be used when printing on printing devices from multiple manufacturers. Similarly, it is an object of the present invention to provide an information processing device and a control method for an information processing device that can execute functions executable by a printing device, including functions that cannot be executed by a common printer driver that can be used when printing on printing devices from multiple manufacturers. [Means for solving the problem]
[0008] In order to achieve the above object, the printing application of the present invention is a printing application capable of executing print instructions, and is used together with a common printer driver that can be used when printing on printing devices from multiple manufacturers, an extension application that can extend the functions of the common printer driver, and an operating system that controls the common printer driver, the extension application, and the printing application, and is characterized in that the extension application has function information regarding printer driver non-executable functions that cannot be executed by the printing device using the common printer driver, among the functions that can be executed by the printing device, and the printing application is equipped with an acquisition means for acquiring the function information, and an instruction means for instructing the printing device to execute the printer driver non-executable functions using the extension application based on the function information. [Effects of the Invention]
[0009] According to the present invention, among the functions that can be executed by a printing device, functions that cannot be executed by a printing device using a common printer driver that can be used when printing on printing devices from multiple manufacturers can also be executed. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 2 is a block diagram illustrating a hardware configuration of the printing system. [Figure 2] FIG. 2 is a block diagram illustrating a software configuration of the printing system. [Figure 3] FIG. 10 is a diagram illustrating an example of print capability information generated by print data generation software. [Figure 4] FIG. 10 is a diagram illustrating an example of a print setting screen displayed by a print setting screen expansion unit. [Figure 5] FIG. 10 is a sequence diagram showing a process (printer driver non-executable function execution process) executed among a drawing application, an OS, and an extension application. [Figure 6]6 is a flowchart showing a process executed by a drawing application in the sequence diagram shown in FIG. 5. [Figure 7] 6 is a flowchart showing a process (a process for transmitting a list of printer driver non-executable functions) executed by an external function providing unit of an extension application in the sequence diagram shown in FIG. 5. [Figure 8] FIG. 10 is a diagram illustrating an example of a list of functions that are not executed by the printer driver. [Figure 9] 6 is a flowchart showing a process (execution process of a printer driver non-executable function) executed by an external function providing unit of an extension application in the sequence diagram shown in FIG. 5. [Figure 10] 10A to 10C are diagrams illustrating examples of commands executed by a drawing application, an OS, and an extension application, respectively. [Figure 11] 10A and 10B are diagrams illustrating an example of prohibition information stored in an extension application. [Figure 12] FIG. 10 is a diagram illustrating an example of a print setting screen used in a drawing application. [Figure 13] 13 is a diagram showing a state in which a prohibition resolution process has been executed on the print setting screen shown in FIG. 12. FIG. [Figure 14] FIG. 10 is a diagram illustrating an example of a utility screen. [Figure 15] FIG. 10 is a diagram illustrating an example of a display of a maintenance execution result. [Figure 16] FIG. 10 is a diagram illustrating an example of print function information generated by a print function expansion unit. DETAILED DESCRIPTION OF THE INVENTION
[0011] Each embodiment of the present invention will be described in detail below with reference to the drawings. However, the configurations described in each of the following embodiments are merely examples, and the scope of the present invention is not limited to the configurations described in each embodiment. For example, each component constituting the present invention can be replaced with any configuration that can perform the same function. Also, any component may be added. Furthermore, any two or more configurations (features) of each embodiment can be combined.
[0012] <Printing system hardware configuration> Fig. 1 is a block diagram showing the hardware configuration of a printing system. As shown in Fig. 1, the printing system 1000 includes a host computer 101, a printing device 102, a keyboard 118, a pointing device 117, and a display unit 119, which are connected to each other so that they can communicate with each other. The host computer 101 is an information processing device and includes an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device (recording medium) 114, an output interface 115, an input / output interface 116, and a NETIF 120. Note that the host computer 101 may be, for example, a desktop personal computer, but is not limited thereto, and may also be, for example, a notebook personal computer, a tablet terminal, a smartphone, or the like.
[0013] The CPU 111 executes programs stored in the ROM 112 and the external storage device 114. The programs include programs for causing the CPU 111 to execute each unit and each means (control method of the information processing device) of the host computer 101. The ROM 112 stores an initialization program. The external storage device 114 stores application programs, an operating system (OS) 213, print data generation software 202, and various other data. In this embodiment, the host computer 101 is equipped with Microsoft Windows® 11 as the OS 213. The RAM 113 is used as a work memory when executing various programs stored in the external storage device 114, enabling the various programs to run within the host computer 101. A pointing device 117 and a keyboard 118 are connected to the input interface 110 as input devices. A display unit 119 is connected to the output interface 115 as a display device. The display unit 119 displays, for example, a print setting screen 400A (see FIG. 4) for setting printing conditions, etc. The NETIF 120 is a network interface that controls data transfer between external devices via a network. The printer 102 is connected to the input / output interface 116. This allows the host computer 101 to communicate with printers 102 from multiple manufacturers, regardless of the manufacturer of the printer 102, i.e., it is possible to process information between the host computer 101 and printers 102 from multiple manufacturers.
[0014] The printing device 102 may be, for example, a multi-function peripheral (MFP) having multiple functions such as copying, printing, and faxing, but is not limited to this. In addition, the printing performed by the printing device 102 is electrophotographic printing in this embodiment, but is not limited to this and can also be inkjet printing, for example. In addition, in this embodiment, the host computer 101 and the printing device 102 are configured as separate devices, but are not limited to this. For example, the host computer 101 and the printing device 102 may be configured as an integrated device.
[0015] <Software-based printing system configuration> FIG. 2 is a block diagram showing the software configuration of the printing system. FIG. 2(a) shows a general configuration when the extension application 204 is not associated with the print data generation software 202 and the printing device 102. FIG. 2(b) shows a configuration when the extension application 204 is associated with the print data generation software 202 and the printing device 102. The print data generation software 202 is a common printer driver (program) that can be used when printing on printing devices 102 from multiple manufacturers, i.e., a standard class driver, and is pre-installed in the OS 213. This print data generation software 202 is a program that operates based on the Internet Printing Protocol (IPP), a standard printing protocol. The extension application 204 is an extension program that can extend the functions of the print data generation software 202. The extension application 204 is stored, for example, in the external storage device 114 together with the OS 213 (print data generation software 202). As a result, the host computer 101 has the print data generation software 202 and the extension application 204.
[0016] First, referring to FIG. 2(a), a case where the extended application 204 is not associated with the print data generation software 202 and the printing device 102 will be described. The drawing application 201 is a print application (software) that creates content (print data) to be printed by the printing device 102. After creating the content, the drawing application 201 can instruct the printing device 102 to print the content. The drawing application 201, along with the print data generation software 202 and the extended application 204, is controlled by the OS 213. The drawing application 201 is not particularly limited and may be, for example, a word processing application or a spreadsheet application. The drawing application 201 issues a print instruction to the OS 213 upon receiving a print request from a user via, for example, the keyboard 118. 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 (PT)." Furthermore, in order to output print setting information, the drawing application 201 can display a print setting screen provided by any of the print data generation software 202, the OS 213, or the drawing application 201 on the display unit 119. The print setting screen includes setting items indicating configurable print functions and control items indicating their setting values according to capability information acquired from the print data generation software 202, i.e., information that can be set as print settings. The capability information is also called Print Capabilities (hereinafter sometimes referred to as "PC").
[0017] The print data generation software 202 determines the PC based on the print capability information 203. The print capability information 203 is data indicating all configurable print functions, their setting values, and the exclusive relationships between the setting values. The print capability information 203 is also called PDC (Print Device Capabilities). The print capability information 203 is included in the configuration file of the print data generation software 202 and is dynamically generated by the print data generation software 202. Specifically, the print data generation software 202 acquires attribute data of the printing device 102 from the printing device 102. The print data generation software 202 generates the print capability information 203 based on the attribute information in this attribute data. The "printing device 102 attribute data" is a response obtained by issuing an IPP "Get-Printer-Attributes" operation to the printing device 120. The response includes features that can be specified by the printing device 102, i.e., attribute information (Features) indicating the capabilities of the printing device 102, and setting values (Options) related to the attribute information. The response is also stored in the RAM 113.
[0018] With this configuration, the print data generation software 202 can provide the user with print functions available on the printing device 102 depending on the printing device 102 connected to the print data generation software 202. This makes it possible to specify print functions available on the printing device, regardless of the printing device 102 connected to the print data generation software 202, even when a printing device with different functions or a printing device developed by a different printer manufacturer is connected. As will be described later, the print data generation software 202 can be associated with an extension application 204. This makes it possible to execute functions that the printing device 102 can execute but that the print data generation software 202 cannot execute.
[0019] The OS 213 generates intermediate data (sometimes referred to as "input data") based on the print instruction output from the drawing application 201 and sends it to the print data generation software 202. The data output by the drawing application 201 for printing is not particularly limited, and is preferably, for example, data in XML Paper Specification format (XPS format). The data output by the drawing application 201 for printing may also be data in Graphic Device Interface format (GDI format). When an IPP Class Driver is used as the print data generation software 202, if the data output by the drawing application 201 is GDI format data, the OS 213 converts the GDI format data into XPS format data. The OS 213 then sends this converted XPS format data to the print data generation software 202 as intermediate data. If the data output by the drawing application 201 is XPS format data, the OS 213 also sends the XPS format data to the print data generation software 202 as intermediate data. The intermediate data includes drawing data, which is information such as characters and figures to be formed on the print medium, and print setting information set by the user.
[0020] The print data generation software 202 converts the intermediate data into print data (image data) that can be processed by the printing device 102, i.e., printable, and sends it to the printing device 102. Here, "print data" in this embodiment refers to Page Description Language (PDL) data conforming to IPP. PDL data is, for example, data in PDF (Portable Document Format) or PWG-Raster format. Note that the print data includes drawing data, which is information such as characters and figures to be formed on the print medium, and print setting attribute information that is generated based on print setting information set by the user and specifies the print settings. The print setting attribute information includes attribute information that indicates functions that can be specified by the printing device 102, i.e., the capabilities of the printing device 102, and setting values related to the attribute information.
[0021] The printing device 102 prints on a print medium based on the print data sent from the print data generation software 202. At this time, the printing device 102 performs operations in accordance with the print setting attribute information included in the print data, thereby forming the drawing data included in the print data on the print medium. The print setting attribute information includes, for example, print quality such as image quality priority or speed priority, attribute information for specifying double-sided printing or single-sided printing, and setting values for the attribute information. For example, if the print setting attribute information includes attribute information specifying double-sided printing, the printing device 102 can perform double-sided printing.
[0022] Next, referring to FIG. 2(b), a case where the extension application 204 is associated with the print data generation software 202 and the printing device 102 will be described. As shown in FIG. 2(b), unlike FIG. 2(a), an extension application 204 is added. That is, the host computer 101 has a drawing application 201, print data generation software 202, and print function information 203, and also has an extension application 204. The extension application 204 is software for extending the functions of the print data generation software 202. Note that the extension application 204 is not pre-installed (not bundled) with the OS 213. Therefore, the extension application 204 is downloaded from a server (not shown) via the Internet by a user operating the host computer 101, and installed in the host computer 101. Alternatively, when the printing device 102 is connected to the host computer 101, the extension application 204 may be automatically installed in the host computer 101 based on this connection. Specifically, when the printing device 102 is connected to the host computer 101, the OS 213 acquires device identification information (Hardware ID) from the printing device 102. The OS 213 may download and install the extended application 204 corresponding to this device identification information from a server via the Internet. As a result, the host computer 101 stores the print data generation software 202 and the extended application 204 as separate control programs. Note that the print data generation software 202 and the extended application 204 may be updated and upgraded. In this case, the update process for the print data generation software 202 and the update process for the extended application 204 may be performed at the same time or at different times. Furthermore, the trigger for the host computer 101 to acquire the print data generation software 202 and the trigger for the host computer 101 to acquire the extended application 204 may be the same trigger or different triggers.Furthermore, when the extension application 204 is installed, the OS 213 associates the extension application 204 with the print data generation software 202 and the printing device 102. As shown in FIG. 2(b), the extension application 204 is capable of exchanging information (sending and receiving information) with the drawing application 201, the print data generation software 202, and the printing device 102. That is, the extension application 204 is associated with the drawing application 201, the print data generation software 202, and the printing device 102. The extension application 204 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, a capability information acquisition unit 211, and an external function providing unit 214. The extension application 204 also includes shared information 210 that can be commonly accessed by each of the print setting screen extension unit 205 to the notification unit 209, the capability information acquisition unit 211, and the external function providing unit 214. The shared information 210 is a file saved in the external storage device 114 or information stored in the RAM 113. The extended application 204 can write and read the shared information 210 by using an API (Application Program Interface) provided by the OS 213.
[0023] The extension application 204 may terminate its operation as a whole upon completion of processing of each of the units from the print setting screen expansion unit 205 to the notification unit 209, the capability information acquisition unit 211, and the external function provision unit 214. In this case, the OS 213 launches the extension application 204 each time it receives a processing execution request from each unit. For example, when processing of the print setting screen expansion unit 205 is completed, the OS 213 terminates operation of the extension application 204 as a whole, but may keep the extension application 204 running even after processing of the skip control unit 206 is completed. Furthermore, the extension application 204 may cancel processing of each of the units from the print setting screen expansion unit 205 to the notification unit 209, the capability information acquisition unit 211, and the external function provision unit 214 during that processing. In this case, the OS 213 deletes the job being processed in the print queue.
[0024] As described above, the drawing application 201 issues a print instruction to the OS 213 upon receiving a print request from the user. The drawing application 201 can also display a print setting screen. In the configuration shown in FIG. 2(b), the drawing application 201 can display a print setting screen provided by the print setting screen extension unit 205, or can display a print setting screen independently of the print setting screen extension unit 205. This screen display can be switched by a user operation.
[0025] When the drawing application 201 receives a print request from a user and issues a print instruction, the OS 213 activates the skip control unit 206. The skip control unit 206 controls whether or not to skip the print data generation process by the print data generation software 202. After the skip control process by the skip control unit 206, the OS 213 generates intermediate print data based on the print instruction output from the drawing application 201. The intermediate print data is sent to the print data generation software 202. For example, if the skip control unit 206 does not perform skip control, the intermediate print data is processed by the print data generation software 202 into print data that can be interpreted by the printing device 102 and sent to the print data editing unit 208. On the other hand, if the skip control unit 206 performs skip control, the intermediate print data is sent to the print data editing unit 208 without being processed by the print data generation software 202. This makes it possible for the intermediate print data to be processed by the print data editing unit 208.
[0026] The print data editing unit 208 edits the intermediate print data sent from the print data generation software 202 or the print data 212 processed by the print data generation software 202. Here, layout printing is used as an example of the editing content. Based on the print setting information for layout printing received from the OS 213, the print data editing unit 208 edits the intermediate print data or the print data 212 so that an image in which multiple pages of images are laid out on one side of a single sheet of paper is output. The print data editing unit 208 is also capable of displaying a UI screen on the display unit 119. This allows the print data editing unit 208 to display the layout result of the intermediate print data or the print data 212 on the display unit 119 as a preview screen. Note that while the GUI screen displayed on the display unit 119 by the print data editing unit 208 remains open, the print data 212 is not sent to the printing device 102; closing the GUI screen starts the transmission process of the print data 212. The print data 212 is edited by the print data editing unit 208 and then sent to the printing device 102. The printing device 102 prints onto a recording medium based on this print data 212. Note that if the skip control unit 206 skips the print data generation software 202, the print data editing unit 208 may convert the intermediate print data into print data that can be interpreted by the printing device 102. Furthermore, a function provided by the OS may be used to convert the intermediate print data into print data.
[0027] The print function extension unit 207 can edit the print function information 203 (PDC) generated by the print data generation software 202. This allows functions provided by the extension application 204 to be added. It can also add functions that are executable by the printing device 102 but not by the print data generation software 202, and add exclusive relationships between print function setting values. The OS 213 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. The OS 213 may also start the print function extension unit 207 at other times (for example, when the OS 213 is started). Even if printing-related functions are subsequently extended by such activation, the print function extension unit 207 can detect the extended functions and add them to the print function information 203. An example of a later extension of printing-related functions is adding an optional device (for example, a finisher) to the printing device 102.
[0028] The notification unit 209 can notify the user when an error occurs in the printing device 102. For example, if an out-of-paper error occurs in the printing device 102, the print data generation software 202 detects the occurrence of this error. The OS 213 uses a notification function called a toast notification, which is one of the functions of the OS 213, to display a message on the display unit 119 indicating the occurrence of the out-of-paper error, which is the result of detection by the print data generation software 202. When the user operates the toast notification, the notification unit 209 is called by the OS 213, and a user interface screen (UI screen) of the notification unit 209 is displayed. The user interface screen can display, for example, a detailed message regarding the out-of-paper error and instructions on how to refill paper. The configuration of the extension application 204 is not limited to a configuration having all of the functions (units) described above; it is preferable that the extension application 204 have at least one of the functions, and it may also have other functions.
[0029] <Example of print capability information generated by print data generation software> FIG. 3 is a diagram showing an example of print function information generated by the print data generation software. Information 301 shown in FIG. 3 is information in XML format describing the print function information 203 generated by the print data generation software 202. Information 301 includes information 302 to information 306. Information 306 represents a character string defined as a prefix of the name space to which each feature and option described in information 302 and information 304 belongs. A "name space" represents a set or range to which each feature or option belongs. The name space is used by the print data generation software 202, the OS 213, and the extension application 204 to uniquely identify each feature or option when referring to the print function information 203 or the PT / PC. For example, even if features and options are defined with the same name, the name space can be used to indicate whether they are defined by the OS 213 or are uniquely defined by the vendor. Specifically, assume that information 306 is defined as xmlns:psk="http / / schemas.com / printing / printingschemakeywords." In this case, by adding "psk" as a prefix to each feature or option described in information 302 or information 303, it becomes possible to define that the feature or option belongs to the above-mentioned Name Space. If the above-mentioned Name Space is defined in OS213, it becomes possible to express that the feature or option belongs to OS213.
[0030] Information 302 indicates that ISOA4, ISOA5, and ISOB5 can be specified as the Page Media Size (paper size). Here, Page Media Size indicates a feature, and ISOA4 and the like indicate the setting value (option) for that feature, i.e., the options available for that feature. Information 303 indicates that Borderless and None can be set as the Page Borderless (borderless print setting). Information 304 indicates that Plain (plain paper), Photographic (photo paper), and Envelope Plain (envelope paper) can be specified as the Page Media Type (media). Information 305 indicates that Main (main tray), Rear (rear tray), and Disc (CD / DVD tray) can be specified as the Job Input Bin (paper feeding method). The print data generation software 202 and the OS 213 issue an IPP Get-Printer-Attributes operation to the printing device 102. Then, as a response to the operation, print function information 203 is generated. Only known features and options are described in the generated print function information 203. In this way, only standard or general-purpose features and options are described in the print function information 203 from the function information acquired from the printing device 102.
[0031] <Example of the print setting screen displayed by the print setting screen expansion unit> FIG. 4 is a diagram showing an example of a print setting screen displayed by the print setting screen extension unit. In the host computer 101, a PC is generated based on the print function information 203 edited by the print function extension unit 207. Then, a print setting screen 401A shown in FIG. 4(a) is displayed based on this PC. The print setting screen 401A includes controls 402 to 409. Note that the print setting screen 401A is not limited to the screen configuration shown in FIG. 4(a) and may include other controls different from the controls 402 to 409. The print setting screen 401B shown in FIG. 4(b) is a screen displayed when the control 403 is expanded. The print setting screen 401C shown in FIG. 4(c) is a screen displayed when the control 404 is expanded. The control 402 allows the user to select and set the type of paper to be used for printing on the printing device 102. In FIG. 4(a), "plain paper" is selected as an example. In the control 402, in addition to "plain paper", for example, "automatic selection", "photo paper", "envelope paper", etc. can be selected.
[0032] Control 403 allows the user to select and set the paper size used for printing on the printing device 102. In FIG. 4(b), "A4" is selected as an example. In addition to "A4," other options such as "A5" can be selected using control 403. Control 404 allows the user to select the paper feed slot for the paper used for printing on the printing device 102. In FIG. 4(c), "Auto" (automatic selection) is selected as an example. In addition to "Auto," control 404 allows the user to select, for example, "Main Tray," "Rear Feed," or "CD / DVD Feed." Control 405 allows the user to select and set the print orientation on the printing device 102. In FIG. 4(a), the print orientation on the printing device 102 is set to "Portrait" as an example. In control 405, the user can select "Landscape" as well as "Portrait." Control 406 allows the user to enable or disable double-sided printing. In FIG. 4(a), double-sided printing is enabled as an example. Control 407 allows the user to select and set the binding orientation for double-sided printing. In FIG. 4(a), "long edge binding" is set as an example. In control 407, in addition to "long edge binding," for example, "short edge binding" can be set. Control 408 is an OK button, and operating this OK button can reflect the setting conditions in controls 402 to 407. After operating the OK button, print setting screen 401A is closed. Control 409 is a cancel button, and operating this cancel button does not reflect the setting conditions in controls 402 to 407. After operating the cancel button, print setting screen 401A is closed.
[0033] <Processing for executing the printer driver non-execution function> As described above, the extension application 204 is intended to extend the functionality of the print data generation software 202. Therefore, the drawing application 201 cannot directly instruct the extension application 204 to execute its functions, but instead instructs it to execute its functions via the OS 213. The printing device 102 can also execute multiple functions, such as printing, maintenance, and sending printing prohibition information. Examples of "printing" include printing under the conditions set on the print setting screen 401A (see FIG. 4), such as "plain paper," "A4," "automatic," "portrait," "double-sided printing," and "long-edge binding." Examples of "maintenance" include cleaning the print head (see FIG. 8). Other examples of "maintenance" include powerful cleaning of the print head (see "high-power-cleaning") and adjusting the print head reference position (see FIG. 8). "Printing prohibition information" is information about printing conditions that cannot be combined simultaneously in a single printing run. The printing prohibitions are not particularly limited, and examples include combinations of "A5," "portrait," "2-hole left (two punch holes on the left side)," "2-in-1 (2 pages per sheet)," and single-sided printing (see Figure 12).
[0034] Of these functions that the printing device 102 can execute, the print data generation software 202 can cause the printing device 102 to execute printing. In contrast, the print data generation software 202 cannot cause the printing device 102 to execute maintenance or transmit prohibition information for printing. Hereinafter, functions that the print data generation software 202 cannot cause the printing device 102 to execute are referred to as "printer driver non-executable functions." The extension application 204 has function information related to the printer driver non-executable functions among the functions that the printing device 102 can execute. The drawing application 201 acquires the function information (acquisition step) and, based on the function information, can issue an instruction to the extension application 204 to cause the printing device 102 to execute the printer driver non-executable functions (instruction step).
[0035] FIG. 5 is a sequence diagram showing a process (printer driver non-executable function execution process) executed between the drawing application, the OS, and the extension application. Note that a portion of the process executed by the drawing application 201, a portion of the process executed by the OS 213, and a portion of the process executed by the extension application 204 may be executed synchronously (overlapped). In this case, the processes may be executed synchronously, but this is not a limitation and they may also be executed asynchronously (sequentially). As shown in FIG. 5, in step S501, the drawing application 201 instructs the OS 213 to send a list of printer driver non-executable functions as function information to the extension application 204. In this way, the drawing application 201 functions as an instruction means for instructing the OS 213 to send the list of printer driver non-executable functions prior to acquiring the list of printer driver non-executable functions.
[0036] In step S502, the OS 213 instructs the extension application 204 to send a list of functions that the printer driver will not execute, in accordance with the instruction to send a list of functions that the printer driver will not execute in step S501.
[0037] In step S503, the extension application 204 transmits a list of functions that the printer driver will not execute in accordance with the instruction to transmit a list of functions that the printer driver will not execute in step S502. The destination of this transmission may be the OS 213 or the drawing application 201. If the destination is the OS 213, the drawing application 201 can obtain the list of functions that the printer driver will not execute via the OS 213. If the destination is the drawing application 201, the drawing application 201 can obtain the list of functions that the printer driver will not execute directly. In this way, the drawing application 201 functions as an acquisition unit that acquires a list of functions that the printer driver will not execute.
[0038] In step S504, the drawing application 201 determines, from the list of printer driver non-executable functions, a function (printer driver non-executable function) that the drawing application 201 wants the printing device 102 to execute this time. For example, if the list of printer driver non-executable functions includes performing maintenance and transmitting prohibition information for printing, the drawing application 201 can determine at least one of these functions.
[0039] In step S505, the drawing application 201 instructs the OS 213 to cause the printing device 102 to execute the printer driver non-execution function determined in step S504 using the extension application 204. In this way, the drawing application 201 functions as an instruction unit that instructs the extension application 204 to execute the printer driver non-execution function in the printing device 102.
[0040] In step S506, the OS 213 instructs the extension application 204 to cause the printing device 102 to execute the printer driver non-executable function in accordance with the instruction to execute the printer driver non-executable function in step S505.
[0041] In step S507, the extension application 204 causes the printing device 102 to execute the printer driver non-execution function in accordance with the instruction to execute the printer driver non-execution function in step S506. Note that a time limit may be set for the execution of the printer driver non-execution function in the printing device 102. For example, if it is determined that the execution of the printer driver non-execution function in the printing device 102 has taken more than a predetermined time (e.g., 5 seconds), the drawing application 201 or the OS 213 may instruct the printing device 102 to stop the execution.
[0042] In step S508, the extension application 204 outputs and transmits the execution result of the printer driver non-execution function executed by the printing device 102 in step S507. The destination of this transmission may be the OS 213 or the drawing application 201, as in step S503. If the destination is the OS 213, the drawing application 201 can obtain the execution result from the extension application 204 via the OS 213. If the destination is the drawing application 201, the drawing application 201 can obtain the execution result directly from the extension application 204. In this way, the drawing application 201 functions as an acquisition unit that obtains the execution result from the extension application 204. Note that the execution result obtained from the extension application 204 is preferably the most recent execution result. To obtain the most recent execution result, for example, if the drawing application 201 has already obtained execution results older than the most recent execution result multiple times, the older execution results may be deleted from the extension application 204 each time the drawing application 201 completes each acquisition. As a result, the latest execution result is stored in the extension application 204, and the drawing application 201 can thereby obtain the latest execution result.
[0043] As described above, the drawing application 201 can cause the printing device 102 to execute, among the functions executable by the printing device 102, functions that the print data generation software 202 cannot cause the printing device 102 to execute, including printer driver non-executable functions. As a result, the drawing application 201 can cause the printing device 102 to execute, via the extension application 204, functions that the printing device 102 can execute but that the print data generation software 202 cannot instruct the printing device 102 to execute. Specifically, if the functions executable by the printing device 102 include printing, maintenance, and sending prohibition information for printing, the instruction to print can be assigned to the print data generation software 202. On the other hand, the instruction to perform maintenance and the instruction to send prohibition information for printing can be assigned to the extension application 204. In this way, by dividing up the instructions, i.e., by dividing up the roles, the drawing application 201 can cause the printing device 102 to execute each function that it can execute.
[0044] <Processing performed by the drawing application> FIG. 6 is a flowchart showing the processing executed by the drawing application 201 in the sequence diagram shown in FIG. 5. The program based on the flowchart shown in FIG. 6 may be started, for example, when the control 1203 on the print setting screen 1201A shown in FIG. 12 is selected. Alternatively, the program based on the flowchart shown in FIG. 6 may be started when the utility screen 1401 shown in FIG. 14 is displayed. As shown in FIG. 6, in step S601, the drawing application 201 acquires a list of printer driver non-executable functions. As described above, the acquisition of the list of printer driver non-executable functions is performed in accordance with an instruction to send the list of printer driver non-executable functions. This transmission instruction is performed by executing command 1001 shown in FIG. 10(a), which will be described later. The argument "Printer1" included in the command 1001 is the name of the printer queue. Upon receiving an instruction from the drawing application 201, the OS 213 determines the extension application 204 that has the printer driver non-executable function based on the argument "Printer1," i.e., the name of the printer queue. Then, the OS 213 can instruct the extension application 204 to send a list of functions that the printer driver will not execute. This allows the drawing application 201 to obtain the list of functions that the printer driver will not execute. Details of the functions that the printer driver will not execute will be described later with reference to FIG. 8.
[0045] As described above, the drawing application 201 may obtain the list of printer driver unexecutable functions via the OS 213 or directly from the extension application 204. When obtaining the list via the OS 213, the list of printer driver unexecutable functions is obtained as a return value from the OS 213. When obtaining the list directly, the list of printer driver unexecutable functions is obtained from the path of a file containing the list of printer driver unexecutable functions. The file path is a return value from the extension application 204. The drawing application 201 can obtain the list of printer driver unexecutable functions by referencing the file path, i.e., the return value. The list of printer driver unexecutable functions may be stored in the print function information 203 (PDC) (see FIG. 16). The drawing application 201 can detect the path of the file by referencing the capability information (PC) obtained by the print data generation software 202. In this case, it is preferable that the print function extension unit 207 add the location (address) of the list of printer driver unexecutable functions to the print function information 203.
[0046] In step S602, the drawing application 201 determines whether the list of printer driver non-executable functions acquired in step S601 includes a function (hereinafter referred to as a "specific function") that the drawing application 201 wants the printing device 102 to execute this time. Here, examples of the specific function include performing maintenance and transmitting prohibition information. If the result of the determination in step S602 indicates that the specific function is included, the process proceeds to step S604. On the other hand, if the result of the determination in step S602 indicates that the specific function is not included, the process proceeds to step S603. The specific function is a function that is designated in advance by the drawing application 201.
[0047] In step S603, the drawing application 201 does not set a specific function execution instruction flag for the extended application 204, and the process ends. The "specific function execution instruction flag" indicates whether to instruct the extended application 204 to execute a specific function, and is held in the drawing application 201. Note that if the specific function execution instruction flag is not set, the control 1204 on the print setting screen 1201A shown in FIG. 12 is not displayed, or the control 1204 is displayed grayed out. The control 1204 will be described later.
[0048] In step S604, the drawing application 201 sets a flag indicating whether or not the extension application 204 is allowed to instruct execution of a specific function.
[0049] In step S605, the drawing application 201 determines whether it has decided to execute a specific function, i.e., to execute at least one of maintenance and prohibition information transmission. This determination may be made based on the specifications of the drawing application 201 itself, or based on a user operation on the utility screen 1401 shown in FIG. 14. The execution of maintenance and prohibition information transmission is performed based on Features 802 of the information 801 shown in FIG. 8. If it is determined in step S605 that a specific function will be executed, the process proceeds to step S606. On the other hand, if it is determined in step S605 that a specific function will not be executed, the process ends. In step S605, it is also determined whether Options 803 (see FIG. 8) indicating options available for each function included in Features 802 are executed.
[0050] In step S606, the drawing application 201 determines whether the execution target of the specific function determined in step S605 is maintenance execution. If the determination in step S606 determines that the execution target is maintenance execution, the process proceeds to step S607. On the other hand, if the determination in step S606 determines that the execution target is not maintenance execution, the process proceeds to step S611.
[0051] In step S607, the drawing application 201 instructs the OS 213 to perform maintenance on the printing device 102. This maintenance execution instruction is given by executing a command 1004 shown in Fig. 10(d), which will be described later.
[0052] In step S608, the drawing application 201 determines whether a result (notification) indicating that the maintenance execution on the printing device 102 was successful has been obtained. Note that, as in step S601, the maintenance execution result may be obtained via the OS 213, or may be obtained directly from the extension application 204. If it is determined in step S608 that a result indicating success has been obtained, the process proceeds to step S609. On the other hand, if it is determined in step S608 that a result indicating success has not been obtained, the process proceeds to step S610.
[0053] In step S609, the drawing application 201 displays an execution result screen 1503 shown in FIG. 15(b), which will be described later, and the process ends.
[0054] In step S610, the drawing application 201 displays an execution result screen 1501 shown in FIG. 15(a), which will be described later, and the process ends.
[0055] In step S611, the drawing application 201 determines whether the execution target of the specific function determined in step S605 is prohibition information transmission execution. If the determination in step S611 determines that prohibition information transmission execution is required, the process proceeds to step S612. On the other hand, if the determination in step S611 determines that prohibition information transmission execution is not required, the process ends.
[0056] In step S612, the drawing application 201 instructs the OS 213 to transmit prohibition information to the printing device 102. This prohibition information transmission is performed by executing a command 1005 shown in FIG. 10(e), which will be described later.
[0057] In step S613, the drawing application 201 determines whether or not prohibition information has been acquired by executing prohibition information transmission. Note that, as in step S601, the prohibition information may be acquired via the OS 213, or may be acquired directly from the extension application 204. If it is determined in step S613 that prohibition information has been acquired, the process proceeds to step S614. On the other hand, if it is determined in step S613 that prohibition information has not been acquired, the process proceeds to step S615. For example, if command 1005 (see FIG. 10(e)) is executed in step S613, information related to "all" in Options 803 can be acquired. "Information related to "all"" refers to all prohibition information in the printing device 102. Note that information related to "all" is information with a relatively large amount of data, which increases the communication load. For this reason, it is preferable to acquire information related to "all" based on the file path rather than directly from the extension application 204. This allows information related to "all" to be acquired quickly and easily. Furthermore, instead of the information about "all," for example, in the case of information about "Media-HolePunch," it is possible to acquire the second prohibition information 1102 (see FIG. 11) of the prohibition information 1100. The second prohibition information 1102 is information with a smaller amount of data than the information about "all," so it is preferable to acquire it directly from the extension application 204.
[0058] In step S614, the drawing application 201 displays an execution result screen 1504 shown in FIG. 15(c), which will be described later, and the process ends.
[0059] In step S615, the drawing application 201 displays an execution result screen 1505 shown in FIG. 15(d), which will be described later, and the process ends.
[0060] <Processing executed by the extension application (processing to send a list of functions that the printer driver does not execute)> 7 is a flowchart showing a process (a process for transmitting a list of functions that the printer driver does not execute) executed by the external function provision unit of the extension application 204 in the sequence diagram shown in FIG. 5. The OS 213 starts the external function provision unit 214 by executing a command 1002 in FIG. 10(b), which will be described later. The argument "args" included in the command 1002 specifies information related to the name of the printer queue. As shown in FIG. 7, in step S701, the external function provision unit 214 of the extension application 204 determines whether or not an instruction to transmit a list of functions that the printer driver does not execute has been received from the OS 213, that is, whether or not a transmission instruction has been received. If it is determined in step S701 that a transmission instruction has been received, the process proceeds to step S702. On the other hand, if it is determined in step S701 that a transmission instruction has not been received, the process remains in standby at step S701.
[0061] In step S702, the external function providing unit 214 determines whether or not one or more functions that the printer driver will not execute are included in the list of functions that the printer driver will not execute. The list of functions that the printer driver will not execute is stored in the shared information 210 (see FIG. 2(b)) as information 801 shown in FIG. 8. The determination in step S702 is made by the external function providing unit 214 by referencing information 801. If the determination in step S702 determines that one or more functions that the printer driver will not execute are included, the process proceeds to step S703. On the other hand, if the determination in step S702 determines that one or more functions that the printer driver will not execute are not included, that is, if the determination that no functions that the printer driver will not execute are included in the list of functions that the printer driver will not execute, the process proceeds to step S704.
[0062] In step S703, the external function providing unit 214 transmits information 801 (a list of functions that the printer driver does not execute). Note that the information 801 may be transmitted in the format shown in Fig. 8, for example, or in a format that can be interpreted by the drawing application 201. As described above, the transmission destination at this time may be the OS 213 or the drawing application 201.
[0063] In step S704, the external function providing unit 214 transmits information indicating that the printer driver does not include one or more non-executable functions. This information may include, for example, the character string "NONE," or may be transmitted in a format that can be interpreted by the drawing application 201. The transmission destination at this time may be the OS 213 or the drawing application 201, as in step S703.
[0064] <Example of a list of printer driver non-executable functions> FIG. 8 is a diagram showing an example of a list of printer driver non-executable functions. Information 801 shown in FIG. 8 includes Features 802 indicating printer driver non-executable functions and Options 803 indicating available options for each function included in Features 802. Note that the Features 802 and Options 803 included in information 801 differ depending on the type (model) of printing device 102. Features 802 includes "Maintenance execution (Execute-Maintenance-Command)" and "Printing prohibition information (Get-Invalid-Combinations)." "Maintenance execution" includes the aforementioned "cleaning," "high-power-cleaning," and "adjust-head-position" as Options 803. The user can select at least one of these Options 803.
[0065] "Printing prohibition information" includes "all," "Size-Nup-Duplex-Orientation-HolePunch," and "Media-HolePunch" as Options 803. "All" refers to the group of all printing conditions that cannot be combined simultaneously in a single print run. "Size-Nup-Duplex-Orientation-HolePunch" refers to the group of printing conditions that cannot be combined simultaneously in a single print run, including paper size, print orientation, hole punching, page layout printing, and double-sided / single-sided printing. "Media-HolePunch" refers to the group of printing conditions that cannot be combined simultaneously in a single print run, including paper type and hole punching.
[0066] <Processing executed by the extension application (execution process of the printer driver non-execution function)> FIG. 9 is a flowchart showing the process (printer driver non-execution function execution process) executed by the external function providing unit of the extension application in the sequence diagram shown in FIG. 5. The program based on the flowchart shown in FIG. 9 can be started, for example, when the drawing application 201 executes command 1004 (see FIG. 10(d)) or command 1005 (see FIG. 10(e)). The OS 213 starts the external function providing unit 214 by executing command 1003 shown in FIG. 10(c) (described later). The argument "args" included in the command 1003 specifies information about the printer queue name, Features 802, and Options 803. As shown in FIG. 9, in step S901, the external function providing unit 214 of the extension application 204 determines whether the OS 213 has instructed the printing device 102 to execute the printer driver non-execution function, i.e., whether or not an instruction has been received from the OS 213. If it is determined in step S901 that an instruction has been received from the OS 213, the process proceeds to step S902. On the other hand, if it is determined in step S901 that no instruction has been received from the OS 213, the process remains in step S901 and waits.
[0067] In step S902, the external function providing unit 214 determines whether or not the information specified by the argument "args" included in the command 1003 corresponds. This determination is made based on whether or not the information specified by the argument "args" is included in table 801. If the determination in step S902 determines that the information specified by the argument "args" corresponds, the process proceeds to step S903. On the other hand, if the determination in step S902 determines that the information specified by the argument "args" does not correspond, the process proceeds to step S912.
[0068] In step S903, the external function providing unit 214 determines whether the information specified by the argument "args" is information indicating that maintenance is to be performed. If the determination in step S903 determines that the information indicates that maintenance is to be performed, the process proceeds to step S904. On the other hand, if the determination in step S903 determines that the information does not indicate that maintenance is to be performed, the process proceeds to step S909.
[0069] In step S904, the external function providing unit 214 determines whether the information specified by the argument "args" corresponds to the information in Options 803 for maintenance execution. This determination is made based on whether the information specified by the argument "args" is included in table 801. If the determination in step S904 determines that the information corresponds to the information in Options 803, the process proceeds to step S905. On the other hand, if the determination in step S904 determines that the information does not correspond to the information in Options 803, the process proceeds to step S908.
[0070] In step S905, the external function providing unit 214 instructs the printing device 102 to execute at least one of the options included in Options 803 for performing maintenance, such as "cleaning." This causes the printing device 102 to execute the corresponding option. Note that the execution instruction in step S905 is issued by sending a command 1006 shown in FIG. 10(f) to the printing device 102.
[0071] In step S906, the external function providing unit 214 determines whether or not a result (notification) indicating that the execution instructed in step S905 was successful on the printing device 102 has been obtained from the printing device 102. If it is determined in step S906 that a result indicating success has been obtained, the process proceeds to step S907. On the other hand, if it is determined in step S906 that a result indicating success has not been obtained, the process proceeds to step S908.
[0072] In step S907, the external function providing unit 214 transmits information indicating success (for example, "Execute-Maintenance-Command", "cleaning": Success), and the process ends. The transmission destination at this time may be the OS 213 or the drawing application 201.
[0073] In step S908, the external function providing unit 214 transmits information indicating that the process was not successful (for example, "Execute-Maintenance-Command", "cleaning":Failed), and the process ends. The destination of the transmission at this time may be the OS 213 or the drawing application 201, as in step S907.
[0074] In step S909, the external function providing unit 214 determines whether the information specified by the argument "args" is information indicating that prohibition information transmission is to be executed. If the determination in step S909 determines that the information is information indicating that prohibition information transmission is to be executed, the process proceeds to step S910. On the other hand, if the determination in step S909 determines that the information is not information indicating that prohibition information transmission is to be executed, the process proceeds to step S912.
[0075] In step S910, external function providing unit 214 determines whether the information specified by argument "args" corresponds to the information in Options 803 for the prohibition information transmission execution. This determination is made based on whether table 801 contains the information specified by argument "args." If the determination in step S910 determines that the information corresponds to the information in Options 803, processing proceeds to step S9411. On the other hand, if the determination in step S910 determines that the information does not correspond to the information in Options 803, processing proceeds to step S912.
[0076] In step S911, the external function providing unit 214 executes transmission of prohibition information, and the process ends. The transmission destination at this time may be the OS 213 or the drawing application 201, as in step S907.
[0077] In step S912, the external function providing unit 214 transmits a message indicating that there is no prohibited character information corresponding to Options 803 (for example, "Get-InvalidCombinations", "Size-Media": Failed), and the process ends. The destination of the message at this time may be the OS 213 or the drawing application 201, as in step S907.
[0078] <Examples of commands executed by the drawing application, OS, and extension application> FIG. 10 shows examples of commands executed by the drawing application, the OS, and the extension application. A command 1001 shown in FIG. 10(a) is executed when the drawing application 201 acquires a list of functions that the printer driver will not execute. As described above, the argument "Printer1" included in the command 1001 is the name of the printer queue. A command 1002 shown in FIG. 10(b) is a command with which the OS 213 instructs the extension application 204 to send a list of functions that the printer driver will not execute when the command 1001 is executed. As described above, the argument "args" included in the command 1002 specifies information related to the name of the printer queue. A command 1003 shown in FIG. 10(c) is a command with which the OS 213 instructs the extension application 204 to execute functions that the printer driver will not execute when the command 1004 or 1005 is executed. The argument "args" included in the command 1002 specifies information related to the name of the Features 802, the name of the Options 803, and the name of the printer queue.
[0079] 10(d) is a command issued by the drawing application 201 to the OS 213 to instruct the extended application 204 to execute "cleaning" of Options 803 on the printing device 102. Command 1005 shown in FIG. 10(e) is a command issued by the drawing application 201 to the OS 213 to instruct the extended application 204 to send "all" of Options 803. Command 1006 shown in FIG. 10(f) is a command issued by the external function providing unit 214 to instruct the printing device 102 to execute "cleaning" of Options 803.
[0080] <Example of prohibited character information held by an extension application> FIG. 11 is a diagram showing an example of prohibition information stored in the extension application 204. The prohibition information 1100 shown in FIG. 11 may be stored in advance, or may be acquired from an external server or the like that stores the prohibition information 1100 and then stored. The prohibition information 1100 includes first prohibition information 1101 and second prohibition information 1102. The first prohibition information 1101 includes multiple pieces of information related to "Size-Nup-Duplex-Orientation-HolePunch." "Size-Nup-Duplex-Orientation-HolePunch" is a combination of prohibited characters for paper size, layout per side of paper, double-sided or single-sided printing, print orientation, and hole punching. The first prohibition information 1101 includes, for example, "A5, 2in1, OneSide, Portrait, HolePunchDualLeft." "A5, 2in1, OneSide, Portrait, HolePunchDualLeft" is a prohibited combination of "A5," "2in1 (2 pages / sheet)," single-sided printing, "portrait," and "2-hole left (two punch holes on the left side)."
[0081] The second prohibition information 1102 includes multiple pieces of information related to "Media-HolePunch." "Media-HolePunch" is a prohibited combination of paper type and hole punching. The second prohibition information 1102 also includes "Envelope,HolePunchDualLeft," etc. "Envelope,HolePunchDualLeft" is a prohibited combination of "envelope paper" and "two-hole left."
[0082] <Example of a print setting screen used in a drawing application> FIG. 12 is a diagram showing an example of a print setting screen used by the drawing application 201. As shown in FIG. 12, the print setting screen 1201A includes controls 1202 to 1209, a preview area 1210, a control 1211, and a control 1212. Note that the print setting screen 1201A is not limited to the screen configuration shown in FIG. 12 and may include other controls different from the controls 1202 to 1209. The control 1202 is a screen transition button, and operating the screen transition button enables transition from the print setting screen 1201A to a print data editing screen. The "print data editing screen" may be, for example, a screen used by the drawing application 201 capable of document editing and image processing, or may be another screen for selecting a print target. The control 1203 allows the user to select and set the printing device 102 to be used for printing. In FIG. 12, "printer 1" is selected and set as an example of the printing device 102. When a predetermined printing device 102 is selected and set using the control 1203, a program is executed based on the flowchart shown in FIG. 6. Furthermore, if the extension application 204 has a maintenance execution function, the control 1204 is displayed. The control 1204 is a screen display button, and by operating the screen display button, a utility screen 1401 (see FIG. 14) can be displayed. Furthermore, when a predetermined printing device 102 is selected using the control 1203 and prohibition information can be acquired for the printing device 102, an execution result screen 1504 (see FIG. 15(c)) or an execution result screen 1505 (see FIG. 15(d)) is displayed depending on the acquisition results. It is preferable that the execution result screen 1504 or the execution result screen 1505 be displayed superimposed on the print setting screen 1201A, but this is not a limitation. For example, the print setting screen 1201A may be temporarily closed before the execution result screen 1504 or the execution result screen 1505 is displayed.
[0083] Control 1205 allows the user to select and set the paper size used for printing on the printing device 102. In FIG. 12, "A5" is selected as an example. Control 1206 allows the user to select and set the print orientation on the printing device 102. In FIG. 12, the print orientation on the printing device 102 is set to "portrait" as an example. Control 1207 allows the user to select and set the position and number of punch holes to be punched in the printed material. In FIG. 12, the punch hole position is set to "left side" and the number of punch holes is set to "two" as an example. Control 1208 allows the user to select and set the layout per page of paper. In FIG. 12, "2 in 1 (2 pages per sheet)" is set as an example. Control 1209 allows the user to select and set whether the printing on the printing device 102 will be double-sided or single-sided printing. In FIG. 12, "single-sided printing" is set as an example. A preview image of the print target that has been edited and processed by the drawing application 201 is displayed in preview area 1210. Control 1211 is a switching button for switching between preview images when there are multiple preview images displayed in preview area 1210. By operating this switching button, it is possible to go back or forward in order among the preview images. Control 1212 is a print execution button that instructs the printing device 102 to execute printing. By operating this print execution button, a printed material including the preview image displayed in preview area 1210 is printed by the printing device 102.
[0084] FIG. 13 is a diagram showing a state in which a prohibition removal process has been executed on the print setting screen shown in FIG. 12. The settings of controls 1205 to 1209 on print setting screen 1201A shown in FIG. 12 are a combination that results in a prohibition based on first prohibition information 1101. That is, the settings of controls 1205 to 1209 are the same combination as "A5, 2in1, OneSide, Portrait, HolePunchDualLeft" included in first prohibition information 1101. The drawing application 201 can detect the settings of controls 1205 to 1209 on print setting screen 1201A. If the result of this detection determines that the combination is the same as the prohibition based on first prohibition information 1101, a prohibition removal process is executed on print setting screen 1201A shown in FIG. 12, and the print setting screen 1201A shown in FIG. 12 is forcibly changed to print setting screen 1201B shown in FIG. 13. Specifically, the setting "2 holes left" in control 1207 on print setting screen 1201A is changed to the setting "none" in control 1207 on print setting screen 12B. Note that the setting in control 1207 is not limited to being forcibly changed. For example, a message prompting the user to change the setting in control 1207 may be displayed once, and the setting in control 1207 may be changed if the user allows the change in accordance with the message.
[0085] 13, print setting screen 12B includes message 1302. As described above, drawing application 201 can detect the settings of controls 1205 to 1209 on print setting screen 1201A. Message 1302 is displayed when the result of this detection is determined to be the same combination of prohibitions as those based on first prohibition information 1101, and the setting of control 1207 on print setting screen 12B is changed.
[0086] FIG. 14 is a diagram showing an example of a utility screen. The utility screen 1401 shown in FIG. 14 is displayed by operating the control 1204 on the print setting screen 1201A. The utility screen 1401 includes a message 1402 and controls 1403 to 1405. The message 1402 indicates that the controls 1403 to 1405 instruct the user to perform maintenance that is available for "Printer 1," for which the control 1203 on the print setting screen 1201A was selected. The control 1403 can execute "cleaning," which is included in Options 803 of the information 801 shown in FIG. 8. Operating the control 1403 can instruct the extension application 204 via the OS 213 to "perform print head cleaning," which is one of the "maintenance executions." The control 1404 can execute "high-power-cleaning," which is included in Options 803. By operating control 1404, it is possible to instruct the extension application 204 via the OS 213 to "perform heavy cleaning of the print head," which is one of the "maintenance executions." Control 1405 can execute "adjust-head-position," which is included in Options 803. By operating control 1405, it is possible to instruct the extension application 204 via the OS 213 to "perform adjustment of the print head reference position," which is one of the "maintenance executions." After operating controls 1403 to 1405, the results of the maintenance execution instructed by each control are displayed. For example, after operating control 1403, an execution result screen 1501 shown in FIG. 15(a) or an execution result screen 1503 shown in FIG. 15(b) is displayed as the result of the maintenance execution.
[0087] <Example of maintenance execution result display> FIG. 15 is a diagram showing an example of the display of the maintenance execution result. Execution result screen 1501 shown in FIG. 15(a) includes message 1501a and control 1501b. Message 1501a is a message indicating that the maintenance execution after operating control 1403, i.e., the execution of cleaning on the print head, was successful. Control 1501b is an OK button, and operating this OK button can close execution result screen 1501. Execution result screen 1503 shown in FIG. 15(b) includes message 1503a and control 1503b. Message 1503a is a message indicating that the maintenance execution after operating control 1403, i.e., the execution of cleaning on the print head, was unsuccessful. Control 1503b is an OK button, and operating this OK button can close execution result screen 1503. The user can determine whether the cleaning execution was successful from execution result screen 1501 or execution result screen 1503.
[0088] The execution result screen 1504 shown in FIG. 15(c) includes a message 1504a and a control 1504b. The message 1504a is a message indicating that the prohibition information was successfully acquired when the extension application 204 transmitted prohibition information when "Printer 1" was selected in the control 1203 of the print setting screen 1201. The control 1504b is an OK button, and the execution result screen 15014 can be closed by operating the OK button. The execution result screen 1505 shown in FIG. 15(d) includes a message 1505a and a control 1505b. The message 1505a is a message indicating that the prohibition information was not successfully acquired when the extension application 204 transmitted prohibition information when "Printer 1" was selected in the control 1203 of the print setting screen 1201. The message 1505a also includes a message indicating that the settings of the controls 1205 to 1209 on the print setting screen 1201 are a combination that results in a prohibition. Control 1505b is an OK button, and operating this OK button can close the execution result screen 1505. The user can understand from the execution result screen 1504 or the execution result screen 1505 whether or not the prohibition information was successfully acquired.
[0089] <Example of print function information generated by the print function extension unit> FIG. 16 is a diagram showing an example of print function information generated by the print function extension unit. Information 1601 shown in FIG. 16 is information in which the print function information 203 generated by the print function extension unit 207 is written in XML format. Information 1601 includes information 302 to 306, similar to information 301 shown in FIG. 3, as well as information 1602 and information 1603. Information 1602 is information related to the path of a file referenced when the drawing application 201 obtains a list of printer driver non-executable functions. For example, "xmlns:cn0001=http: / / tests.com / printing / printschemakeywords / test" means that the file path attribute belongs to the space defined by cn0001. Information 1603 is information indicating the location of an area for temporarily storing a file containing a list of printer driver non-executable functions requested by the drawing application 201, maintenance execution results, and the like. Such information 1601 can be used during the maintenance execution process and the prohibition information transmission process.
[0090] Although preferred embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments, and various modifications and variations are possible within the scope of the gist of the present invention. The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or storage medium, and having one or more processors in the computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., an ASIC) that realizes one or more functions.
[0091] The disclosure of this embodiment includes the following configurations and methods. (Configuration 1) A print application capable of executing a print instruction, a common printer driver that can be used in common with printing devices of multiple manufacturers when printing, an extension application that can extend the functions of the common printer driver, and an operating system that controls the common printer driver, the extension application, and the printing application; The extension application The printer driver includes function information relating to printer driver non-executable functions that cannot be executed by the printing device using the common printer driver, among the functions that the printing device can execute; The printing application an acquisition means for acquiring the function information; and an instruction unit that instructs the printing device to execute the printer driver-unexecutable function by the extended application based on the function information. (Configuration 2) The printing application described in configuration 1 is characterized in that when the acquisition means acquires the function information, the instruction means instructs the operating system to send the function information to the extended application prior to acquiring the function information. (Configuration 3) The print application according to configuration 1 or 2, wherein the instruction means instructs the operating system to cause the extension application to execute the printer driver non-executable function in the printing device. (Configuration 4) The print application according to any one of configurations 1 to 3, wherein the acquisition means acquires a list of functions that the printer driver does not execute as the function information. (Configuration 5) The extension application causes the printing device to execute the printer driver non-executable function and outputs the execution result; 5. The print application according to any one of configurations 1 to 4, wherein the acquisition unit is capable of acquiring the execution result. (Configuration 6) An information processing apparatus including a common printer driver that can be used when printing on printing devices of multiple manufacturers, an extension application that can extend the functions of the common printer driver, a print application that can execute the print instruction, and an operating system that controls the common printer driver, the extension application, and the print application, The extension application The printer driver includes function information relating to printer driver non-executable functions that cannot be executed by the printing device using the common printer driver, among the functions that the printing device can execute; The printing application an acquisition means for acquiring the function information; and an instruction unit that instructs the printing device to execute the printer driver-unexecutable function by the extended application based on the function information. (Configuration 7) The information processing device described in Configuration 6 is characterized in that when the acquisition means acquires the function information, the instruction means instructs the operating system to send the function information to the extended application prior to acquiring the function information. (Configuration 8) The information processing device according to configuration 6 or 7, wherein the instruction means instructs the operating system to cause the extension application to execute the printer driver non-executable function in the printing device. (Configuration 9) The information processing apparatus according to any one of configurations 6 to 8, wherein the acquiring means acquires a list of functions that the printer driver does not execute as the function information. (Configuration 10) The extension application causes the printing device to execute the function not executed by the printer driver, and outputs the execution result; 10. The information processing device according to any one of configurations 6 to 9, wherein the acquisition means is capable of acquiring the execution result. (Method 1) A method for controlling an information processing apparatus including a common printer driver that can be used when printing on printing devices of multiple manufacturers, an extension application that can extend the functions of the common printer driver, a print application that can execute print instructions, and an operating system that controls the common printer driver, the extension application, and the print application, The extension application The printer driver includes function information relating to printer driver non-executable functions that cannot be executed by the printing device using the common printer driver, among the functions that the printing device can execute; The steps performed by the printing application include: an acquisition step of acquiring the functional information; and an instruction step of instructing the printing device to execute the printer driver-unexecutable function by the extended application based on the function information. (Method 2) A control method for an information processing device described in Method 1, characterized in that the process executed by the printing application includes a process of instructing the operating system to send the function information to the extended application prior to acquiring the function information in the acquisition process. (Method 3) A control method for an information processing device described in Method 2, characterized in that the steps executed by the operating system include a step of causing the extended application to send the function information in accordance with an instruction to send the function information. (Method 4) The method for controlling an information processing device according to Method 3, wherein the steps executed by the extension application include a step of transmitting the function information. (Method 5) A control method for an information processing device described in any one of Methods 1 to 4, characterized in that the instruction process instructs the operating system to cause the extended application to execute the printer driver non-execution function in the printing device. (Method 6) A control method for an information processing device described in Method 5, characterized in that the steps executed by the operating system include a step of causing the extended application to execute the printer driver non-execution function on the printing device in accordance with instructions to cause the printing device to execute the printer driver non-execution function. (Method 7) The method for controlling an information processing device according to Method 6, wherein the steps executed by the extension application include a step of causing the printing device to execute the printer driver non-execution function. (Method 8) The method for controlling an information processing device according to any one of Methods 1 to 7, wherein in the acquiring step, a list of functions that the printer driver does not execute is acquired as the function information. (Method 9) A control method for an information processing device described in any one of Methods 1 to 8, characterized in that the process executed by the extended application includes a process of outputting the execution result of causing the printing device to execute the printer driver non-execution function. (Method 10) The method for controlling an information processing device according to Method 9, wherein the steps executed by the print application include a step of acquiring the execution result. [Explanation of symbols]
[0092] 101 host computer 102 Printing device 201 Drawing Applications 202 Printing data generation software 204 Extended Applications 213 Operating System (OS)
Claims
1. A printing application capable of executing a print instruction, a common printer driver that can be used in common with printing devices of multiple manufacturers when printing, an extension application that can extend the functions of the common printer driver, and an operating system that controls the common printer driver, the extension application, and the printing application; The extension application The printer driver includes function information relating to printer driver non-executable functions that cannot be executed by the printing device using the common printer driver, among the functions that the printing device can execute; The printing application an acquisition means for acquiring the function information; and an instruction unit that instructs the printing device to execute the printer driver-unexecutable function by the extended application based on the function information.
2. The printing application according to claim 1, characterized in that, when the acquisition means acquires the function information, the instruction means instructs the operating system to send the function information to the extended application prior to acquiring the function information.
3. 2. The printing application according to claim 1, wherein the instruction means instructs the operating system to cause the extension application to execute the function not executed by the printer driver in the printing device.
4. 2. The printing application according to claim 1, wherein the acquiring unit acquires a list of functions that the printer driver does not execute as the function information.
5. the extension application causes the printing device to execute the function not executed by the printer driver, and outputs the execution result; 2. The printing application according to claim 1, wherein the acquisition unit is capable of acquiring the execution result.
6. An information processing apparatus comprising: a common printer driver that can be used in common for printing devices of a plurality of manufacturers when printing; an extension application that can extend the functions of the common printer driver; a print application that can execute a print instruction; and an operating system that controls the common printer driver, the extension application, and the print application; The extension application The printer driver includes function information relating to printer driver non-executable functions that cannot be executed by the printing device using the common printer driver, among the functions that the printing device can execute; The printing application an acquisition means for acquiring the function information; and an instruction unit that instructs the printing device to execute the printer driver-unexecutable function by the extended application based on the function information.
7. 7. The information processing apparatus according to claim 6, wherein the instruction means instructs the operating system to send the function information to the extension application prior to the acquisition of the function information by the acquisition means.
8. 7. The information processing apparatus according to claim 6, wherein the instruction means instructs the operating system to cause the extension application to execute the printer driver non-executable function in the printing device.
9. 7. The information processing apparatus according to claim 6, wherein the acquiring unit acquires a list of functions that the printer driver does not execute as the function information.
10. the extension application causes the printing device to execute the function not executed by the printer driver, and outputs the execution result; 7. The information processing apparatus according to claim 6, wherein the acquisition means is capable of acquiring the execution result.
11. A method for controlling an information processing apparatus including a common printer driver that can be used in common for printing devices of multiple manufacturers when printing, an extension application that can extend the functions of the common printer driver, a print application that can execute a print instruction, and an operating system that controls the common printer driver, the extension application, and the print application, The extension application The printer driver includes function information relating to printer driver non-executable functions that cannot be executed by the printing device using the common printer driver, among the functions that the printing device can execute; The steps performed by the printing application include: an acquisition step of acquiring the functional information; and an instruction step of instructing the printing device to execute the printer driver-unexecutable function by the extended application based on the function information.
12. The control method for an information processing device according to claim 11, characterized in that the processes executed by the printing application include a process of instructing the operating system to send the function information to the extended application prior to acquiring the function information in the acquisition process.
13. 13. The control method for an information processing device according to claim 12, wherein the steps executed by the operating system include a step of causing the extended application to transmit the function information in accordance with an instruction to transmit the function information.
14. 14. The method of controlling an information processing apparatus according to claim 13, wherein the steps executed by the extension application include a step of transmitting the function information.
15. 12. The method according to claim 11, wherein the instruction step instructs the operating system to cause the extension application to execute the printer driver non-executable function in the printing device.
16. A control method for an information processing device as described in claim 15, characterized in that the process executed by the operating system includes a process of causing the extended application to execute the printer driver non-execution function on the printing device in accordance with an instruction to cause the printing device to execute the printer driver non-execution function.
17. 17. The method of controlling an information processing apparatus according to claim 16, wherein the steps executed by the extension application include a step of causing the printing apparatus to execute the printer driver non-execution function.
18. 12. The method according to claim 11, wherein in the acquiring step, a list of functions that the printer driver does not execute is acquired as the function information.
19. 12. The control method for an information processing apparatus according to claim 11, wherein the steps executed by the extension application include a step of outputting an execution result of causing the printing apparatus to execute the function not executed by the printer driver.
20. 20. The method of claim 19, wherein the steps executed by the print application include a step of acquiring the execution result.
Citation Information
Patent Citations
Information processing apparatus and processing method thereof
JP2018101303A