Program, information processing device, and control method

The extended application enhances printer driver extensions by providing real-time status notifications and supporting diverse printing devices, addressing convenience issues in existing technologies.

JP2026104876APending Publication Date: 2026-06-25CANON KK

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
CANON KK
Filing Date
2026-04-01
Publication Date
2026-06-25

AI Technical Summary

Technical Problem

Existing printer driver extensions lack convenience in functionality, particularly in displaying status notifications and supporting diverse printing devices from different vendors.

Method used

An extended application that integrates with print data generation software to provide status notifications and additional functionalities, including a status notification application that operates independently of error states, allowing for real-time device status updates and enhanced user interaction.

Benefits of technology

Improves usability by enabling real-time status updates and detailed notifications for printing devices, regardless of error states, and supports diverse printing devices through extended functionalities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026104876000001_ABST
    Figure 2026104876000001_ABST
Patent Text Reader

Abstract

Further improvements in usability are needed for the functionality of extended applications. [Solution] An extension application that extends the functionality of print data generation software by being associated with print data generation software that can be used in common by multiple printing devices provided by different vendors, characterized in that the computer executes a startup step that starts a status notification application that notifies status information of the printing device based on a print instruction being made for print data to be printed by the printing device, and the status information of the printing device is notified by the status notification application.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a program, an information processing apparatus, and a control method.

Background Art

[0002] An application that extends the functions of a printer driver (hereinafter referred to as an extended application) is known. For example, Patent Document 1 describes a technique for extending functions such as a stamp function by an extended application.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] However, there is a demand for further improvement in convenience regarding the functions in the extended application.

Means for Solving the Problems

[0005] An extended application that extends the functions of the print data generation software associated with print data generation software that can be commonly used by a plurality of printing devices provided by different vendors, causing a computer to execute a startup step of starting a status notification application that notifies status information of the printing device based on a print instruction for print data for which printing processing is to be executed by the printing device, and characterized in that the status information of the printing device is notified by the status notification application.

Effects of the Invention

[0006] This disclosure enables further improvements in the usability of the functionality in extended applications. [Brief explanation of the drawing]

[0007] [Figure 1] This diagram shows the hardware configuration of the system. [Figure 2] This diagram shows the configuration of each software component in the information processing device and the printing device. [Figure 3] This is a flowchart illustrating the configuration of local printing and cloud printing. [Figure 4] This is a sequence diagram showing the system. [Figure 5] This is a flowchart of the print data editing unit (background). [Figure 6] This is a flowchart diagram of the print data editing unit (foreground). [Figure 7] This is a flowchart of a status notification app. [Figure 8] This is an example of a notification screen. [Figure 9] This is a sequence diagram showing the system. [Figure 10] This is a flowchart of the print data editing unit (background). [Figure 11] This is a flowchart of a status notification app. [Figure 12] This is a flowchart diagram of the print data editing unit (foreground). [Modes for carrying out the invention]

[0008] Preferred embodiments of the present invention will be described below with reference to the drawings. However, it should be understood that the present invention also includes modifications and improvements made to the embodiments described below, without departing from the spirit of the invention, based on the ordinary knowledge of those skilled in the art.

[0009] (First Embodiment) This invention describes the information processing device and printing device included in the printing system of this embodiment. The host computer 101 is an example of an information processing device and has an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface 116. Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and display devices such as a display unit 119 are connected to the output interface 115. NETIF 120 is a network interface that controls data transfer to and from external devices via the network.

[0010] The ROM 112 stores the initialization program. The external storage device 114 stores application programs, the operating system (OS), print data generation software, and various other data. The extended application 204, described later, is also stored in the external storage device 114. The RAM 113 is used as work memory for executing the various programs stored in the external storage device 114, enabling the various programs to run on the host computer 101.

[0011] In this embodiment, the CPU 111 performs processing according to the procedures of the program stored in the ROM 112, thereby executing the functions and flowchart-related processing described later in the host computer 101.

[0012] The printing device 102 is connected to the host computer 101 via an input / output interface 116. Here, the host computer 101 and the printing device 102 are configured separately, but they could also be configured as a single information processing unit.

[0013] As the information processing apparatus, although the host computer 101 is exemplified in the present embodiment, it is not limited thereto. For example, various devices such as a mobile terminal, a PC (personal computer), a tablet terminal, a PDA (Personal Digital Assistant), a digital camera, etc. can be applied as the information processing apparatus. Further, as the printing apparatus 102, although a printer is exemplified in the present embodiment, it can be applied to, for example, an inkjet printer, a full-color laser beam printer, a monochrome printer, etc.

[0014] Note that a configuration is known in which a printer driver installed in the host computer 101 is used as the control software of the printing apparatus 102 to give a print instruction to the printing apparatus 102 connected to the host computer 101. An operating system (OS), which is basic software, is installed in the host computer 101, and the printer driver is configured according to the specifications defined by the OS and operates when called from the OS. A vendor that provides the printing apparatus 102 can provide a means to instruct printing to the printing apparatus 102 using the OS by providing a printer driver that conforms to the specifications of the OS. In recent years, in Windows (registered trademark), a standard class driver (hereinafter also referred to as a "standard driver") that can be commonly used in printing apparatuses provided by a plurality of vendors has been provided. Such a standard driver is included in the package of the OS and can be easily used by connecting an arbitrary printing apparatus to the host computer 101. Therefore, it is not necessary to separately install a model-specific printer driver suitable for the printing apparatus 102, which is highly convenient. Further, the standard driver is configured to be able to specify a printing function according to PrintCapabilities generated based on information acquired from the connected printing apparatus 102. Thereby, a user who uses the standard driver can specify a printing function according to the capabilities of the connected printing apparatus 102 even though using one standard driver. In the present embodiment, the standard driver is described as the print data generation software 202.

[0015] Here, the extended application 204 will be described. An application for function extension (extended application 204) can be associated with the standard driver. The extended application 204 can be provided by the vendor that provides the printing device 102. By providing this extended application 204, the vendor can provide functions (extended functions) that cannot be realized by only the standard driver.

[0016] The extended application 204 is software for extending the functions of the print data generation software 202, and is software that is not included (not bundled) in the OS in advance. Therefore, the user needs to operate the host computer 101 to download the extended application 204 from the server via the Internet and install it. Alternatively, it may be automatically installed based on the connection of the printing device 102 to the host computer 101. Specifically, when the printing device 102 is connected to the host computer 101, the OS acquires device identification information from the printing device 102. The OS may download and install the extended application 204 corresponding to the acquired device identification information from the server via the Internet. That is, the print data generation software 202 and the extended application 204 are held in the host computer 101 as separate files. Note that the print data generation software 202 and the extended application 204 may be updated and version-updated, but this update process is also performed at different timings. That is, the timing at which the print data generation software 202 is acquired by the host computer 101 and the timing at which the extended application 204 is acquired are different. Also, the trigger at which the print data generation software 202 is acquired by the host computer 101 and the trigger at which the extended application 204 is acquired are different. When the extended application 204 is installed, the OS associates the extended application 204 with the print data generation software 202 and the printing device 102.

[0017] The extended application 204 described in this embodiment includes a print settings screen extension unit 205, a skip control unit 206, a print function extension unit 207, a print data editing unit 208, and a notification unit 209. The extended application 204 also includes shared information 210 that can be accessed from all units. The shared information 210 is actually a file stored in the external storage device 114 or information stored on the RAM 113. The extended application 204 writes to and reads information from the shared information 210 by using the API (Application Program Interface) provided by the OS.

[0018] Figure 2 schematically shows the configuration of a printing system consisting of the host computer 101 software and the printing device 102. Here, the explanation assumes a printing system using a host computer 101 equipped with Microsoft's Windows® 11 as the operating system. Figure 2(a) shows a typical configuration when the extended application 204 is not associated with the print data generation software 202 and the printing device 102.

[0019] The drawing application 201 is software that creates drawing data (image data) to be printed. For example, word processing applications and spreadsheet applications are examples of drawing applications 201. When the drawing application 201 receives a print request from the user, it issues a print command to the OS. The print command includes print setting information to instruct the operation of the print data generation software 202 and the printing device 102. The print setting information is also called a PrintTicket (hereinafter referred to as "PT").

[0020] The drawing application 201 can display a print settings screen provided by either the print data generation software 202, the OS, or the drawing application 201 itself, in order to output print setting information. The print settings screen displays setting items indicating configurable printing functions and control items indicating the setting values ​​of the setting items, according to capability information (information on the capabilities of the printing device 102) obtained from the print data generation software 202. Capability information is also called PrintCapabilities (hereinafter, "PC"). The print data generation software 202 determines the PC based on the print function information 203. The print function information 203 is data indicating the printing function that describes all configurable printing functions and their setting values, as well as the mutual exclusion relationships between the setting values. The print function information 203 is also called PDC (Print Device Capabilities). The print function information 203 is included in the configuration file of the print data generation software 202 and is placed on the external storage device 114 as an immutable file. Alternatively, the print function information 203 can be dynamically generated by the print data generation software 202. Specifically, the print data generation software 202 or the OS can be configured to acquire attribute data of the printing device 102 from the printing device 102 and generate print function information 203 according to the attribute information in the acquired attribute data. If the print function information 203 is generated dynamically, the generated print function information 203 is editable. The attribute data of the printing device 102 acquired from the printing device 102 is a response obtained by issuing the IPP (Internet Print Protocol) Get-Printer-Attributes operation to the printing device 102. The response includes attribute information indicating the functions that the printing device 102 can operate (the capabilities of the printing device 102) and setting values ​​related to that attribute information. This response is stored in RAM 113.

[0021] With the above configuration, the print data generation software 202 can be configured so that the user can specify the printing functions available on each printing device 102, depending on the connected printing device. In other words, even when printing devices with different functions or printing devices developed (provided) by different vendors are connected, the print data generation software 202 can be configured so that the user can specify the printing functions available on each connected printing device. Here, we will describe a configuration using the IPP Class Driver included in Windows® 11 as the print data generation software 202. The IPP Class Driver is a printer driver that performs printing processing according to the specifications of a standard printing protocol called IPP (Internet Print Protocol), and is included in the OS package. The IPP Class Driver is not a unique printer driver specific to the model of the printing device 102, but a standard class driver that can be used in common with multiple printing devices. Furthermore, the IPP Class Driver acquires capability information of the connected printing device 102 and generates print function information 203 based on that information so that the user can specify the printing functions supported by the connected printing device.

[0022] Here, we will explain the process by which print data is sent to the printing device 102 and printed, as shown in Figure 2(a). The OS generates intermediate data (also called input data) based on the print instruction output from the drawing application 201 and passes it to the print data generation software 202. The data output by the drawing application 201 for printing is either Graphic Device Interface format data (GDI format data) or XML Paper Specification format data (XPS format data). When using the IPP Class Driver as the print data generation software 202, if the data output by the drawing application 201 is in GDI format, the OS converts the GDI format data output from the drawing application 201 to XPS format data. Then, the converted XPS format data is passed to the print data generation software 202 as intermediate data. If the data output by the drawing application 201 is in XPS format, the OS passes the XPS format data to the print data generation software 202 as intermediate data. The intermediate data includes image data, which is information about the picture to be formed on the paper, and print setting information set by the user.

[0023] The print data generation software 202 converts the acquired intermediate data into print data that can be interpreted by the printing device 102 and transmits it to the printing device 102. The print data includes drawing data, which is information about the image formed on the paper, and print setting attribute information (attribute information that specifies the print settings) generated based on the print setting information set by the user. The print setting attribute information includes attribute information that indicates the functions that the printing device 102 can operate (capabilities of the printing device) and setting values ​​related to that attribute information.

[0024] The printing device 102 prints (prints) on the paper based on the print data sent from the print data generation software 202. At this time, the printing device 102 forms the drawing data contained in the print data on the paper in accordance with the print setting attribute information contained in the print data. The print setting attribute information includes information on print quality (image quality priority, speed priority, etc.), the size of the drawing data, and the drawing position (margins).

[0025] Figure 2(b) shows the configuration when the extended application 204 is associated with the print data generation software 202 and the printing device 102. Unless otherwise specified below, the configuration and processes are equivalent to those in Figure 2(a).

[0026] When the drawing application 201 receives a print request from the user, it issues a print command to the OS. In this configuration, as in the configuration shown in Figure 2(a), the drawing application 201 can display the print settings screen. In this configuration, the print settings screen provided by the extension application 204 is displayed. Specifically, the print settings screen provided by the print settings screen extension unit 205 of the extension application 204 is displayed. Whether or not the print settings screen provided by the print settings screen extension unit 205 is displayed depends on the user's operation.

[0027] Furthermore, when the drawing application 201 receives a print request from the user and a print command is issued to the OS, the OS activates the skip control unit 206. The skip control unit 206 controls whether or not to skip the processing of the print data generation software 202. After the skip control processing by the skip control unit 206, the OS generates intermediate data based on the print command output from the drawing application 201, and the intermediate data is passed to the print data generation software 202. If the skip control unit 206 does not perform skip control, the intermediate data is processed by the print data generation software 202 into print data that the printing device 102 can interpret, and then passed to the print data editing unit 208. On the other hand, if the print data generation software 202 performs a skip, the intermediate data is not processed by the print data generation software 202 and is passed to the print data editing unit 208. This makes it possible for the print data editing unit 208 to process the intermediate data.

[0028] The print data editing unit 208 edits intermediate data received from the print data generation software 202 or print data processed by the print data generation software 202. For example, in the case of layout printing, the print data editing unit 208 modifies the layout of the intermediate data or print data based on the layout printing settings information received from the OS. The print data editing unit 208 can also display a UI screen on the display unit 119, allowing it to display a preview image of the print result of the intermediate data or print data. Note that while the print data editing unit 208 screen is open, print data is not sent to the printing device 102; the print data transmission process is initiated when the screen is closed.

[0029] After the print data editing unit 208 edits the intermediate data or print data, the print data is sent to the printing device 102. The printing device 102 prints on the paper based on the received print data.

[0030] If the skip control unit 206 skips the print data generation software 202, the print data editing unit 208 may convert the received intermediate data into print data that the printing device 102 can interpret. Alternatively, the OS may be used to convert the intermediate data into print data.

[0031] The extended application 204 has a print function extension unit 207. The print function extension unit 207 can edit the print function information 203 (PDC) generated by the print data generation software 202 or the OS. This allows the print function extension unit 207 to add functions provided by the extended application 204, add functions supported by the printing device 102 but not by the print data generation software 202, add mutual exclusion relationships between print function settings, etc. The OS starts the print function extension unit 207 when the extended application 204 is first associated with the printing device 102 and the print data generation software 202. Furthermore, the OS may start the print function extension unit 207 at other times, such as when the OS starts up. In this way, in cases where optional devices (e.g., finishers) are later added to the printing device 102 and the functions related to printing are extended, the print function extension unit 207 can detect the extended functions and add them to the print function information 203.

[0032] Furthermore, the extended application 204 has a notification unit 209. The notification unit 209 can display a notification (status notification) to the user in response to an error occurring in the printer 102. For example, if a no-paper error occurs in the printer 102, the print data generation software 202 detects the no-paper error, and the OS uses a notification function called a toast notification, which is a function of the OS, to display a message on the display unit 119. When the user presses this toast notification, the notification unit 209 of the extended application 204 is called by the OS, and the UI screen of the notification unit 209 is displayed. The UI screen of the notification unit 209 can display, for example, a detailed message about the no-paper error or instructions on how to load paper.

[0033] The configuration of the extended application 204 for realizing this embodiment is not limited to having all of the functions (units) described above, but may have only some of the functions or other functions. Also, the extended application 204 is sometimes simply called the printing software. As described above, the extended application 204 includes at least one of the following: a function to display a settings screen (print settings screen extension unit 205), a function to control whether or not to skip the processing of the print data generation software 202 (skip control unit 206), a function to edit the print data input to the printing device (print data editing unit 208), a function to extend the functions that can be specified in the print data generation software (print function extension unit 207), and a function to display a screen in response to an error occurring in the printing device 102 (notification unit 209).

[0034] Alternatively, the extended application 204 may terminate its operation after each unit has finished processing. In that case, the OS would start the extended application 204 each time a request to use each unit is received. Another configuration is also possible. For example, the OS terminates the operation of the extended application 204 after the processing of the print settings screen extended unit 205 is completed, but the OS may keep the extended application 204 running even after the processing of the skip control unit 206 is completed.

[0035] Furthermore, the extended application 204 may cancel processing within each unit. If canceled, the OS will delete the print job currently being processed in the print queue. Note that the print job contains print data.

[0036] As mentioned above, the notification unit 209 is capable of displaying status notifications to the user. However, conventional notification units 209 could only display status notifications in response to an error occurring in the printer 102. In other words, conventional notification units 209 had the problem that they could not display status notifications when the printer 102 was not in an error state. However, there is a demand to display status notifications even when the printer 102 is not in an error state. Furthermore, the toast notifications displayed by conventional notification units 209 only showed that the printer 102 was in an error state, and did not display detailed information about the error, such as what kind of error occurred. Therefore, in this embodiment, the printer 102 is controlled to be able to display status notifications even when it is not in an error state. Also, the content displayed when an error occurs is the status information of the printer 102, including detailed information about the error, and the information displayed when no error occurs is the status information of the printer 102. Detailed information about the error includes, for example, if the error is low ink level, information on which color of ink is low, and information on the remaining levels of inks other than the low ink.

[0037] Furthermore, as described above, the conventional notification unit 209 first executes a toast notification in response to an error occurring in the printing device 102. Since the toast notification disappears from the screen after a certain period of time, if the user does not notice the toast notification and does not press the button, the status notification on the notification unit 209's UI screen may not be displayed. Therefore, in this embodiment, the system is controlled to display the status notification at a time when the user is likely to notice it.

[0038] Furthermore, the print data editing unit 208 can display a preview of the print data via the UI screen without a toast notification, but only during the period from when it acquires intermediate data or print data until it is sent to the printing device 102. However, it cannot display the status information of the printing device 102 after the intermediate data or print data has been sent to the printing device 102. Therefore, in this embodiment, the system is controlled to display the status information of the printing device 102 without a toast notification even after the print data has been sent to the printing device 102 and printing has started.

[0039] Therefore, in this embodiment, when the extended application 204 receives intermediate data or print data, it starts an application (status notification application 211) that has a status notification function capable of displaying a status notification even when there is no error. Furthermore, the status notification application 211 is started when the user issues a print command. This will be explained in detail. Figure 2(c) is a diagram showing the system configuration when the extended application 204 starts the status notification application 211. When the print data editing unit 208 of the extended application 204 receives intermediate data or print data sent from the print data generation software 202 based on the user's print command, it starts the status notification application 211 which has a status notification function. Then, it displays a notification screen regarding the status information of the printing device 102. This makes it possible to display a status notification even when the printing device 102 is not in an error state. In addition, it reduces the possibility that a status notification will not be displayed if the user does not notice the toast notification and does not press the toast notification button. Furthermore, it becomes possible to display the status information of the printing device 102 after the print data has been sent to the printing device 102 and printing has started, without using toast notifications.

[0040] Figure 3 is a flowchart showing the configuration of local printing and cloud printing. In this embodiment, we will describe the case in which the extended application 204 operates in association with the print data generation software 202 for local printing. The case in which the extended application 204 operates in association with the print data generation software 202 for cloud printing will be described later in Embodiment 2. In local printing, the host computer 101 can directly obtain status information of the printing device 102 from the printing device 102 without going through the cloud. Conventionally, in local printing, if the print data generation software 202 detects that the printing device 102 has entered an error state, a toast notification 302 is displayed on the screen. When the user presses the toast notification 302, the OS activates the notification unit 209 of the extended application 204, and the notification unit 209 displays the status notification screen 800. The status notification screen 800 will be described later with reference to Figure 8. In this embodiment, we will describe the case in which the status notification application 211 notifies the status information of the printing device 102 in local printing.

[0041] Figure 4 is a sequence diagram of this system. While each device, application, and OS may be described as the main entity responsible for each process, in reality, the corresponding function is realized by the execution of the corresponding program by the CPU or other processor within each device. Note that not all processes are necessarily executed sequentially on a single process; in some cases, processing may be transferred to the OS and then called again by the OS. This is merely a flowchart illustrating the main processes for convenience and clarity.

[0042] The sequence shown in Figure 4 begins when the user performs an operation to issue a print command. This operation includes, for example, pressing the print button (not shown) on the print settings screen opened by the extended application 204 on the screen of the drawing application 201. Hereafter, when the print data editing unit 208 is displayed on the host computer 101, it will be described as running as a foreground process. When the print data editing unit 208 is not displayed on the host computer 101, it will be described as running as a background process.

[0043] In S401, the drawing application 201 issues a print command to the OS based on user input. Note that the processing of the print data generation software 202 is omitted in this sequence.

[0044] In S402, the OS starts the print data editing unit 208 of the extended application 204 as a background process.

[0045] In S403, the print data editing unit 208 is started as a background process. The print data editing unit 208 started as a background process then starts another print data editing unit 208 as a foreground process and instructs the foreground print data editing unit 208 to launch the UI screen. When the instruction to launch the UI screen is given, the print data editing unit 208 running as a foreground process starts up and launches the UI screen. For example, the print data editing unit 208 running as a foreground process displays the print preview. After displaying the print preview, the print data editing unit 208 running as a foreground process waits until the print preview display is finished. The print preview is terminated when the user who has viewed the print preview instructs to continue printing or cancel printing.

[0046] In S404, the print data editing unit 208, which operates as a foreground process, launches the status notification application 211.

[0047] In S405, the print data editing unit 208, which operates in a background process, receives a notification that the print preview has finished and exits the waiting state.

[0048] In S406, the print data editing unit 208 transmits print data to the printing device 102.

[0049] In S407, the status notification application 211 requests the printing device 102 to acquire status information.

[0050] In S408, the printing device 102 transmits its status information as a response to the request to acquire status information.

[0051] In S409, the status notification application 211 displays a status notification screen based on the acquired status information. The status notification application 211 repeats the process from S407 to S409 until the printer 102 finishes printing the target print job. In other words, the status notification application 211 updates and displays the status information of the printer 102.

[0052] In S410, the status notification application 211 determines whether the printing process for the target print job has finished based on the acquired status information. If it determines that the printing process for the target print job has finished, it terminates the iterative process from S407 to S409.

[0053] Figure 5 shows the background process of the print data editing unit 208. The flowchart in Figure 5 starts when the OS boots up. Hereafter, the print data editing unit 208 may be described as the main entity for each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0054] In S501, the print data editing unit 208, which operates as a background process, acquires intermediate data or print data. The print data acquired is data generated by the print data generation software 202. If a skip instruction has been given by the skip control unit 206, intermediate data generated by the OS is acquired.

[0055] In S502, which corresponds to S403 in Figure 4, the print data editing unit 208 operating in the background process instructs the print data editing unit 208 operating in the foreground process to launch a UI screen. For example, it instructs the print preview screen to launch. Note that the print settings may include a setting for the print preview function, allowing the user to switch whether or not to use the print preview function. If the print preview function is not enabled, in S502, the print data editing unit 208 operating in the background process instructs the print data editing unit 208 operating in the foreground process to launch the status notification application 211 instead of launching a UI screen. In this case, the processing in S503 is omitted.

[0056] In S503, the print data editing unit 208, which operates as a background process, determines whether the UI screen display process has finished. If the print data editing unit 208 determines YES in S503, it proceeds to S504; if it determines NO in S503, it repeats S503. In other words, the print data editing unit 208 stops processing and waits until the launched print preview screen has finished.

[0057] In S504, which corresponds to S406 in Figure 4, the print data editing unit 208, which operates in the background process, sends the print data to the printing device 102. As a result, the printing device 102 starts the printing process based on the acquired print data. If a skip instruction has been given by the skip control unit 206, the acquired print data will be intermediate data generated by the OS. Therefore, the print data editing unit 208, which operates in the background process, converts the intermediate data into print data that the printing device 102 can interpret and sends it. Once the print data editing unit 208, which operates in the background process, has finished sending the print data to the printing device 102, it terminates the processing in this flowchart.

[0058] Figure 6 shows the processing of the print data editing unit 208, which operates in the foreground process. The flowchart in Figure 6 is initiated when the print data editing unit 208, which operates in the background process, issues a UI launch command. Hereafter, the print data editing unit 208 may be described as the main entity of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program. If the print preview function is not set to be used, at S502 in Figure 5, the print data editing unit 208, which operates in the background process, issues a launch command to the status notification application 211 instead of launching the UI screen to the print data editing unit 208, which operates in the foreground process. Therefore, the processes S601 and S604 in Figure 6, which will be described later, are executed, and the processes S602 and S603 may be omitted.

[0059] Since S601 is the same process as S501 in Figure 5, its explanation is omitted.

[0060] In S602, the print data editing unit 208, which operates in the foreground process, displays a print preview screen of the print result based on the acquired print data. The user can decide whether to continue or cancel printing by checking the print preview screen. If the print preview function is not set to be used, this process and the process in S603 are omitted.

[0061] In S603, the print data editing unit 208, which operates in the foreground process, determines whether the user has given an instruction to end the print preview. If the print data editing unit 208 determines YES in S603, it proceeds to S604; if it determines NO in S603, it repeats S603. In other words, the foreground process of the print data editing unit 208 stops processing and waits until an instruction to end the print preview screen is given.

[0062] In S604, the print data editing unit 208, which operates in the foreground process, launches the status notification application 211 and terminates the processing of this flowchart. When launching the status notification application 211, the print data editing unit 208, which operates in the foreground process, sends at least one piece of information to the status notification application 211, including information about the name of the target print queue and information about the URI for communicating with the printing device 102. This information is used by the status notification application 211 to identify the printing device 102 for which the status information will be displayed. In addition, the identification information of the target print job is sent as a launch parameter. The identification information of the print job is used to determine whether the printing device 102 is currently processing the target job. Specifically, by comparing the identification information of the print job currently being processed, which is included in the status information obtained from the printing device 102, with the identification information of the print job passed as a launch parameter, the status notification application 211 can determine whether the printing process of the target print job is currently underway. This allows the status notification application 211 to notify the user of the status information of the target print job that triggered the launch. In addition, the status notification application 211 can terminate the display of the status notification screen when the printing process for the print job is completed. The processing of the status notification application 211 will be described later with reference to Figure 7. The timing for acquiring information about the printing device, such as information about the name of the target print queue, information about the URI for communicating with the printing device 102, and print job identification information, can be anytime the extended application 204 can communicate with the printing device 102.

[0063] Figure 7 shows the processing of the status notification application 211. The flowchart in Figure 7 is started when the print data editing unit 208, which operates as a foreground process, is activated. Hereafter, the status notification application 211 may be described as the main entity of each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0064] In S701, the status notification application 211 obtains status information from the printer 102. The status information may include, but is not limited to, an ID that identifies the print job being processed, information about the processing status of the print job, information indicating an error occurring in the printer 102, and ink level information.

[0065] In S702, the status notification application 211 determines whether the printing process for the target print job has finished. Whether the target print job is in progress can be determined by comparing the print job identification information passed as a startup parameter with the status information obtained from the printing device 102. If the status notification application 211 determines YES in S702, it terminates the processing of this flowchart; if it determines NO in S702, it proceeds to S703.

[0066] In S703, the status notification application 211 displays information related to status notifications based on the status information acquired in S701. If the processing in this flowchart is repeatedly executed, the status notification application 211 updates and displays previously acquired status information. Figure 8 shows an example of a status notification screen displayed by the notification unit 209. The status notification screen 800 displayed by the notification unit 209 is a screen that notifies the user of the status of the printer 102 and the print job based on status information acquired from the printer 102. Display area 801 is an area that displays a message indicating the status of the printer 102 based on the status information acquired from the printer 102. For example, if a paper out error occurs in the printer 102, a message indicating that there is no paper is displayed as shown in Figure 8. Display area 802 is an area that displays information about the print job that caused the status notification screen 800 to be displayed. In the example in Figure 8, the job named "Test Print" is indicated as the target print job. Control item 803 is a print cancellation button; pressing it interrupts (cancels) the printing of the print job shown in display area 802. Display area 804 is an area that displays information about the remaining ink levels of the printer 102. Errors in the printer 102 include not only the no-paper error, but also the low ink error indicating that the ink level is low, the no-ink error indicating that the ink has run out, and the paper jam error indicating a paper jam. If at least one of these errors occurs, a message related to the error corresponding to the display area 801 will be displayed. Furthermore, the information displayed on the status notification screen 800 is not limited to these. Information regarding the processing status of the print job may also be displayed from the acquired status information.

[0067] In S704, the status notification application 211 determines whether the user has performed an operation on the status notification screen 800 to interrupt the printing process of the print job. If the status notification application 211 determines that the result is YES in S704, it proceeds to S705; if the result is NO in S704, it returns to S701. In other words, if the user has not performed an operation to interrupt the printing process of the print job, the processes from S901 to S904 are repeatedly executed until the printing process of the print job is completed (YES in S902).

[0068] At S705, the status notification application 211 sends information to the printer 102 indicating that an operation to interrupt the printing process of the print job has been performed, and terminates the processing of this flowchart. As a result, the printer 102 interrupts the printing process of the specified print job.

[0069] In the above, when the extended application 204 operates in association with the print data generation software 202 for local printing, the status notification application 211, which can provide status notifications even when there is no error, is launched based on the user's print command and a status notification screen is provided. This allows the status notification to be displayed even when the printer 102 is not in an error state. Furthermore, it reduces the possibility that the status notification will not be displayed if the user does not notice the toast notification and does not press the toast notification button. In addition, it is possible to display the status information of the printer 102 after print data has been sent to the printer 102 and printing has started, without going through toast notifications.

[0070] In the embodiment described above, the status notification application 211 is described as a different application from the extended application 204, but the extended application 204 may be launched as a separate instance. In this case, the extended application 204 launched as a separate instance will perform the operations of the status notification application 211 described above. Note that the notification screen 800 described in Figure 8 may display different notification screens or the same notification screen for the status notification application 211 and the extended application 204 launched as a separate instance. Also, the UI screen of the notification unit 209 displayed via toast notification described above may be a different notification screen or the same notification screen for the notification screen displayed by the status notification application 211 and the extended application 204 launched as a separate instance.

[0071] In the embodiment described above, the print data editing unit 208 launches the status notification application 211 in a foreground process. However, in environments where it is possible to launch another application from a background process, the status notification application 211 may be launched from a background process. Specifically, in S502 of Figure 5, the print data editing unit 208 operating in a background process may launch the status notification application 211 instead of instructing the print data editing unit 208 operating in a foreground process to launch a UI screen. In this case, the flowchart in Figure 6 may be omitted.

[0072] (Second embodiment) In the first embodiment, a case was described in which the extended application 204 operates in association with print data generation software 202 for local printing. In this embodiment, a case is described in which the extended application 204 operates in association with print data generation software 202 for cloud printing. In Figure 3, Cloud Print Service 301 is a service that operates between the host device and the printing device 102 to provide cloud printing functionality. When performing cloud printing, the host device, such as the host computer 101, sends a print job to Cloud Print Service 301. The printing device 102 then retrieves the print job from Cloud Print Service 301 and performs printing. In addition, the processing status of the print job and the status information of the printing device 102 are sent from the printing device 102 to Cloud Print Service 301 and then sent to the host computer 101 via Cloud Print Service 301. In other words, conventionally, the print data generation software 202 for cloud printing retrieved status information from Cloud Print Service 301, and when it detected that the printing device 102 was in an error state, the OS displayed a toast notification 302. Then, when the user clicked the toast notification 302, the OS launched the notification unit 209 of the extended application 204, and the notification unit 209 displayed the status notification screen 800.

[0073] In this embodiment, in cloud printing, the extended application 204 obtains status information of the printing device 102 from the Cloud Print Service 301 and sends it to the status notification application 211. The case in which the status notification application 211 notifies the status information of the printing device 102 will be described. Note that the same processes as in Embodiment 1 will not be described in this embodiment.

[0074] Figure 9 is a sequence diagram of this system. While each device, application, and OS may be described as the main entity responsible for each process, in reality, the corresponding function is realized by the execution of the corresponding program by the CPU or other processor within each device. Note that not all processes are necessarily executed sequentially on a single process; in some cases, processing may be transferred to the OS and then called again by the OS. This is merely a flowchart illustrating the main processes for convenience and clarity.

[0075] The sequence shown in Figure 9 begins when the user performs an operation to issue a print command. This operation includes, for example, pressing the print button (not shown) on the print settings screen opened by the extended application 204 on the screen of the drawing application 201.

[0076] Since steps S901 to S905 are the same as steps S401 to S405, their explanation will be omitted.

[0077] In S906, the print data editing unit 208, which operates as a background process, sends print data to the Cloud Print Service 301.

[0078] In S907, the print data editing unit 208, which operates as a background process, requests status information from the Cloud Print Service 301.

[0079] In S908, Cloud Print Service 301 sends status information to print data editing unit 208, which operates as a background process, in response to a request to retrieve status information.

[0080] In S909, the print data editing unit 208, which operates as a background process, sends the acquired status information to the status notification application 211.

[0081] Since S910 and S911 are the same processes as S410 and S411 in Figure 4, their explanation will be omitted.

[0082] As a result, even when the extended application 204 operates in association with the print data generation software 202 for cloud printing, it is possible to provide status notifications using the status notification application 211.

[0083] Figure 10 shows the processing of the print data editing unit 208, which operates as a background process. The flowchart in Figure 10 starts when the OS is launched. Hereafter, the print data editing unit 208 may be described as the main entity for each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0084] The processes in S1001 to S1004 are the same as those in S501 to S504, so their explanation is omitted. In S1004, the print data editing unit 208, which operates as a background process, sends the print data to the Cloud Print Service 301.

[0085] In S1005, the print data editing unit 208, which operates as a background process, obtains status information from the Cloud Print Service 301.

[0086] In S1006, which corresponds to S909, the print data editing unit 208, which operates as a background process, sends the status information acquired in S1005 to the status notification application 211. The communication method for sending the status information could be inter-process communication, but is not limited to this. The status notification application 211 then provides a status notification based on the transmitted status information.

[0087] In S1007, the print data editing unit 208, which operates as a background process, determines from the status information obtained in S1005 whether the printing device 102 has finished printing the target print job. If the print data editing unit 208 determines that the result in S1007 is YES, it proceeds to S1008; if the result in S1007 is NO, it proceeds to S1009.

[0088] In S1008, the print data editing unit 208, which operates as a background process, sends information to the status notification application 211 indicating that the printing process for the target print job has finished, and terminates the processing of this flowchart.

[0089] In S1009, the print data editing unit 208, which operates as a background process, determines whether it has received information from the status notification application 211 indicating that an operation to interrupt the printing process of the print job has been performed. If the print data editing unit 208 determines that the answer is YES in S1009, it proceeds to S1010; if it determines that the answer is NO in S1009, it returns to S1005.

[0090] In S1010, the print data editing unit 208, which operates as a background process, issues an instruction to interrupt the printing process of the target print job. This instruction to interrupt the printing process of the target print job is communicated to the printing device 102 via the OS, after the print data editing unit 208 issues an instruction to the OS to interrupt the printing process. Alternatively, if the print data editing unit 208, which operates as a background process, can communicate with the printing device 102, the print data editing unit 208, which operates as a background process, may issue an instruction to the printing device 102 to interrupt the printing process. Alternatively, the print data editing unit 208 may send instruction information to interrupt the printing process to the Cloud Print Service 301, and the Cloud Print Service 301 may then instruct the printing device 102 to interrupt the printing process.

[0091] Figure 11 shows the processing of the status notification application 211. The flowchart in Figure 11 is started when it is activated by the print data editing unit 208, which operates as a foreground process. Hereafter, the status notification application 211 may be described as the main entity of each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0092] In S1101, the status notification application 211 obtains status information from the print data editing unit 208. The status information may include, but is not limited to, the ID information that identifies the print job being processed, information about the processing status of the print job, information indicating errors occurring in the printing device 102, and ink level information.

[0093] In S1102, the status notification application 211 determines whether the printing process for the target print job has finished. Whether the target print job is in progress can be determined from the print job identification information passed as a startup parameter and the status information obtained from the printing device 102. If the status notification application 211 determines YES in S1102, it terminates the processing of this flowchart; if it determines NO in S1102, it proceeds to S1103.

[0094] In S1103, the status notification application 211 displays information related to status notifications based on the status information obtained in S1101. If the processing in this flowchart is executed repeatedly, the status notification application 211 updates and displays the previously obtained status information. The status notification screen displayed by the notification unit 209 is the same as in Figure 8.

[0095] In S1104, the status notification application 211 determines whether the user has performed an action to interrupt the printing process through the status notification screen. If the status notification application 211 determines that the result is YES in S1104, it proceeds to S1105; if the result is NO in S1104, it returns to S1101.

[0096] At S1105, the status notification application 211 sends information to the print data editing unit 208 indicating that an operation to interrupt the printing process of the print job has been performed, and terminates the processing of this flowchart. As a result, at S1010, the print data editing unit 208 issues an instruction to interrupt the printing process of the specified print job.

[0097] In the above configuration, when the extended application 204 operates in association with the print data generation software 202 for cloud printing, the status notification application 211, which can provide status notifications even when there is no error, is launched based on the user's print command, and a status notification screen is provided. This allows the status notification to be displayed even when the printer 102 is not in an error state. Furthermore, it reduces the possibility that the status notification will not be displayed if the user does not notice the toast notification and does not press the toast notification button. In addition, it is possible to display the status information of the printer 102 after print data has been sent to the printer 102 and printing has started, without going through a toast notification. Moreover, by using this configuration, it is possible to provide a status notification screen using the status notification application 211 even when a server is used when sharing a printer.

[0098] In the embodiment described above, an extended application 204 obtains status information of the printing device 102 from the Cloud Print Service 301 and transmits the status information of the printing device 102 to the status notification application 211. However, if the status notification application 211 can obtain status information of the printing device 102 from the Cloud Print Service 301, the status notification application 211 may obtain the status information of the printing device 102 from the Cloud Print Service 301.

[0099] (Third embodiment) In the first and second embodiments, the print data editing unit 208 was described in a configuration in which the status notification application 211 is always launched when it receives print data for the target print job. In this embodiment, a method is described in which the status notification application 211 is switched on or off depending on the settings made by the user or administrator. Note that the same processes as in Embodiment 1 and Embodiment 2 will not be described in this embodiment.

[0100] Figure 12 shows the processing of the print data editing unit 208 operating in the foreground. The flowchart in Figure 12 is initiated when the print data editing unit 208, which operates in the background, issues a UI launch command. Hereafter, the print data editing unit 208 may be described as the main entity for each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0101] The processes in S1201 to S1203 are the same as those in S501 to S503 in Figure 5, so their explanation will be omitted.

[0102] In S1204, the print data editing unit 208, which operates in the foreground, retrieves the print-time activation setting for status notifications. The print-time activation setting for status notifications is a user-configurable setting that determines whether or not status information is notified when an operation is performed to start the printing process of a print job. The print-time activation setting is set on the print settings screen displayed by the print settings screen extension unit of the extension application 204. The print-time activation setting is stored as a print setting in PrintTicket, which stores print settings, or in shared information 210. For example, the print-time activation setting for status notifications stores whether or not to display the status notification screen when printing, as an on / off setting. Note that the location where the print-time activation setting for status notifications is set, and the method and location of storage of the set information are not limited to these.

[0103] In S1205, the print data editing unit 208, which operates in the foreground, determines whether status information is notified when an operation is performed to start the print job in the status notification print activation setting. In other words, the print data editing unit 208 determines whether the print activation setting is on or off. If it is determined to be YES in S1205, the process proceeds to S1206; if it is determined to be NO in S1204, the process of this flowchart ends.

[0104] The process in S1206 is the same as the process in S604, so its explanation will be omitted.

[0105] As a result, it is possible to switch whether or not to launch the status notification application 211 when an operation to start the printing process of a print job is performed, depending on the status notification's print-time launch setting.

[0106] As mentioned above, the notification unit 209 can send a toast notification when an error occurs in the printer 102. Therefore, whether or not a toast notification is sent may depend on whether the print-time activation setting is on or off. Specifically, the notification unit 209 obtains the print-time activation setting for status notifications and determines whether the print-time activation setting is on or off. If the print-time activation is on, the notification unit 209 determines that the status notification application 211 is running and does not need to send a toast notification even when an error occurs. If the print-time activation is off, the notification unit 209 determines that the status notification application 211 is not running and may send a toast notification when an error occurs. This makes it possible to achieve a configuration in which status notifications are not sent each time a print job is processed, but toast notifications are sent when an error occurs in the printer 102. Furthermore, it reduces the inconvenience caused by displaying both the status notification from the status notification application 211 and the toast notification from the notification unit 209. Alternatively, when an error occurs in the printer 102, even if the print-time startup setting is turned on, both the status notification from the status notification application 211 and the toast notification from the notification unit 209 may be displayed. This allows the user to be more reliably notified of the error in the printer 102. Furthermore, if the print-time startup setting is turned on, it is determined whether the status notification application 211 is running or not. If it is determined that the status notification application 211 is running, the toast notification from the notification unit 209 does not need to be sent. Conversely, if the print-time startup setting is turned on and it is determined that the status notification application 211 is not running, the toast notification from the notification unit 209 may be sent. This allows the user to be more reliably notified of the error in the printer 102.

[0107] (Other embodiments) As described above, the first embodiment described a method in which, in local printing, the status notification application 211 communicates directly with the printing device 102 to obtain status information and displays the status notification screen 800. The second embodiment described a method in which, in cloud printing, the print data editing unit 208 obtains status information and sends it to the status notification application 211, and the status notification application 211 displays the status notification screen 800 based on the obtained status information. In this embodiment, the extension application 204 may determine whether it is associated with the print data generation software 202 for local printing or the print data generation software 202 for cloud printing, and may switch between the processing in the first embodiment and the processing in the second embodiment depending on the determination result. This determination may be performed by the print data editing unit 208 in the extension application 204, or the print setting screen extension unit 205 may perform this determination and save the determination result as a print setting.

[0108] The embodiments described above can also be realized by performing the following process: supplying software (programs) that realize the functions of the embodiments described above to a system or device via a network or various storage media, and having the computer (CPU, MPU, etc.) of that system or device read and execute the program. The program may be executed on a single computer or executed in conjunction with multiple computers. Furthermore, it is not necessary to realize all of the above processes in software; some or all of the processes may be realized in hardware such as ASICs. Also, the CPU is not limited to one CPU that performs all the processing; multiple CPUs may perform the processing in coordination as appropriate.

[0109] Furthermore, the functionality of the aforementioned embodiment is not only realized by the execution of program code read by the computer. It also includes cases where the operating system running on the computer performs some or all of the actual processing based on the instructions of that program code, and the functionality of the aforementioned embodiment is realized through that processing. [Explanation of symbols]

[0110] 101 Host computer 102 Printing device 201 Drawing Applications 202 Print Data Generation Software 203 Print Function Information 204 Extended Applications

Claims

1. An extension application that extends the functionality of print data generation software by being associated with print data generation software that can be used in common by multiple printing devices provided by different vendors, On the computer, Based on the fact that a print command has been issued for print data to be printed by the printing device, a startup step is performed to launch a status notification application that notifies status information of the printing device. A program characterized in that the status information of the printing device is notified by the status notification application.

2. The program according to claim 1, characterized in that the status notification application can notify status information of the printing device even when no error has occurred in the printing device.

3. The program according to claim 2, characterized in that the status notification application notifies the user of detailed information regarding the error.

4. The program according to any one of claims 1 to 3, characterized in that when the print instruction for the print data is given, the extended application activates the status notification application based on the fact that it has acquired the print data generated by the print data generation software.

5. The program according to any one of claims 1 to 4, characterized in that the extended application, when it has acquired the print data, executes a display step that displays a print preview screen of the print data.

6. The program according to any one of claims 1 to 5, characterized in that it causes the printing device to perform a first transmission step of transmitting the print data.

7. The program according to any one of claims 1 to 6, characterized in that a first acquisition step is performed by the status notification application to acquire the status information from the printing device, and the status information is notified.

8. The program according to claim 7, characterized in that when the printing process of the print data is performed locally without going through the cloud, the first acquisition step is executed and the status information is notified.

9. The program according to claim 8, characterized in that the first acquisition step is repeatedly executed until the printing process of the print data is completed, and the status information of the printing device is updated and notified.

10. A second acquisition step involves obtaining information about the aforementioned printing device from the cloud, The second transmission step is performed to transmit information regarding the printing device to the status notification application. The program according to any one of claims 1 to 6, characterized in that the status information transmitted in the second transmission step is notified by the status notification application.

11. The program according to claim 10, characterized in that the second acquisition step and the second transmission step are executed when the printing process of the print data is performed by cloud printing which is performed via the cloud.

12. The program according to claim 11, characterized in that the second acquisition step and the second transmission step are repeatedly executed until the printing process of the print data is completed, and the status information of the printing device is updated and notified.

13. The program according to any one of claims 1 to 12, characterized in that the status notification application notifies by displaying a status notification screen containing status information of the printing device.

14. The program according to any one of claims 7 to 9, characterized in that the status notification application performs a third transmission step of sending an instruction to the printing device to interrupt the printing process of the print data based on the user performing an operation to interrupt the printing process of the print data.

15. The program according to claim 14, characterized in that the operation to interrupt the printing process of the print data is performed on a status notification screen that displays status information of the printing device.

16. The program according to any one of claims 10 to 12, characterized in that when the extended application obtains information from the status notification application indicating that the printing process of the print data should be interrupted, it causes the extended application to execute a fourth transmission step of sending an instruction to the printing device to interrupt the printing process of the print data.

17. A first determination step is performed to determine whether the printing process of the aforementioned print data will be carried out as local printing without going through the cloud or as cloud printing. If it is determined that the printing process for the print data will be performed by local printing, the first acquisition step of acquiring the status information from the printing device will be executed. The program according to any one of claims 1 to 16, characterized in that, when it is determined that the printing process of the print data is to be performed by cloud printing, the program executes a second acquisition step of acquiring the status information from the cloud and a second transmission step of sending the status information to the status notification application.

18. The program according to any one of claims 1 to 17, characterized in that the status information of the printing device includes the status information of the print data.

19. The program according to claim 18, characterized in that the status information of the print data is information indicating whether or not the print data is currently being printed.

20. The aforementioned extended application has a startup setting that allows configuration of whether or not the status information is notified when a print command for the print data is issued. If the startup settings are configured to notify status information when the print command for the print data is issued, the status notification application is launched. The program according to any one of claims 1 to 19, characterized in that, if the startup settings do not include a setting to notify status information when a print command is issued for the print data, the status notification application is not started.

21. In the startup settings, if the setting is configured to notify the status information when a print command for the print data is issued, then in the event of an error in the printer, the toast notification that is only sent when an error occurs in the printer will not be executed. The program according to claim 20, characterized in that, if the startup settings do not include a setting to notify status information when a print command for print data is issued, the program executes the toast notification when an error occurs in the printing device.

22. The program according to claim 21, characterized in that the toast notification is executed when an error occurs in the printing device, regardless of whether an error has occurred in the printing device or not.

23. The program according to claim 2 or 21 or 22, characterized in that the error of the printing device is at least one of a no-paper error, an no-ink error, or a paper jam error.

24. The program according to any one of claims 1 to 23, characterized in that the status notification application is the extended application launched in a separate instance.

25. An information processing device having an extension application that extends the functionality of print data generation software by being associated with print data generation software that can be used in common by multiple printing devices provided by different vendors, The system has a startup means for activating a status notification application that notifies status information of the printing device based on a print instruction being issued for print data to be processed by the printing device, An information processing device characterized in that the status information of the printing device is notified by the status notification application.

26. A method for controlling an extension application that extends the functionality of print data generation software by being associated with print data generation software that can be used in common by multiple printing devices provided by different vendors, The startup step includes launching a status notification application that notifies status information of the printing device based on a print instruction being issued for print data to be printed by the printing device, A control method characterized in that the status information of the printing device is notified by the status notification application.