Patent ID: 12197799

Below, a personal computer (hereinafter referred to as “PC”)1using a support program according to the present embodiment will be described while referring to the accompanying drawings. This specification describes the support program executed by the PC1.

As illustrated inFIG.1, the PC1of this embodiment is provided with a controller10that includes a CPU11and a memory12. The PC1is an example of the information processing device of the present disclosure. The CPU11is an example of the computer of the present disclosure. The PC1is also provided with a user interface (also described as “user IF”)13and a communication interface (also described as “communication IF”)14, both of which are electrically connected to the controller10. Note that the controller10inFIG.1is a general concept that covers all hardware and software used for controlling the PC1and is not actually limited to a single piece of hardware present in the PC1.

The CPU11executes various processes according to programs read from the memory12or based on user operations. The memory12stores various programs and various data. The memory12is also used as a work area for executing various processes. Examples of the memory12may be a ROM, a RAM, a hard disk drive, and the like built into the PC1or may be any storage medium that is readable and writable by the CPU11, such as a CD-ROM, a DVD-ROM, or other storage media. A buffer provided in the CPU11is another example of the memory.

The user interface13includes hardware that displays screens for reporting information to the user, and specifically a display13a, and hardware that receives operations performed by the user. The user interface13may be a set of devices that includes the display13afor displaying information, and a mouse, keyboard, and the like with input-receiving functions. Alternatively, the user interface13may be a touchscreen that is provided with both the display13aand an input-receiving function.

The communication interface14includes hardware for communicating with an external device, such as a printer2. The communication standard employed by the communication interface14may be Ethernet (registered trademark), Wi-Fi (registered trademark), Universal Serial Bus (abbreviated “USB”), or the like. “Ethernet” is a Japanese registered trademark of FUJIFILM Business Innovation Corp. “Wi-Fi” is a Japanese registered trademark of Wi-Fi Alliance. The PC1may be capable of connecting to the Internet via the communication interface14. Alternatively, the PC1may be provided with a plurality of communication interfaces14supporting a plurality of communication standards.

As illustrated inFIG.1, the memory12of the PC1stores an operating system (hereinafter abbreviated “OS”)21, an auxiliary program42, and various application programs (hereinafter abbreviated “apps”). The OS21includes a general-purpose printing program41. The OS21is one of Windows (registered trademark), macOS (registered trademark), Linux (registered trademark), iOS (registered trademark), and Android (registered trademark), for example. “Windows” is a Japanese registered trademark of Microsoft Corporation. “macOS” is a Japanese registered trademark of Apple Inc. “Linux” is a Japanese registered trademark of Linus Torvalds. “iOS” is a Japanese registered trademark of Cisco Technology Inc. “Android” is a Japanese registered trademark of Google Inc. The auxiliary program42is an example of the support program of the present disclosure.

Among the various apps installed on the PC1of the present embodiment is an information app43. The information app43is a map app, calendar app, or a browser, for example. The information app43has a function for displaying various information on the display13ain response to user requests. The information app43is an example of the application program of the present disclosure. The information app43itself may also be provided with a function for printing displayed information.

The general-purpose printing program41is an OS-standard program provided together with the OS21and functions to print on the printer2or the like information displayed on the display13aby the information app43and the like. The general-purpose printing program41in the present embodiment includes a function for generating intermediate image data based on the image data to be printed. The general-purpose printing program41supports functions that are universally available on printers of a plurality of models provided by various printer vendors. Unlike printer drivers designed for specific types of printers, the general-purpose printing program41does not support all functions that are specific to all of the various printers, but rather limits support to general functions available on all printers.

The auxiliary program42is a program or a set of programs that executes processes based on commands from the OS21in conjunction with processes of the general-purpose printing program41and provides control support for the target hardware. The auxiliary program42of the present embodiment supports the model of printer2connected to the PC1. The auxiliary program42is started from the general-purpose printing program41when the OS21receives a command to execute a print on the printer2using the general-purpose printing program41, for example. The auxiliary program42is called a Print Support Application (abbreviated “PSA”) or a Hardware Support Application (abbreviated “HSA”).

The auxiliary program42may be a combination of programs, each of which receives execution instructions, or may be a single program that can execute different processes according to the received instructions. The vendors of printers may prepare an auxiliary program for each type of printer. For example, one auxiliary program may be prepared for inkjet printers and another auxiliary program may be prepared for laser printers. Alternatively, an auxiliary program may be prepared for each model of printer or for each model series rather than for each type of printer.

When a new printer is connected to the PC1, for example, the OS21of the PC1can download the appropriate auxiliary program from a server or the like based on the type or model of the connected printer and can install this program on the PC1. The OS21stores identification information for the installed auxiliary program in the memory12in association with printer information for the newly connected printer.

As illustrated inFIG.1, the PC1in the present embodiment is connected to a printer2. The printer2is a device that possesses at least a print function and a communication function.

In the present embodiment, the printer2stores status information31indicating the current status of the printer2. Statuses of the printer2are “ready,” “printing,” “error,” and “warning,” for example. “Ready” indicates that the printer2is waiting for a print job. “Error” indicates a state in which the printer2cannot print. “Warning” indicates a state in which the printer2can print but the user is cautioned that the printer2may soon be unable to print.

When the status of the printer2is either “error” or “warning,” the status information31includes more detailed information. For example, when the status is “error,” the status information31may include such detailed information as type information indicating the type of error (error type), guidance information indicating how the error can be resolved, and contact information indicating the contact person in charge. The type information may indicate error types such as “malfunction,” “paper jam,” “no paper,” “no colorant,” and “cover open.” When the status is “warning,” the type information included in the status information31specifies warning types such as “low colorant level,” and “password unchanged.” “Password unchanged” includes both the case in which the password has not been changed from the initial password and cases in which the same password has been used for a long time.

Next, a printing procedure including the operations of the auxiliary program42according to the present embodiment that is performed when “Print” has been selected in the information app43will be described with reference to the sequence chart ofFIG.2. Note thatFIG.2and other sequence diagrams described later illustrate operations performed when an auxiliary program42compatible with the printer2is installed on the PC1.

The processes in the present embodiment and process steps in the flowcharts essentially indicate processes performed by the CPU11according to instructions described in the auxiliary program42and other programs. Processes performed by the CPU11include hardware control using the API in the OS21. However, a detailed description of the role of the OS21is omitted in this specification when describing operations in the programs. Further, “acquire” is used as a concept that does not necessarily require a request.

In A01at the beginning of the procedure inFIG.2, the user starts up the information app43. In A02the information app43displays an information screen that includes various information on the display13ain response to user instructions. When the user wishes to print an image of the information screen displayed on the display13a, in A03the user selects “Print” in the information screen.FIG.3illustrates an example of an information screen D1that includes a Settings button SW1. When the user selects the Settings button SW1through an operation, a pull-down menu DL that includes “Print” is displayed in the information screen D1, as illustrated inFIG.3. When the user selects “Print” in the pull-down menu DL, in A04the information app43passes a display request and data for the information screen to the general-purpose printing program41of the OS21.

In A06the general-purpose printing program41displays a print settings screen on the display13ain response to the request. Through the print settings screen, the general-purpose printing program41accepts commands to modify print settings and to execute a print.FIG.4illustrates an example of a print settings screen D2. The print settings screen D2includes a printer selection menu51that receives a printer selection, a notification area52that displays a notification image, a print settings area53that accepts specifications for various print settings, a preview area54that includes an image to be printed, an Advanced Settings button SW2that accepts a command to perform advanced print settings, and a Print button SW3that accepts a command to execute a print. The notification image displayed in the notification area52shows notification content of which the user is to be informed. The general-purpose printing program41can manage data for displaying the print settings screen D2.

In A07the user can select a printer in the displayed print settings screen D2through an operation on the printer selection menu51. When the selected printer is the printer2, in A08the general-purpose printing program41starts up the auxiliary program42that supports the printer2and requests the auxiliary program42to perform a process corresponding to the printer selection. In A08the general-purpose printing program41also passes to the auxiliary program42information on the selected printer and information on print settings that has been set when the printer is selected.

When the printer2has been set as the default printer of the OS21, in A06the general-purpose printing program41displays the print settings screen D2with the printer2already selected, as illustrated inFIG.4, and in A08starts up the auxiliary program42. In other words, the OS21automatically selects the printer2, and the general-purpose printing program41executes the process of A08based on information on the selected printer2. In this case, the user operation in A07is unnecessary.

Rather than the general-purpose printing program41displaying the print settings screen D2, the information app43may be configured to display the print settings screen D2. In this case, the information app43starts up the general-purpose printing program41in response to “Print” being selected in A03, acquires data for displaying the print settings screen D2from the general-purpose printing program41, and displays the print settings screen D2on the display13a. When the printer2has already been selected in the print settings screen D2or when the printer2is selected in A07, the information app43passes information on the selected printer2to the general-purpose printing program41. In this way, the general-purpose printing program41starts up the auxiliary program42supporting the printer2in A08.

Once the auxiliary program42is started up, in A11the auxiliary program42outputs a capabilities acquisition request to the OS21requesting capability information for the printer2. Upon receiving the capabilities acquisition request from the auxiliary program42, in A12the OS21transmits a capabilities transmission request to the printer2requesting capability information and receives capability information from the printer2. When the printer2receives a capabilities transmission request from the general-purpose printing program41of the OS21, the printer2transmits the capability information indicating the capabilities of the printer2to the general-purpose printing program41.

In A13the OS21transfers the capability information received from the printer2to the auxiliary program42. In A14the auxiliary program42stores the capability information received from the OS21in a prescribed area of the memory12that is accessible to the auxiliary program42. When capability information has already been stored in the memory12, the auxiliary program42overwrites the stored capability information with the new capability information.

The OS21communicates with the printer2according to the Internet Printing Protocol (hereinafter abbreviated “IPP”), for example. Note that rather than sending a request to the OS21, the auxiliary program42may acquire the capability information directly from the printer2using a management information base (abbreviated “MIB”), for example.

Capability information acquired from the printer2includes information on the possible parameters that can be specified in print settings, as well as information on the residual quantities of consumables, information on mounted trays, paper information on the paper loaded in each tray, and information on supported print resolutions, for example. The printer2may also have functions to process images based on incoming print jobs and to execute a print based on the processed data. For example, the printer2may have functions to perform multiple page printing such as N-in-1 printing, composite printing with watermarks or the like, and economic printing for saving colorant. When the printer2possesses image processing functions that can be applied, the printer2may pass information on these functions to the OS21as capability information.

In A15the auxiliary program42further requests the printer2for a status notification and acquires the status information31from the printer2in response. The auxiliary program42acquires the status of the printer2based on the status information31received from the printer2. The request of the status information31transmitted to the printer2is an example of the status transmission request of the present disclosure. The process of A15is an example of the (a) acquiring of the present disclosure.

Note that the printer2may have two or more statuses at the same time. In such cases, the printer2transmits all statuses in the status information31. In other words, the status information31that the auxiliary program42acquires in A15may include information indicating a plurality of statuses.

The status information31may also be included in the capability information. In this case, the auxiliary program42can acquire the status information31from the capability information received in A13. In this case, the process of A11and A12is an example of the (a) acquiring of the present disclosure. When the status information31is included in the capability information, the auxiliary program42need not issue the request in A15. Further, rather than directly requesting the status information31from the printer2, the auxiliary program42may request the OS21to acquire the status information31by issuing a separate request from the request for capability information.

The process of acquiring the status information31is simpler when the auxiliary program42acquires the status information31directly from the printer2than when the auxiliary program42acquires the status information31together with the capability information since the auxiliary program42need not extract the status information31from the capability information in the former case. Further, since the auxiliary program42can acquire the status information31at a timing different from the timing for acquiring the capability information, the auxiliary program42has more flexibility in the timing at which the status information31is acquired. By contrast, when the general-purpose printing program41is requested to acquire the status information31from the printer2together with the capability information, the processing load on the PC1for communicating with the printer2is less than if the status information31were acquired separately from the capability information.

In A21the auxiliary program42executes a notification data generation process based on the status information31acquired in A15. In the notification data generation process, the auxiliary program42generates notification data representing a notification image to be displayed in the notification area52of the print settings screen D2. Notification images to be displayed in the notification area52may include one or a combination of text, a still image, a video, and an object having a link with an embedded URL, for example. The object may be displayed in the form of text, a button, or a banner. This notification data generation process will be described later in greater detail.

In A22the auxiliary program42transfers display information including the generated notification data and information on values of print settings based on the capability information to the general-purpose printing program41and subsequently ends the process. In A23the general-purpose printing program41displays a notification image in the notification area52of the print settings screen D2displayed on the display13abased on the display information received from the auxiliary program42. In addition to displaying the notification image in the notification area52, in A23the general-purpose printing program41displays information in the print settings area53indicating initial values of the print settings based on the capability information of the printer2. The process of A22is an example of the (c) transferring of the present disclosure. Note that when the information app43is configured to display the print settings screen D2, the information app43may receive the notification data in A22and display the notification image in the notification area in A23.

FIG.4illustrates one example of a print settings screen D2that includes a single notification area52, but the arrangement, shape, size, number, and the like of the notification areas52is not limited to this example. The auxiliary program42may acquire information on the notification area52from the general-purpose printing program41and may set the notification data to be displayed in the notification area52based on the acquired information. When, for example, there are multiple layouts in which the notification area52can be displayed and the auxiliary program42can specify the display location, the auxiliary program42may transfer notification data that includes information specifying this display location to the general-purpose printing program41. Further, when the size of the notification area52can be selected, the auxiliary program42may transfer information specifying this size to the general-purpose printing program41.

Next, steps in the notification data generation process executed in A21will be described with reference to the flowchart inFIG.5. The CPU11of the PC1executes this notification data generation process based on the description in the auxiliary program42.

In S101at the beginning of the notification data generation process, the CPU11determines the status type of the printer2based on the status information31included in the capability information that the CPU11acquired in A13ofFIG.2. When the status information31includes a plurality of statuses, the CPU11targets each status sequentially to determine the status type.

When the target status is “error” (S101: ERROR), in S103the CPU11stores error information in a storage area accessible to the auxiliary program42. The CPU11stores such error information as the type of error (error type), detailed information of the error type, and the date and time the error occurred or the date and time the status information31was acquired in association with identification information for the printer2.

In S104the CPU11adds an error notification to the notification content. Here, an error notification is a message notifying the user of the error. In S105the CPU11determines on the basis of the detailed information included in the status information31whether the error is a type of error that the user can resolve. Specifically, the CPU11reaches a NO determination in S105when the error type is “failure.” The CPU11reaches a YES determination in S105when the error type is “paper jam,” “no paper,” “no colorant,” or “cover open,” for example.

When the CPU11determines that the error cannot be resolved by the user (S105: NO), in S106the CPU11adds contact information to the notification content specifying the contact person for a service call. However, when the CPU11determines that the error can be resolved by the user (S105: YES), in S107the CPU11adds guidance information to the notification content indicating the procedure for resolving the error. Providing this guidance information for resolving the error increases the possibility of the user resolving the error quickly.

The auxiliary program42is provided with an error notification message for each type of error. In S104the CPU11selects the message to be used for notifying the user based on the type of error. The error notification, contact information, guidance information, and the like may be included in the status information31, may be stored in the auxiliary program42, or may be acquired from the printer2, a server, or other external device. The guidance information and contact information may be configured as objects having a link with an embedded URL to a web page.

FIG.6illustrates an example of a notification image that includes an error notification and guidance information. The notification image in this example is used when a “no paper” error has occurred and includes a button61having a link with an embedded URL to a web page showing how to load the paper. When the CPU11displays a notification image including an error notification in the notification area52of the print settings screen D2, the user can easily understand through the print settings screen D2that an error has occurred in the printer2.

When the CPU11determines in S101that the target status is “warning” (S101: WARNING), in S111the CPU11adds a warning notification, which is a message for warning the user, and detailed information about the warning to the notification content. In this case, the detailed information is information specifying the type of warning (waning type), the method of handling the warning, and the like, for example.

When the CPU11determines that the target status is neither “error” nor “warning” (S101: OTHER), in S121the CPU11adds a status notification constituting a message for notifying the user of the status to the notification content.FIG.7illustrates an example of a notification image that includes a status notification. When the CPU11displays a notification image that includes a status notification in the notification area52of the print settings screen D2, the user can easily understand the status of the printer2through the print settings screen D2.

After completing any of the processes in S106, S107, S111, and S121, in S131the CPU11determines whether the acquired status information31includes another status. When there remain any statuses for which the determination of S101has not been performed (S131: YES), the CPU11returns to S101and sets the next status as the determination target.

Once the CPU11determines that all statuses in the status information31have been processed (S131: NO), in S132the CPU11generates notification data representing the image to be displayed in the notification area52based on the added notification content. The process of S132is an example of the (b) generating of the present disclosure.

When the status information31includes a plurality of statuses and the CPU11has added information for a plurality of notifications to the notification content, the CPU11gives precedence to information on statuses with higher priority over information on statuses with lower priority according to an order of priority stored in the auxiliary program42, for example.FIG.8illustrates an example of the order of priority with failures having the highest priority, followed by error states that prevent printing from being performed. Warnings have a lower priority than errors.

For prioritization, notifications with higher priority may be displayed at the top or initial position in the notification area52, displayed in large characters, displayed in color, displayed with added borderlines around the notification, or displayed in a flashing state, for example. The CPU11may generate notification data showing all added notification content arranged with one notification after another in a single image or may generate notification data representing an animated image in which notification content is changed in sequence.

When information on more than one status has been added to the notification content, the CPU11need not notify the user of information on statuses with low priority. Further, if no notification content has been added due to an inability to acquire the status or some other reason, the CPU11may generate notification data in which the notification area52is blank or may generate notification data showing a prepared image, such as the logo of or latest information on the vender.

In S133the CPU11determines whether the current status information31contains a status indicating an error. When the status information31includes no error statuses (S133: NO), in S134the CPU11deletes any error information that has been stored in the memory12. After completing the process in S134or when the CPU11determines in S133that the status information31does not include a status indicating an error (S133: YES), the CPU11ends the notification data generation process and returns to the process in the sequence chart ofFIG.2.

As indicated in A22ofFIG.2, the auxiliary program42passes the notification data generated in S132to the general-purpose printing program41. As a result, a notification image based on the notification data is displayed in the notification area52of the print settings screen D2in A23. In other words, an image is displayed in the print settings screen D2based on notification data generated by the auxiliary program42.

Instead of generating notification data and passing the notification data to the general-purpose printing program41, the auxiliary program42itself can display the information. However, this would require that the auxiliary program42display a screen separate from the print settings screen D2, complicating the display and potentially causing the user stress. Having the general-purpose printing program41of the OS21display this information in the print settings screen D2simplifies the display and avoids causing the user stress.

While the print settings screen D2illustrated inFIG.4is displayed, the user may performs operations to modify print settings in the print settings area53of the print settings screen D2. Next, the procedure performed by each program when the general-purpose printing program41receives commands to modify print settings in the print settings area53will be described with reference to the sequence chart inFIG.9. As described above, the print settings screen D2can receive commands to modify print settings through operations in the print settings area53and commands to execute a print through an operation on the Print button SW3.

In B01the user performs operations to modify print settings. On the basis of the modification commands, in B02the general-purpose printing program41modifies the content displayed in the print settings area53of the print settings screen D2. When print settings have been modified, the general-purpose printing program41also starts up the auxiliary program42and issues a request to the auxiliary program42to perform a process corresponding to the modified print settings. In B03the auxiliary program42receives information on the modified print settings from the general-purpose printing program41.

In response to being started up due to a change in the print settings, in B04the auxiliary program42determines whether error information is stored in the memory12. Error information is information that has been stored in the memory12in S103of the notification data generation process described above and indicates that the previously acquired status information31has contained an error.

When the auxiliary program42determines that error information is stored in the memory12(alt: ERROR INFORMATION EXISTS), in B12the auxiliary program42issues a request to the printer2for the status information31and acquires the status information31from the printer2. The auxiliary program42acquires the current status of the printer2based on this status information31. The process in B12is identical to the process in A15described above. The process of B12is an example of the (a) acquiring of the present disclosure. Note that the auxiliary program42may acquire the status information31via the OS21in B12.

In B14the auxiliary program42repeats the notification data generation process illustrated inFIG.5based on the current status. In the notification data generation process performed in B14, the process S132is also an example of the (b) generating of the present disclosure. In B15the auxiliary program42transfers the notification data generated in the notification data generation process of B14to the general-purpose printing program41, and subsequently ends the process. The process of B15is an example of the (c) transferring of the present disclosure.

In B21the general-purpose printing program41updates the notification image displayed in the notification area52of the print settings screen D2based on the notification data received from the auxiliary program42. The general-purpose printing program41can still accept modifications to print settings through user operations in the updated print settings screen D2displayed in B21. When commands to modify print settings are received in the newly displayed print settings screen D2, the general-purpose printing program41repeats the procedure in the sequence chart ofFIG.9.

In a case where notification data has not been received from the auxiliary program42, the general-purpose printing program41need not change the display in the notification area52or may leave the notification area52blank when updating the display of the print settings screen D2. In a case where the display is not changed, the auxiliary program42need not transfer notification data to the general-purpose printing program41in B15when the notification data generated in B15is the same as the notification data generated in the notification data generation process of A21. Alternatively, in a case where the same error has occurred again, the auxiliary program42may transfer notification data to the general-purpose printing program41for displaying the error with more emphasis than before.

On the other hand, when the auxiliary program42determines in B04that no error information is stored in the memory12, the auxiliary program42does not execute the process from B12to B21and simply notifies the general-purpose printing program41that the process has ended. In this case, the notification image displayed in the notification area52is left unchanged. Since the auxiliary program42does not reacquire the status information31when no error has occurred, the processing load on the auxiliary program42is less.

Note that the auxiliary program42may reacquire the status information31and re-execute the notification data generation process even when no error data is stored. However, the processing load on the auxiliary program42for communicating with the printer2is increased when the auxiliary program42acquires the status information31each time print settings are modified. By executing the process in B12through B21only in the event of error conditions that prevent printing, the PC1can avoid a large increase in processing load while notifying the user of the latest status in the notification area52of the print settings screen D2. In other words, since the new status is displayed after an error has been resolved, the user can acquire information on the latest status prior to issuing a commando to execute a print (print execution command).

Next, the procedure performed by each program when the OS21receives the print execution command through a user operation on the Print button SW3in the print settings screen D2illustrated inFIG.4will be described with reference to the sequence chart inFIG.10. The user may directly input the print execution command in the general-purpose printing program41or may input the print execution command in the information app43, and the information app43may output a print command to the general-purpose printing program41.

When the general-purpose printing program41receives the print execution command from the user in C01, in C02the general-purpose printing program41starts up the auxiliary program42and issues a request to the auxiliary program42to perform a process corresponding to the print execution command. In C02the auxiliary program42also receives information from the general-purpose printing program41indicating the print settings that have been set at the time of receipt of the print execution command. The general-purpose printing program41may also pass image data representing the image to be printed to the auxiliary program42. The general-purpose printing program41also closes the currently displayed print settings screen D2, thereby making the information screen of the information app43active.

Upon receiving the print command, in C03the auxiliary program42acquires capability information for the printer2that has been stored in A14ofFIG.2. The auxiliary program42may also communicate with the printer2in order to acquire the capability information directly in C03. The capability information includes information on image processing available on the printer2, for example. In C04the auxiliary program42checks the information on the print settings received in C02on the basis of the capability information acquired in C03. For example, the auxiliary program42confirms whether there are any discrepancies between the print settings and the capabilities of the printer2. In C05the auxiliary program42transfers information on the print settings based on the confirmation results to the general-purpose printing program41.

The auxiliary program42may also modify the print settings based on the confirmation results of C04before transferring the settings in C05. For example, when the print settings received in C02include information on image processing that is more preferably performed on the printer2than by the general-purpose printing program41or auxiliary program42, the auxiliary program42may modify the print settings to exclude that image processing. In such cases, the auxiliary program42may store information on the excluded print settings so that these print settings can be transferred to the printer2in a later step and in C05may transfer information on the modified print settings to the general-purpose printing program41.

The auxiliary program42may also reacquire the status information31in C03when error information is stored in the memory12. When the newly acquired status information31contains an error, the auxiliary program42may notify the user of the error before advancing to C05. Here, the auxiliary program42displays a popup window specifying the error on the display13a, for example.

In C11the general-purpose printing program41uses the print settings received from the auxiliary program42to generate intermediate image data by converting the format of image data for the image being printed to the format of the intermediate image data and transfers this intermediate image data to the auxiliary program42. Since the information app43includes image data of various types, the general-purpose printing program41converts the image data to be printed to intermediate image data that is suitable for generating print data. When the image data to be printed is already suitable for generating print data, the general-purpose printing program41may skip the process to generate intermediate image data and may use the image data itself as the intermediate image data. One example of intermediate image data is XPS data.

In C12the auxiliary program42executes rasterization based on the intermediate image data received in Cl to generate print data representing the image to be printed. The print data generated in C12is in a format that the printer2can use for printing, such as page description language (abbreviated “PDL”) data specific to the model of printer2.

Since the auxiliary program42is designed to support the printer2, the auxiliary program42has a higher degree of freedom in rasterization than the general-purpose printing program41and can more likely generate print data suited for printing on the printer2. Note that the print data generated by the auxiliary program42may be of a format that can be used for printing on printer models other than the model of the printer2.

In C13the auxiliary program42transmits the print data generated in C12to the printer2together with a print command instructing the printer2to execute a print. The process of C13is an example of the (f) transmitting of the present disclosure. When the auxiliary program42has determined in C04that a printing process should be executed on the printer2, the auxiliary program42generates a print command that includes information for this process. The auxiliary program42may also notify the general-purpose printing program41when transmission of the print data is complete.

Upon receiving the print data and print command, in C15the printer2prints an image of the print data based on the received print command, thereby generating printed matter.

The print data may be generated by the general-purpose printing program41rather than the auxiliary program42. For example, the auxiliary program42may transfer the intermediate image data received in C11and information on executing a print to the general-purpose printing program41, and the general-purpose printing program41may generate print data by rasterizing the intermediate image data. In this case, the general-purpose printing program41transfers the generated print data to the auxiliary program42. Upon receiving print data from the general-purpose printing program41, the auxiliary program42transmits the print data to the printer2together with a print command instructing the printer2to execute a print.

Print data generated by the general-purpose printing program41is data in an image format that various printers can use for printing, such as PWG Raster data or PDF data. Performing rasterization on the general-purpose printing program41reduces the processing load on the auxiliary program42, thereby avoiding an increase in processing time and reducing the size of the auxiliary program42.

The general-purpose printing program41may also transmit the print data and print command to the printer2. That is, the auxiliary program42may transfer the generated print data to the general-purpose printing program41to be sent from the PC1with the printer2as the destination. In this case, the general-purpose printing program41transmits the print data and the like received from the auxiliary program42to the printer2. In this case, the process that the auxiliary program42transfer the print data and the like to the general-purpose printing program41is an example of the (f) transmitting of the present disclosure.

As described above, the auxiliary program42of the present embodiment acquires status information31for a printer2when the printer2is selected and transfers notification data based on the acquired status information31to the general-purpose printing program41. As a result, the general-purpose printing program41displays an image based on the notification data in the notification area52of the print settings screen D2. Hence, a PC1employing a general-purpose printing program41that is standard in the OS21displays information related to the status of the printer2before a print command is given. Accordingly, the user can learn the status of the printer2before issuing a print command.

Further, in a case where the previous status has included an error when the auxiliary program42of the present embodiment is started up in response to user commands to modify the print settings, the auxiliary program42reacquires the status information and updates the notification data for display in the notification area52so that the user can learn the latest status.

There may also be limitations on information that can be displayed in the notification area52of the print settings screen D2. When a plurality of statuses is acquired and different statuses are provided with an order of priority, the auxiliary program42of the present embodiment gives precedence to information on statuses having a higher priority, thereby reducing the possibility of important or urgent notifications going unnoticed among the other notifications.

The embodiments disclosed in this specification are merely examples and are not intended to limit the present invention in any way. Therefore, it would be apparent to those skilled in the art that various improvements and modifications may be made to the technology disclosed in this specification without departing from the spirit of the disclosure. For example, the device connected to the PC1is not limited to a printer, but may be a multifunction peripheral, a copier, a fax machine, or any other device having a printing function. Further, the number of devices connected to the PC1may be any number of two or greater and is not limited to the example illustrated in the drawings.

The notification images illustrated inFIGS.6and7are merely examples, and the present disclosure is not limited to these sample images. Further, any of various wordings, object shapes, backgrounds, and the like may be displayed in the notification image.

In the embodiment described above, the auxiliary program42reacquires status information in B12ofFIG.9when determining in B04that the previous status has contained an error. However, the auxiliary program42need not reacquire the status information. In other words, the determination in B04ofFIG.9and the process from B12through B21may be omitted. Even if the user is only notified of the error when the printer is selected, the user will likely take steps to resolve that error. By not having the auxiliary program42reacquire status information, the PC1can shorten the preparation time for printing. On the other hand, reacquiring status information and notifying the user allows the user to know the latest information.

The general-purpose printing program41may also start up the auxiliary program42when the OS21changes the default printer from another printer to the printer2in response to the user performing an operation after the general-purpose printing program41displays the print settings screen D2. In this case, the auxiliary program42may execute the notification data generation process and transfer notification data to the general-purpose printing program41as when the printer2is selected in the above embodiment.

In the embodiment described above, only printing operations have been described in detail as the operations of the auxiliary program42, but the auxiliary program42may have other roles. Further, the program that executes the processes described in the embodiment is not limited to the auxiliary program42but may be another program that receives instructions from the OS21or the general-purpose printing program41when printing is performed using the general-purpose printing program41. For example, a print workflow application program having specifications published by Microsoft Corporation may be used as the program.

The execution timing of the auxiliary program42is not limited to the examples in the embodiment. For example, the auxiliary program42may be executed in response to execution instructions received directly from the OS21. Alternatively, the auxiliary program42may be a resident program, in which case the auxiliary program42may perform the operations described above upon receiving an execution command.

In any of the sequence charts and flowcharts disclosed in the embodiments, the plurality of processes that make up any of the plurality of steps may be executed in parallel, or the order in which the processes are performed may be modified in any way that does not produce any inconsistencies in the processes.

The processes disclosed in the embodiment may be executed by a single CPU, a plurality of CPUs, an ASIC or other hardware, or a combination of these components. Further, the processes disclosed in the embodiments may be achieved through a storage medium that stores the programs used to implement those processes or according to any of various other methods or formats.