Support Program

JP2026144354APending Publication Date: 2026-09-09BROTHER KOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025031599
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-28
Publication Date
2026-09-09

AI Technical Summary

Benefits of technology

【0009】 本明細書に開示される技術によれば、OS標準の印刷機能とサポートプログラムとを連携させて、仮想プリンタを有効に活用することが可能な技術が実現される。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026144354000001_ABST
    Figure 2026144354000001_ABST
Patent Text Reader

Abstract

To provide technology that enables effective use of virtual printers by linking the OS's standard printing function with support programs. [Solution] The PC1 is provided with a printer queue for a virtual printer associated with an auxiliary program 42 by the OS 21. The auxiliary program 42 is capable of identifying the actual printer to be controlled in the virtual printer. Furthermore, when a predetermined execution instruction is received from the OS 21, if the actual printer to be controlled has been identified, the auxiliary program 42 executes a first process corresponding to the predetermined execution instruction, which is based on the fact that the actual printer to be controlled has been identified. If the actual printer to be controlled has not been identified, the auxiliary program 42 executes a second process different from the first process, which is based on the fact that the actual printer to be controlled has not been identified.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The technical field disclosed in the present specification relates to a support program that supports control of a printer.

Background Art

[0002] In recent years, a technology for controlling a printer by an OS-standard printing function that forms part of an operating system (OS), without using a printer driver provided by a printer vendor, has been put into practical use. In this technology, when the OS detects a printer, it associates the printer with an OS-standard general-purpose printing program, and thereafter, when a print instruction for the printer is received, the OS-standard general-purpose printing program generates print data without using the printer driver provided by the printer vendor, thereby enabling printing by the OS-standard general-purpose printing program.

[0003] As a document disclosing a technology for controlling a printer by an OS-standard printing function without using a printer driver, for example, Patent Document 1 is known. Patent Document 1 discloses an information processing apparatus connected to a printer that is not compatible with an OS-standard driverless printing function, wherein the information processing apparatus activates a print server program registered as a virtual printer, the print server program accepts a print job specifying itself as an output destination, generates print data compatible with the printer, and transmits the print data to the printer.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of Invention

Problem to be Solved by the Invention

[0005] In configurations that use the OS's standard printing function, it may be possible to install a support program that performs processing based on instructions from the OS in conjunction with the OS's standard printing function. Because the support program works in conjunction with the OS, it can be expected to extend the OS's standard printing function. In configurations with such a support program, effective use of virtual printers for printing is desirable. [Means for solving the problem]

[0006] The support program designed to address the aforementioned issues is: A support program that is executable by the computer of the information processing device and supports a general-purpose printing program of the operating system of the information processing device, wherein the operating system of the information processing device can provide a printer queue for a virtual printer associated with the support program, and immediately after the printer queue for the virtual printer is provided, the actual printer to be controlled by the virtual printer has not been identified. To the aforementioned computer, It is possible to perform a specific process to identify the actual printer to be controlled in the virtual printer. The aforementioned computer further: When a predetermined execution instruction is received from the aforementioned operating system, If the actual printer to be controlled in the virtual printer is identified, the first process corresponding to the predetermined execution instruction is executed, which is based on the fact that the actual printer to be controlled has been identified. If the actual printer to be controlled in the virtual printer is not identified, a second process different from the first process is executed, which is based on the fact that the actual printer to be controlled is not identified. It is configured in this way.

[0007] The support program disclosed herein, when given a predetermined execution instruction while the actual printer to be controlled has not yet been identified, executes a second process based on the fact that the actual printer to be controlled has not been identified, because the first process cannot be executed while the actual printer to be controlled is still unidentified. This allows the information processing device to execute processes appropriate to both the state in which the actual printer to be controlled is identified and the state in which it is not identified, respectively.

[0008] The control method, computer program, and computer-readable storage medium for storing the computer program used to realize the functions of the above-mentioned device are also novel and useful. [Effects of the Invention]

[0009] The technology disclosed herein enables the effective use of virtual printers by coordinating the OS standard printing function with support programs. [Brief explanation of the drawing]

[0010] [Figure 1] This block diagram shows an overview of the electrical configuration of a PC. [Figure 2] This is a sequence diagram showing an example of the installation procedure. [Figure 3] This diagram shows an example of the printer list screen displayed by the operating system. [Figure 4] This sequence diagram shows an example of the procedure for selecting a virtual printer from the operating system. [Figure 5] This is a flowchart showing the procedure for obtaining the status. [Figure 6] This is a flowchart showing the procedure for obtaining the name. [Figure 7] This diagram shows examples of how the display looks when a virtual printer is selected on the printer list screen. (A) is an example of how the display looks when a physical printer is identified, and (B) is an example of how the display looks when a physical printer is not identified. [Figure 8]It is a sequence diagram showing an example of a procedure when selecting a virtual printer from an editing application. [Figure 9] It is an explanatory diagram showing an example of a print setting screen. [Figure 10] It is a flowchart showing the procedure of print setting acquisition processing. [Figure 11] It is a flowchart showing the procedure of detailed setting processing. [Figure 12] It is an explanatory diagram showing an example of a detailed setting screen. [Figure 13] It is a sequence diagram showing an example of a print execution procedure. [Figure 14] It is a flowchart showing the procedure of device identification processing. [Figure 15] It is an explanatory diagram showing an example of an error notification screen. [Figure 16] It is a diagram showing an application example of a printer list screen displayed by an OS. DETAILED DESCRIPTION OF EMBODIMENTS

[0011] Hereinafter, a personal computer (hereinafter referred to as "PC") using a support program according to an embodiment will be described in detail with reference to the accompanying drawings. This specification discloses a support program executed on a PC.

[0012] [Configuration of PC] As shown in Fig. 1, the PC 1 of the present embodiment includes a controller 10 including a CPU 11 and a memory 12. The PC 1 is an example of an information processing apparatus. The CPU 11 is an example of a computer. The PC 1 further includes a user interface (hereinafter referred to as "user IF") 13 and a communication interface (hereinafter referred to as "communication IF") 14, which are electrically connected to the controller 10. Note that the controller 10 in Fig. 1 is a general term collectively referring to hardware and software used for controlling the PC 1, and does not necessarily represent a single piece of hardware actually present in the PC 1.

[0013] The CPU 11 of PC1 executes various processes according to programs read from memory 12 and based on user operations. Memory 12 stores various programs and data. Memory 12 is also used as a workspace when executing various programs. The buffer provided by the CPU 11 is also an example of memory 12. Note that the example of memory 12 is not limited to ROM, RAM, HDD, etc., built into PC1, but may also be a storage medium that the CPU 11 can read and write to, such as a recording medium such as a CD-ROM or DVD-ROM.

[0014] The user interface 13 includes a display 13a, which is hardware that displays a screen for informing the user of information, and hardware that accepts user operations. The user interface 13 may also include a combination of a display 13a capable of displaying information and a mouse or keyboard with input acceptance functionality, or it may include a touch panel that has the functionality of the display 13a and input acceptance functionality.

[0015] The communication interface 14 includes hardware for communicating with external devices. The communication standards for the communication interface 14 include Ethernet®, Wi-Fi®, and USB. PC1 may be able to connect to the internet via the communication interface 14. PC1 may have multiple communication interfaces 14 that support multiple communication standards.

[0016] As shown in Figure 1, the memory 12 stores various programs and data, including an operating system (hereinafter referred to as "OS") 21 containing a general-purpose printing program 41, an auxiliary program 42, and an editing application 43. The auxiliary program 42 is an example of a support program.

[0017] OS21 is a multitasking operating system that can process multiple tasks in parallel by managing and switching between them. Examples of OS21 include Windows®, macOS®, Linux®, iOS®, and Android®.

[0018] OS21 includes a general-purpose printing program 41 and a printer queue 22. The general-purpose printing program 41 is a standard OS program provided by the OS21 vendor and included as part of OS21. For example, it is packaged with OS21 and installed on PC1. In other words, PC1 is equipped with OS21 which includes the general-purpose printing program 41. It can also be said that OS21 has the OS standard general-purpose printing program 41. The general-purpose printing program 41 is not configured to use printer drivers specific to each printer. OS21 allows registration of two types of printer queues 22: a printer queue 22a for actual printers, which corresponds to real printers, and a printer queue 22b for virtual printers, which corresponds to virtual printers. The printer queue 22 is also called a print queue.

[0019] The general-purpose printing program 41 is a program that has the function of executing printing on multiple types of printers provided by multiple vendors, based on user instructions. The general-purpose printing program 41 provides general-purpose functions that enable printing on many printers. The general-purpose printing program 41 can communicate with various printers via OS21, for example, through communication according to IPP (Internet Printing Protocol). Unlike printer drivers specific to each printer, the general-purpose printing program 41 does not provide functions that are unique to each printer or printer driver, especially functions that require complex processing. An example of a general-purpose printing program 41 is the IPP Class Driver provided by Microsoft.

[0020] The general-purpose printing program 41 is a program that, based on user instructions, receives image data designated as the target for printing in print instructions output from various application programs, and includes a function to generate intermediate data based on that image data. The intermediate data is, for example, XPS data. The general-purpose printing program 41 further has a function to generate print data in a format that can be used for printing on various printers, based on the intermediate data. The print data is, for example, PWGRaster data or PDF data. The general-purpose printing program 41 also has a function to send the generated print data to the printer designated as the device to execute the print job, via the communication function of the OS 21.

[0021] The auxiliary program 42 is a program or group of programs that performs processing based on instructions from the OS 21 in conjunction with the processing of the general-purpose printing program 41, and is an application program that supports the control of the target hardware. In this form, the auxiliary program 42 corresponds to, for example, the model of the printer connected to the PC 1, and is provided, for example, by the printer vendor. The general-purpose printing program 41 starts the auxiliary program corresponding to the printer when a predetermined printer is selected as the device to perform printing, when it receives instructions for detailed print settings while the predetermined printer is selected, when it receives instructions to perform printing on the predetermined printer, etc. The auxiliary program 42 is called, for example, a print support application (abbreviated as PSA) or a hardware support application (abbreviated as HSA).

[0022] The auxiliary program 42 may be a combination of multiple programs, each accepting an execution command, or it may be a single program capable of executing different processes depending on the command. Furthermore, the auxiliary program may be a program provided by the printer vendor for each type of printer. For example, separate auxiliary programs may be provided for inkjet printers and laser printers. In addition to being limited to each type of printer, auxiliary programs may also be provided for each printer model or series of printer models.

[0023] For example, when a new printer is connected to PC1 and detected by PC1, the OS21 of PC1 can download the appropriate auxiliary program 42 from the printer vendor's server or a website specified by OS21, depending on the type and model of the detected printer, and install it into PC1. OS21 associates the identification information of the installed auxiliary program 42 with the printer information of the newly connected printer and stores it in memory 12. Note that the procedure for installing the auxiliary program 42 is not limited to when the printer is detected by the PC; for example, an administrator can distribute a file for installing the auxiliary program 42 to the PC, and the auxiliary program 42 can be installed using that file.

[0024] The editing application 43 is, for example, a program for creating and editing image data and document data. The editing application 43 may be, for example, Microsoft Word or PowerPoint, or a program provided by various printer vendors. The editing application 43 can receive, for example, printer selection instructions and print execution instructions to the printer via the user interface 13. The editing application 43 is not limited to a program for creating and editing data, but may also be a program that has the function of receiving instructions to display or print various types of information such as map information and web pages, according to the user's request.

[0025] PC1 can connect to various printers that have both printing and communication capabilities. These printers include those that support IPP, a communication standard used by the general-purpose printing program 41, and those that do not. When a printer with printing capabilities that can perform IPP-based communication is detected and connected by PC1, OS21 is configured to automatically create a printer queue 22a for that printer and associate it with the corresponding auxiliary program 42. Therefore, the general-purpose printing program 41 can then accept the selection of the connected IPP-compatible printer as the printer to be used for printing.

[0026] On the other hand, if a printer that does not support IPP is connected to PC1, even if that printer has printing capabilities, it will not be able to receive print commands sent via IPP from the general-purpose printing program 41. Therefore, OS21 does not automatically create a printer queue 22a for that printer or associate it with the auxiliary program 42.

[0027] As shown in Figure 1, PC1 in this configuration is connected to printers 31, 32, and 33, each having both printing and communication functions. Note that printers connected to PC1 may also have scanning, copying, faxing, and email functions in addition to printing functions, and in this specification, printers with these functions are collectively referred to as "printers." Printer 32 in this configuration is, for example, an incompatible printer that does not support IPP, while printers 31 and 33 are, for example, IPP-compatible printers. Examples of printers 32 that do not support IPP include a label printer specialized in printing on label paper, a USB-only printer with only USB communication functionality, and an older model printer with only older communication functionality.

[0028] [PC control] Next, the procedures for various processes that cause the printer to execute printing based on a print command to the general-purpose printing program 41 in this configuration of PC1 will be described. Note that, in this configuration, processes other than user operations basically refer to the processing of the CPU 11 according to instructions written in programs such as the auxiliary program 42. In this specification, for convenience, the various processes performed by the controller 10 or CPU 11 according to programs such as the auxiliary program 42, the general-purpose printing program 41, and the OS 21 may be described as if each program independently performs these processes. The processing by the CPU 11 also includes hardware control using the OS 21 API. In this specification, a detailed description of the OS 21 is omitted, and the operation of each program is explained. Also, "acquisition" is used as a concept that does not necessarily require a request.

[0029] [Installation instructions for auxiliary programs for virtual printers] First, the installation procedure for installing the auxiliary program 42 for the virtual printer on PC1 will be explained with reference to the sequence diagram in Figure 2.

[0030] To install the auxiliary program 42 for the virtual printer, the administrator distributes a setup file for installing the auxiliary program 42 to PC1 (A00). PC1, upon receiving the setup file, accepts a command to open the setup file. Alternatively, the setup file may be configured to open automatically upon distribution. OS21 installs the auxiliary program 42 to PC1 based on the distributed setup file (A01). Alternatively, OS21 may install the auxiliary program 42 to PC1 by accessing an app store on the internet and downloading the auxiliary program 42 registered in the app store.

[0031] When the auxiliary program 42 is launched after installation, it instructs the general-purpose printing program 41 to register the virtual printer (A02). The auxiliary program 42 passes to the general-purpose printing program 41 information on each registration item required for virtual printer registration, as well as information on the virtual printer registration instruction. The registration items include, for example, the supported file formats and the display name of the virtual printer.

[0032] Based on the instructions in A02, the general-purpose printing program 41 creates a printer queue 22b for the virtual printer as shown in Figure 1, associates it with the information passed from the auxiliary program 42, and stores it in memory 12 (A03). After completing the process in A03, the general-purpose printing program 41 notifies the auxiliary program 42 that the registration of the virtual printer is complete (A04).

[0033] This allows the general-purpose printing program 41 to accept the selection of a virtual printer as the printer to be controlled. When the general-purpose printing program 41 accepts a printer selection by the user in response to instructions from the editing application 43, for example, it displays a list of printers, including information on various printers compatible with IPP connected to PC1, as well as the display name of the virtual printer registered in response to the instructions from A02.

[0034] The auxiliary program 42 creates a printer queue 22b for the virtual printer during installation, allowing the user to select a virtual printer immediately after installation. However, immediately after installation, the virtual printer only has a display name registered and is not associated with an actual printer. In other words, immediately after installing the auxiliary program 42 for the virtual printer, the actual printer to be controlled by the virtual printer is not identified. Therefore, in order to communicate with the actual printer, a process is required to identify the actual printer to be controlled. The process for identifying the actual printer will be described later.

[0035] Upon receiving notification A04, the auxiliary program 42 registers various events for the virtual printer with the general-purpose printing program 41 (A11). The general-purpose printing program 41 issues events for the virtual printer if the printer selected as the control target is a virtual printer, as described later. Each event for the virtual printer is a different type of event than when an existing printer compatible with IPP is selected, and includes information indicating that the selected printer is a virtual printer. Examples of events for the virtual printer include the virtual printer status event, the virtual printer name event, the virtual printer print settings event, the virtual printer UI event, and the virtual printer print event.

[0036] [Procedure for processing a virtual printer via an auxiliary program] Next, the processing procedure for the virtual printer via the auxiliary program 42 will be described for PC1. When the auxiliary program 42 is started based on a predetermined execution instruction from the operating system, it executes the processing corresponding to the predetermined execution instruction. The following describes the processing corresponding to each execution instruction when the predetermined execution instruction is a status request, a name request, a print settings request, a UI request, and a print execution request.

[0037] [Processing when a status request and a name request are received] First, let's explain how to handle status requests. Status requests are issued, for example, from OS21 to display various settings screens, including printer information, to user IF13.

[0038] Figure 3 shows the printer list screen 60, one of the settings screens displayed by OS21, which shows a list of printer queues registered in OS21. For example, as shown in Figure 1, if a printer queue 22a for a physical printer and a printer queue 22b for a virtual printer are registered in OS21, the printer list screen 60 will display the icon 61a and name 62a corresponding to the printer queue 22a for the physical printer, and the icon 61b and name 62b corresponding to the printer queue 22b for the virtual printer. Names 62a and 62b are, for example, display names registered when each printer queue is created. The printer list screen 60 is an example of a display screen. In this specification, the printer queue 22a for the physical printer is the printer queue for printer 31, and name 62a is "Physical Printer R". Also, the name 62b for the printer queue for the virtual printer is "Virtual Printer V". Note that the printer queues 22a for physical printers corresponding to printers 32 and 33 have not been created.

[0039] When an icon corresponding to a printer queue is operated on the printer list screen 60, detailed information about the printer queue corresponding to the operated icon is displayed. For example, when icon 61a, which corresponds to the printer queue 22a for actual printers, is operated, status information of the actual printer associated with the printer queue 22a for actual printers is displayed.

[0040] Furthermore, when the icon 61b corresponding to the printer queue 22b for the virtual printer is operated, the procedure is as shown in the sequence diagram in Figure 4. First, when the user operates the icon 61b corresponding to the printer queue 22b for the virtual printer, that is, when the printer queue 22b for the virtual printer is selected on the printer list screen 60 (B01), a status request is passed from the OS 21 to the general-purpose printing program 41, and the status request is passed from the general-purpose printing program 41 to the auxiliary program 42 (B02). In B02, for example, the general-purpose printing program 41 starts the auxiliary program 42 and issues a virtual printer status event registered in A11 of Figure 2 as a status request corresponding to the virtual printer. The virtual printer status event is an example of a predetermined execution instruction. In this specification, the selection of the printer queue 22b for the virtual printer may be referred to as the selection of a virtual printer.

[0041] When the auxiliary program 42 is activated due to a virtual printer status event, it executes a status acquisition process (B03). Figure 5 shows the procedure for the status acquisition process in B03.

[0042] In the status acquisition process, the auxiliary program 42 first determines whether the actual printer to be controlled in the virtual printer has been identified (S01). If the actual printer to be controlled has been identified (S01:YES), the auxiliary program 42 determines whether it is in an online state where it can communicate with the identified actual printer (S02). If it is in an online state (S02:YES), the auxiliary program 42 obtains status information from the identified actual printer (S03) and responds with the obtained status information (S06). The status information to be responded with may include capability information of the identified actual printer. If it is not in an online state, that is, if it is in an offline state where it cannot communicate with the identified actual printer (S02:NO), the auxiliary program 42 generates status information indicating the offline state (S04) and responds with the generated status information (S06). S03 and S04 are examples of the first process.

[0043] On the other hand, if the actual printer to be controlled has not been identified (S01:NO), the auxiliary program 42 generates error information as status information that is different from the status information indicating an offline state, and indicates that the actual printer is in an unspecified state (S05), and responds with the generated status information (S06). In other words, if the actual printer to be controlled has not been identified, the auxiliary program 42 responds with error information. S05 is an example of the second process.

[0044] Returning to the explanation of Figure 4, after the status acquisition process, the status information returned from the auxiliary program 42 is passed to the OS 21 via the general-purpose printing program 41 (B04). Based on the received status information, the OS 21 displays detailed information of the virtual printer's printer queue 22b on the printer list screen 60.

[0045] Specifically, if the status information passed is not error information but information indicating the status (Alt: status), a name request is passed from OS21 to the general-purpose printing program 41, and from the general-purpose printing program 41 to the auxiliary program 42 (B05). In B05, for example, the general-purpose printing program 41 issues a virtual printer name event registered in A11 of Figure 2 as a name request corresponding to the virtual printer. The virtual printer name event is an example of a predetermined execution instruction.

[0046] When the auxiliary program 42 is activated by a virtual printer name event, it executes a name acquisition process to obtain an identifier name that identifies the printer (B06). Figure 6 shows the procedure for the name acquisition process in B06.

[0047] In the name acquisition process, the auxiliary program 42 first determines whether the actual printer to be controlled in the virtual printer has been identified (S31). If the actual printer to be controlled has been identified (S31: YES), the auxiliary program 42 acquires the identification name of the identified actual printer (S32) and responds with the acquired identification name (S34). The auxiliary program 42 may cache the identification name acquired from the actual printer when identifying the actual printer and respond with the cached identification name when requested by the OS 21, or it may acquire the identification name from the actual printer when requested by the OS 21 and respond with the acquired identification name. The identification name may be, for example, the model name. Alternatively, if the actual printer allows users to register a printer name, it may be that registered name. S32 is an example of the first process.

[0048] On the other hand, if the actual printer to be controlled has not been identified (S31: NO), the auxiliary program 42 obtains a predetermined temporary name for the virtual printer (S33) and responds with the obtained name as the identification name (S34). The temporary name could be, for example, the printer manufacturer's name or a name such as "Printer Unknown". In S33, instead of a temporary name for the virtual printer, error information indicating that the actual printer is unidentified may be obtained and that error information may be responded to. S33 is an example of the second process, and the display name of the virtual printer is an example of name information.

[0049] Even if the actual printer has been identified (S31:YES), if it is offline and the identification name is not cached, the auxiliary program 42 cannot obtain the identification name, so it should proceed to S33.

[0050] Furthermore, when a virtual printer status event occurs, the auxiliary program 42 may respond by including an identification name in the status information. In this case, since the identification name can be obtained from the status information acquired in B04, the virtual printer name event in B05 may be omitted.

[0051] Returning to the explanation of Figure 4, after the name acquisition process, the identification name responded by the auxiliary program 42 is passed to the OS 21 via the general-purpose printing program 41 (B07). Then, as shown in Figure 7(A), the OS 21 provides a display area 60b on the printer list screen 60 that corresponds to the printer queue 22b for the virtual printer, and displays the name 62b corresponding to the printer queue 22b for the virtual printer, as well as the identification name 63b of the actual printer passed from the auxiliary program 42 in response to the virtual printer name event, and the status 64b indicated in the status information passed from the auxiliary program 42 in response to the virtual printer status event (B08).

[0052] Furthermore, OS21 provides an "Open Printer App" button 65b in the display area 62 of the printer list screen 60, which accepts a command to start the application program associated with the virtual printer, i.e., the auxiliary program 42 for the virtual printer. When the "Open Printer App" button 65b is pressed, OS21 starts the auxiliary program 42, and the started auxiliary program 42 displays its home screen. In addition, OS21 provides buttons in the display area 60b of the printer list screen 60 that accept a command to display a screen showing the details of the printer queue, and buttons that accept a command to delete the printer queue.

[0053] On the other hand, if the status information provided is error information (Alt: Error), OS21 provides a display area 60b on the printer list screen 60 corresponding to the printer queue 22b for the virtual printer, as shown in Figure 7(B), and displays the name 62b corresponding to the printer queue 22b for the virtual printer, as well as the status 64b indicated in the status information provided by the auxiliary program 42, that is, information indicating that the actual printer has not been identified (B09). In this embodiment, if the status information is error information, the OS21 does not issue a virtual printer name event, and therefore the identification name 63b is not displayed. However, the OS21 may issue a virtual printer name event regardless of the content of the status information, and in that case, if the actual printer to be controlled has not been identified, the auxiliary program 42 will respond with an identification name indicating a temporary name, and the identification name 63b indicating that temporary name may be displayed as in Figure 7(A).

[0054] In addition, in the status acquisition process shown in Figure 5, if the actual printer is not identified, auxiliary program 42 responds with status information indicating an error. However, it may also perform a process to identify the actual printer. That is, if the actual printer to be controlled has not been identified (S01:NO), instead of generating status information indicating an error in S05, it may perform a process to identify the actual printer, then obtain status information from the identified actual printer (S03), and respond with the obtained status information (S06). For example, auxiliary program 42 can perform the same procedure as in S22 of the detailed setting process (see Figure 11) described later. Similarly, in the name acquisition process shown in Figure 6, if the actual printer is not identified (S31:NO), instead of obtaining an identification name indicating a temporary name in S33, it may perform a process to identify the actual printer. In this case, the virtual printer status event and virtual printer name event are examples of instructions to execute a process corresponding to the selection of a virtual printer. S03, S04, and S32 are examples of the first process. The process to identify the actual printer is an example of the second process.

[0055] In this configuration, the auxiliary program 42, in response to an operation to display the details of the printer queue 22b for the virtual printer from the printer list screen 60, if a virtual printer status event occurs, and the actual printer has not been identified in the virtual printer, does not respond with status information, but instead responds with error information indicating that the actual printer to be controlled is unidentified. Based on the response from the auxiliary program 42, the OS 21 can notify that the actual printer to be controlled has not been identified. This allows the user to recognize that the actual printer to be controlled has not been identified for the virtual printer. Note that the error information responded by the auxiliary program 42 is different from the status information indicating offline, and the OS 21 can notify that the actual printer to be controlled has not been identified, distinguishing it from the case of being offline. The virtual printer status event is an example of a predetermined execution instruction, S03 and S04 are examples of the first process, and S05 is an example of the second process. The virtual printer name event is an example of a predetermined execution instruction, S32 is an example of the first process, and S33 is an example of the second process.

[0056] [Processing when print settings requests and UI requests are received] Next, we will explain how to handle print settings requests. A print settings request is issued, for example, from the editing application 43 to display the print settings screen 50 to the user IF13.

[0057] Figure 8 shows the procedure for selecting a virtual printer from the editing application 43. The editing application 43 can create and edit documents and images based on user instructions. When the user wants to print the displayed documents or images, they select "Print" in the editing application 43 (B11). The user can select "Print" from, for example, a menu of operation items provided in the editing application 43. When the editing application 43 accepts the selection to print, it requests the general-purpose printing program 41 of the OS 21 to display a screen that accepts instructions regarding printing (B12).

[0058] The general-purpose printing program 41 displays a print settings screen 50 to the user IF 13 (B13), for example, as shown in Figure 9, in response to a request from the editing application 43. The print settings screen 50 includes a printer selection field 51, an information display field 52, a basic print settings selection field 53, an advanced settings button 54, and a print button 55. The print settings screen 50 is a screen that accepts user instructions regarding various print settings that can be accepted by the general-purpose printing program 41. Note that the display of the print settings screen 50 may be performed by the editing application 43.

[0059] The printer selection field 51 accepts the selection of the printer to perform the printing. The printer selection field 51 includes printers that will perform printing using the general-purpose printing program 41 as options. The information display field 52 displays information specified by the auxiliary program corresponding to the printer selected in the printer selection field 51. The basic print settings selection field 53 accepts basic settings such as the number of copies and the orientation of the document. The advanced settings button 54 is a button that accepts instructions to perform detailed settings not included in the basic print settings selection field 53. The print button 55 is a button that accepts the instruction to perform printing with the selected print settings.

[0060] When the print settings screen 50 is first displayed, the general-purpose printing program 41 selects the printer set as the default as the printer to be displayed in the printer selection field 51. Then, it obtains print setting information that shows the print settings that can be set for the default printer, and based on the obtained print setting information, it determines the options for various items that can be selected in the print setting selection field 53.

[0061] Furthermore, the user can select a printer by operating the printer selection field 51. The selectable printers are those for which a printer queue has been set up, and the display names registered in each printer queue are displayed as options in the list in the printer selection field 51. If there is a printer queue 22b for a virtual printer, for example, the virtual printer will be displayed as an option based on the display name registered in A02 in Figure 2.

[0062] The display name registered in each printer queue can be changed by the user. For example, if printer 32 is a specified virtual printer, the user can change the display name of the virtual printer to a name that indicates printer 32, allowing the user to select the virtual printer by its name. In other words, if the user wants to print to printer 32, they can select the virtual printer as the device to print from the printer selection field 51.

[0063] For example, if a virtual printer is selected as the printer to perform printing (Alt: Virtual Printer Selected State), that is, if a virtual printer is selected in the printer selection field 51, or if the print selection in B11 is accepted while the virtual printer is set as the default, a print setting request is passed from the general-purpose printing program 41 to the auxiliary program 42 (B14). In B14, for example, the general-purpose printing program 41 starts the auxiliary program 42 and issues a virtual printer print setting event, which was registered in A11 of Figure 2, as a print setting request corresponding to the virtual printer. The auxiliary program 42 determines that a virtual printer has been selected by receiving the virtual printer print setting event. The virtual printer print setting event is an example of a predetermined execution instruction.

[0064] When the auxiliary program 42 is activated by a virtual printer print setting event from the general-purpose printing program 41, it executes the print setting acquisition process (B15). Figure 10 shows the procedure for the print setting acquisition process in B15.

[0065] In the print settings acquisition process, the auxiliary program 42 first determines whether the target physical printer in the selected virtual printer printer queue 22b has been identified (S11). If the target physical printer has been identified (S11: YES), the auxiliary program 42 acquires capability information from the identified physical printer (S12), generates print settings information indicating the print settings that can be set on the identified physical printer based on the acquired capability information (S13), and responds with the generated print settings information (S15). The capability information or print settings information of the identified physical printer may be cached, and the cached capability information or print settings information may be used in subsequent print settings acquisition processes. S12 and S13 are examples of the first process.

[0066] On the other hand, if the actual printer to be controlled has not been identified (S11:NO), the auxiliary program 42 generates temporary print setting information indicating a temporary print setting predetermined in the auxiliary program 42 (S14), and responds with the generated print setting information (S15). S14 is an example of the second process.

[0067] Even if the actual printer has been identified (S11:YES), if it is offline and the capability information is not cached, the auxiliary program 42 cannot obtain the capability information, so it should proceed to S14.

[0068] Returning to the explanation of Figure 8, after the print settings acquisition process, the print settings information returned by the auxiliary program 42 is passed to the general-purpose printing program 41 (B16). Based on the received print settings information, the general-purpose printing program 41 updates the selectable options in the print settings selection field 53 (B17).

[0069] Specifically, if the provided print settings information is not temporary, the selection field 53 is switched to one where the options available for that actual printer can be selected, according to the capability information obtained from the identified actual printer. On the other hand, if the provided print settings information is temporary, the selection field 53 is switched to one where the parameters predetermined in the auxiliary program 42 can be selected.

[0070] In addition, if the actual printer has not been identified, the auxiliary program 42 generates temporary print setting information in S14 and responds; however, it may also respond with error information indicating that the actual printer to be controlled is unidentified and has not been identified, instead of responding with temporary print setting information. That is, in the print setting acquisition process shown in Figure 10, instead of generating temporary print setting information in S14, it may generate error information and respond in S15. In this case, generating error information is an example of the second process. The general-purpose printing program 41 or editing application 43 that receives the error information may, as a special process for virtual printers, report an error message indicating that the actual printer has not been identified, or cancel the virtual printer selection operation. On the other hand, if temporary print setting information is passed to the general-purpose printing program 41 as in S14, the general-purpose printing program 41 can update the selection field 53 of the print setting screen 50 based on that temporary print setting information, and can perform the same process even if the actual printer has not been identified. Therefore, the general-purpose printing program 41 or editing application 43 does not need to perform special processing for virtual printers where the actual printer has not been identified.

[0071] Furthermore, if the actual printer has not been identified, the auxiliary program 42 may perform a process to identify the actual printer. In this case, the virtual printer print setting event is an example of an instruction to execute a process corresponding to the selection of a virtual printer, S12 and S13 are an example of the first process, and the process to identify the actual printer is an example of the second process. That is, in the print setting acquisition process shown in Figure 10, if the actual printer to be controlled has not been identified (S11: NO), instead of generating provisional print setting information in S14, the program may perform a process to identify the actual printer, then acquire capability information from the identified actual printer (S12), generate print setting information based on the acquired capability information (S13), and respond with the generated print setting information (S15). As for the process to identify the actual printer, for example, the auxiliary program 42 may execute a procedure similar to S22 in the detailed setting process (see Figure 11) described later.

[0072] Furthermore, the print settings screen 50 may display the status of the printer selected in the printer selection field 51. In this case, when a virtual printer is selected in the printer selection field 51, the general-purpose printing program 41 issues a virtual printer status event to the auxiliary program 42, and the auxiliary program 42 executes the status acquisition process described above (see Figure 5) and responds with the status. The general-purpose printing program 41 displays the status based on the response from the auxiliary program 42, and if error information is responded, it is advisable to notify that the actual printer to be controlled has not been identified.

[0073] Furthermore, if a virtual printer is selected in the printer selection field 51, the print settings screen 50 may display the identification name of the printer identified as the control target for that virtual printer. In this case, when a virtual printer is selected in the printer selection field 51, the general-purpose printing program 41 issues a virtual printer name event to the auxiliary program 42, and the auxiliary program 42 executes the name acquisition process described above (see Figure 6) and responds with the identification name. The general-purpose printing program 41 may then display the identification name based on the response from the auxiliary program 42.

[0074] After B17, if the general-purpose printing program 41 receives an operation on the detailed settings button 54 of the print settings screen 50 while the virtual printer is selected (B21), it passes a UI request to the auxiliary program 42 (B22). In B22, for example, the general-purpose printing program 41 starts the auxiliary program 42 and issues a virtual printer UI event, which was registered in A11 of Figure 2, as a UI request corresponding to the virtual printer. The auxiliary program 42 receives the virtual printer UI event and determines that the virtual printer is selected.

[0075] When the auxiliary program 42 is activated by a virtual printer UI event from the general-purpose printing program 41, it executes detailed configuration processing (B23). Figure 11 shows the procedure for the detailed configuration processing in B23.

[0076] In the detailed configuration process, the auxiliary program 42 first determines whether the actual printer to be controlled has already been identified (S21). If the actual printer to be controlled has not been identified (S21: NO), the auxiliary program 42 performs a process to identify the actual printer to be controlled (S22). S22 is an example of the identification process.

[0077] In S22, the auxiliary program 42 searches for actual printers connected to PC1, displays a list of the found printers to the user IF13, accepts the user's selection of one printer from the found printers, and identifies the selected printer. The printer to be selected does not need to have a printer queue created for it. Also, the printer to be selected does not need to support IPP. Therefore, all printers 31, 32, and 33 connected to PC1 are eligible for selection. Furthermore, as in the procedure from S61 to S65 of the device identification process described later (see Figure 14), if there is only one actual printer connected to PC1, the auxiliary program 42 may automatically identify that printer.

[0078] If the actual printer to be controlled is identified in S22, or if the actual printer to be controlled has already been identified (S21: YES), the auxiliary program 42 displays a detailed settings screen on the user IF13's display 13a that accepts detailed print settings for printing on the identified actual printer (S23). The auxiliary program 42 obtains the capability information of the identified actual printer and determines the setting items to be accepted on the detailed settings screen and the selectable parameters based on that capability information. The user determines the print settings to be used on the detailed settings screen 70.

[0079] For example, if the specified actual printer is a label printer, the auxiliary program 42 displays a detailed settings screen 70 on the user interface 13, as shown in Figure 12, which can accept various settings that can be set on the label printer. The detailed settings screen 70 includes setting items 71 that can be set on the label printer, such as the type and size of the label to be used and whether or not to use the cut function, a preview 72 of the label according to the settings, the identification name 73 of the specified actual printer, a change button 74 that accepts a change to the actual printer to be controlled, and an OK button 75. The identification name 73 of the actual printer can be any information that can be obtained from the actual printer, for example, the model name of the actual printer. Alternatively, if the actual printer allows the user to register a printer name, it may be that registered name. The detailed settings screen 70 is an example of a predetermined screen. The change button 74 is an example of an operator that accepts an instruction to switch the actual printer to be controlled.

[0080] In this configuration, the specified physical printer is a label printer, but it could also be a printer for cut sheets. In that case, the detailed settings screen 70 will display settings for printing on cut sheets. In other words, printers other than label printers can also be specified as the physical printer to be controlled by the virtual printer.

[0081] After S23, the auxiliary program 42 determines whether the OK button 75 has been pressed (S25). If the OK button 75 has not been pressed (S25:NO), it determines whether the Change button 74 has been pressed (S26). If the Change button 74 has not been pressed (S26:NO), it proceeds to S25 and waits for user input. Note that the auxiliary program 42 also accepts operations other than pressing the OK button 75 and the Change button 74 on the detailed settings screen 70, but this explanation is omitted.

[0082] When the change button 74 is pressed (S26:YES), the auxiliary program 42 proceeds to S22 and accepts the change to the controlled actual printer by performing a process to identify the controlled actual printer.

[0083] When the OK button 75 is pressed (S25:YES), the auxiliary program 42 closes the detailed settings screen 70 (S27) and terminates the detailed settings process. After terminating the detailed settings process, the auxiliary program 42 returns to the explanation in Figure 8 and notifies the general-purpose printing program 41 that the settings are complete (B24). The virtual printer UI event is an example of a predetermined execution instruction, S23 is an example of the first process, and S22 is an example of the second process and specific processing.

[0084] The change button 74, which accepts instructions to switch the controlled actual printer and is accepted by the auxiliary program 42 when the controlled actual printer has been identified, may be included in other screens, not just the detailed settings screen 70 that is displayed when a virtual printer UI event occurs. For example, when the auxiliary program 42 is launched in response to the operation of the "Open Printer App" button 65b on the printer list screen 60 (see Figure 7(A)) displayed by the OS 21, the auxiliary program 42 displays the home screen, and the change button 74 may be included in that home screen. In this case, the instruction by the OS 21 to launch the auxiliary program 42 in response to the operation of the "Open Printer App" button 65b is an example of a predetermined execution instruction, the process of displaying the home screen is an example of the first process, and S22 is an example of the second process and identification process. Also, in this case, after the controlled actual printer has been changed, the identification name 63b in Figure 7(A) may be changed to the model name of the changed actual printer, or the printer name registered to the actual printer by the user. Furthermore, if an error occurs when the auxiliary program 42 communicates with the actual printer being controlled, the auxiliary program 42 may display a communication error notification screen, and this communication error notification screen may include a change button 74.

[0085] In this configuration, the auxiliary program 42, upon receiving a virtual printer print setting event in response to a virtual printer being selected on the print settings screen 50, responds with predetermined temporary print setting information if the actual printer to be controlled has not yet been identified for the selected virtual printer. The general-purpose printing program 41 or editing application 43 can update the selection items on the print settings screen 50 based on the temporary print setting information, according to the response from the auxiliary program 42. This allows the print settings screen 50 to be updated even if the actual printer to be controlled is not selected for the selected virtual printer, and processing by the general-purpose printing program 41 or editing application 43 can continue as if the actual printer had been identified. In this case, the general-purpose printing program 41 cannot distinguish between the print settings for the actual printer and the temporary print settings, and therefore does not notify that the actual printer has not been identified. The virtual printer print setting event is an example of a predetermined execution instruction, S12 and S13 are examples of the first process, and S14 is an example of the second process.

[0086] Furthermore, in this configuration, if a virtual printer is selected on the print settings screen 50 and a virtual printer print setting event occurs, the auxiliary program 42 may respond with error information instead of temporary print setting information if the actual printer has not been identified for the selected virtual printer. In this case, the general-purpose printing program 41 or the editing application 43 cannot receive the print setting information and therefore does not update the print settings screen 50, and can notify that the actual printer to be controlled has not been identified. This allows the user to recognize that the actual printer to be controlled has not been identified for the selected virtual printer. The virtual printer print setting event is an example of a predetermined execution instruction, S12 and S13 are an example of the first process, and the process of responding with error information is an example of the second process.

[0087] [Processing when a print execution request is received] Next, we will explain how to handle a print execution request. A print execution request is issued from the general-purpose printing program 41, for example, when a print command is issued from the editing application 43.

[0088] Figure 13 shows the printing procedure when a virtual printer is selected from the editing application 43. The user selects the image to be printed in the editing application 43, and with the virtual printer selected as the device to perform the printing, the user inputs a print command in the editing application 43 (D01). When the editing application 43 receives the print command from the user, it determines that it has received an execution command to the general-purpose printing program 41 to print the selected image to the virtual printer, since the general-purpose printing program 41 is built into the OS 21 of PC1. The editing application 43 outputs the information of the received print command to the general-purpose printing program 41 (D02).

[0089] The general-purpose printing program 41 obtains information from the editing application 43 that indicates at least image data representing the image to be printed, as print instruction information. The general-purpose printing program 41 may also obtain print setting information. Based on the information obtained from the editing application 43, the general-purpose printing program 41 generates intermediate data by converting the format of the image data of the image to be printed to an intermediate data format (D03).

[0090] The image data obtained from the editing application 43 is of various types, and the general-purpose printing program 41 converts the image data to be printed into intermediate data suitable for generating print data. If the image data to be printed is already suitable for generating print data, the generation of intermediate data can be omitted, and the intermediate data can be used as is. Also, if the image data included in the editing application 43 is not suitable for processing by the general-purpose printing program 41, the general-purpose printing program 41 may skip D03, or it may use the image data obtained from the editing application 43 as is.

[0091] After the general-purpose printing program 41 generates intermediate data, a print execution request is passed from the general-purpose printing program 41 to the auxiliary program 42 (D04). In D04, for example, the general-purpose printing program 41 starts the auxiliary program 42 and issues a virtual printer print event, which was registered in A11 of Figure 2, as a print execution request corresponding to the virtual printer. Upon receiving the virtual printer print event, the auxiliary program 42 determines that the virtual printer has been selected. The virtual printer print event is an example of a predetermined execution instruction.

[0092] Furthermore, since a virtual printer has been selected, the general-purpose printing program 41 may start an auxiliary program 42 corresponding to the virtual printer before generating intermediate data to notify it that the processing of the print job has started. In other words, D04 may be executed before D03. When the auxiliary program 42 is started by the general-purpose printing program 41, it can pass information indicating various instructions used when generating intermediate data to the general-purpose printing program 41 as needed.

[0093] When the auxiliary program 42 is started by the general-purpose printing program 41 in response to a print command, it determines whether or not the actual printer to be controlled in the virtual printer has been identified (D05).

[0094] If the actual printer to be controlled has been identified (Alt: Identified), the auxiliary program 42 performs the process of sending a print job to the identified actual printer. That is, since a virtual printer has been selected, the auxiliary program 42 first passes an instruction to the general-purpose printing program 41 to skip rendering by the general-purpose printing program 41 (D11).

[0095] The general-purpose printing program 41 notifies the auxiliary program 42 that it is ready to accept the generation or modification of print data based on the intermediate data generated in D03 (D12). The auxiliary program 42 requests the general-purpose printing program 41 to provide information on the intermediate data generated by the general-purpose printing program 41 (D13).

[0096] The auxiliary program 42 edits the acquired intermediate data as needed (D14). Based on the intermediate data edited in D14, or the intermediate data received from the general-purpose printing program 41 in D13, and the print settings, the auxiliary program 42 generates print data in a format compatible with the specified actual printer (D21). By generating print data with the auxiliary program 42, even if the general-purpose printing program 41 does not support that format, print data in a format compatible with the specified actual printer can be generated.

[0097] Furthermore, if the print data usable for printing on the specified actual printer is in a format that can be generated by the general-purpose printing program 41, the auxiliary program 42 may have the general-purpose printing program 41 generate the print data instead of D21. In that case, the auxiliary program 42 passes the intermediate data edited in D14, for example, to the general-purpose printing program 41 and requests the generation of the print data.

[0098] Then, the auxiliary program 42 sends the print job containing the generated print data to the specified actual printer (D22). The auxiliary program 42 sends the print data to the specified actual printer using a communication protocol suitable for the specified actual printer. Since the auxiliary program 42 sends the print data using a communication protocol suitable for the specified actual printer, it can send the print data even if the destination printer does not support IPP. If the destination printer supports IPP, the general-purpose printing program 41 may be instructed to send the print data according to IPP. The processing from D11 to D22 is an example of the first processing.

[0099] The identified physical printer, upon receiving a print job from PC1, executes printing based on the print data contained in the received print job (D25). The auxiliary program 42 sends a print job suitable for the identified physical printer, so that the identified physical printer can print appropriately based on the print job.

[0100] After sending the print data to the identified actual printer, the auxiliary program 42 notifies the general-purpose printing program 41 of the completion of the print event (D31).

[0101] On the other hand, if the actual printer to be controlled has not been identified (Alt: Unidentified), the auxiliary program 42 performs a device identification process (D51). Figure 14 shows the procedure for the device identification process in D51. D51 is an example of the second process, and also an example of the identification process.

[0102] In the device identification process, the auxiliary program 42 first displays an error notification screen 90 to the user IF 13, which includes a message 93 indicating that the virtual printer's control target has not been identified, as shown in Figure 15 (S51). The error notification screen 90 is an example of a notification screen. The error notification screen 90 accepts the user's choice of whether or not to identify the printer, including a button 91 for identifying the printer and a button 92 for canceling printing (S52).

[0103] If the user selects to identify a printer by pressing button 91 (S52: YES), the auxiliary program 42 performs a printer search to find an actual printer that can communicate with PC1 (S61).

[0104] After the printer search, the auxiliary program 42 determines whether or not there is a physical printer that was found (S62). If it is determined that there is a physical printer (S62: YES), the auxiliary program 42 determines whether or not there is only one physical printer that was found (S63). If there is only one physical printer that was found (S63: YES), the auxiliary program 42 automatically identifies the found physical printer as the printer to be controlled by the virtual printer (S65). In this case, the auxiliary program 42 may confirm with the user whether or not to identify the found physical printer before automatically identifying it. By automatically identifying the printer, the effort required to identify the printer can be saved.

[0105] If more than one physical printer is found, i.e., if multiple physical printers are found (S63:NO), the auxiliary program 42 displays a selection screen to the user interface 13, prompting the user to select one printer from the found physical printers, and accepts the printer selection (S64). The auxiliary program 42 then identifies the selected physical printer as the printer to be controlled by the virtual printer (S65).

[0106] Once the printer to be controlled by the virtual printer is identified, the auxiliary program 42 performs the process of sending the print job to the identified actual printer (S66). In other words, the process in S66 is the same as the processes from D11 to D31 shown in Figure 13, and a detailed explanation is omitted.

[0107] On the other hand, if it is determined that there is no actual printer (S62:NO), or if the user selects not to specify a printer by pressing button 92 on the error notification screen 90 (S52:NO), the auxiliary program 42 responds with an error to the general-purpose printing program 41 (S71). When the general-purpose printing program 41 receives an error response from the auxiliary program 42, it may, for example, cancel the print job.

[0108] Furthermore, when the general-purpose printing program 41 receives a print command from the editing application 43, it may issue a virtual printer status event to the auxiliary program 42 before issuing a virtual printer print event. In this case, the auxiliary program 42 executes the status acquisition process described above (see Figure 5) and responds with the status. If the general-purpose printing program 41 receives error information in response from the auxiliary program 42, it is preferable not to issue a virtual printer print event, but to notify that the actual printer to be controlled has not been identified and to cancel the print command.

[0109] In this configuration, the auxiliary program 42, when a print command is issued with a virtual printer selected, executes a device identification process if a virtual printer print event is issued from the general-purpose print program 41, i.e., when a print execution request is made, and the actual printer has not been identified for the selected virtual printer. This allows the printer to be identified and the print job to be completed. The virtual printer print event is an example of a predetermined execution command, the processes from D11 to D22 are an example of the first process, and D51 is an example of the second process and identification process.

[0110] Furthermore, in this embodiment, if a print command is issued while a virtual printer is selected, and a print execution request is received, but the actual printer to be controlled has not been identified for the selected virtual printer, the auxiliary program 42 may not identify the actual printer to be controlled and may respond with error information. That is, if the actual printer to be controlled has not been identified in D05 (Alt: Unidentified), the auxiliary program 42 may execute only the error information response (S71) of the device identification process. In this case, the virtual printer print event is an example of a predetermined execution command, the processing from D11 to D22 is an example of the first process, and D71 is an example of the second process. Alternatively, S52 to S66 of the device identification process may be omitted, and only the display of the error notification screen 90 (S51) and the response of error information (S71) may be executed. In this case, the virtual printer print event is an example of a predetermined execution command, the processing from D11 to D22 is an example of the first process, and S51 and S71 are examples of the second process. Or, if the device cannot be identified even after executing the device identification process, error information may be responded to. If error information is returned, the general-purpose printing program 41 or editing application 43 determines that it could not complete the print job, notifies that the target printer has not been identified, and can cancel the print command.

[0111] As explained in detail above, in this embodiment, if a predetermined execution instruction is received when the actual printer to be controlled has not yet been identified, the auxiliary program 42 executes a second process based on the fact that the actual printer to be controlled has not been identified, because the first process based on the identification of the actual printer to be controlled cannot be executed while the actual printer to be controlled has not been identified. For example, if a status request is received from the general-purpose printing program 41, if the actual printer has been identified, status information indicating the status of that actual printer is returned; if the actual printer has not been identified, status information indicating that the actual printer has not been identified is returned. Also, if a print setting request is received from the general-purpose printing program 41, if the actual printer has been identified, print setting information based on the capabilities of that actual printer is returned; if the actual printer has not been identified, temporary print settings or error information is returned. Furthermore, if a print execution request is received from the general-purpose printing program 41, if the actual printer has been identified, print data is sent to that actual printer; if the actual printer has not been identified, the actual printer is identified or error information is returned. As a result, the information processing device can be expected to execute processes appropriate to the state in which the actual printer to be controlled has been identified and the state in which it has not been identified, respectively.

[0112] The embodiments disclosed herein are merely illustrative and do not limit the present invention in any way. Therefore, the technology disclosed herein can naturally be improved and modified in various ways without departing from its essence. For example, four or more printers may be connected to PC1.

[0113] Furthermore, the examples of screens displayed in User IF13 are merely illustrative and not limited to those shown. Also, the text, object shapes, backgrounds, etc., displayed in each illustrated screen can be anything.

[0114] Furthermore, the timing at which status requests and name requests are passed from OS21 to auxiliary program 42 is not limited to when the icon 61b corresponding to the printer queue 22b for the virtual printer B01 is operated, as shown in Figure 4. For example, OS21 may periodically pass status requests and name requests to auxiliary program 42 even when the printer list screen 60 is not displayed. In response to the status requests and name requests that are passed periodically, auxiliary program 42 executes the status acquisition process shown in Figure 5 or the name acquisition process shown in Figure 6. Alternatively, auxiliary program 42 performs a process to identify the actual printer (S22), then acquires status information etc. from the identified actual printer (S03), and responds with the acquired status information etc. (S06). OS21 stores the status information and identification name responded by auxiliary program 42. Then, when the icon 61b corresponding to the printer queue 22b for the virtual printer is operated, OS21 displays the status 64b and identification name 63b on the printer list screen 60 based on the stored status information and identification name. Furthermore, when the auxiliary program 42 performs processing to identify the actual printer in response to status requests and name requests that are periodically passed, and responds with status information obtained from the identified actual printer, the auxiliary program 42 may automatically identify the actual printer without displaying a list of the searched actual printers to the user IF13. Also, as shown in Figure 16, the status 64b may be displayed on the default printer list screen 60 before the icon 61b is operated, based on the stored status information, or the identification name 63b may be displayed based on the stored identification name.

[0115] Furthermore, although the embodiments describe in detail only the operations related to printing as the operation of the auxiliary program 42, the auxiliary program 42 may have other roles. Also, the program that executes the processing of this embodiment is not limited to the auxiliary program 42, but can be any program that receives instructions from the OS 21 or the general-purpose printing program 41 when printing using the general-purpose printing program 41. For example, the Print Workflow application whose specifications have been published by Microsoft may also be used.

[0116] Furthermore, the execution timing of the auxiliary program 42 is not limited to the examples of this embodiment. For example, it may be executed by direct execution instruction from the OS 21, or it may be a resident auxiliary program 42. In the case of a resident auxiliary program, the auxiliary program 42 should perform the operations described above upon receiving an execution instruction.

[0117] Furthermore, in any flowchart disclosed in the embodiments, the execution order of any multiple processes in any multiple steps can be arbitrarily changed or executed in parallel, as long as no inconsistencies arise in the processing content.

[0118] Furthermore, the processes disclosed in the embodiments may be executed by a single CPU, multiple CPUs, hardware such as an ASIC, or a combination thereof. Also, the processes disclosed in the embodiments can be implemented in various forms, such as a recording medium or method that stores a program for executing the process. [Explanation of symbols]

[0119] 1 PC 11 CPU 13 User Interface 21 OS 31 Printers 41 General-purpose printing program 42 Support Programs

Claims

1. A support program that is executable by the computer of the information processing device and supports a general-purpose printing program of the operating system of the information processing device, wherein the operating system of the information processing device can provide a printer queue for a virtual printer associated with the support program, and immediately after the printer queue for the virtual printer is provided, the actual printer to be controlled by the virtual printer has not been identified. To the aforementioned computer, It is possible to perform a specific process to identify the actual printer to be controlled in the virtual printer. The aforementioned computer further: When a predetermined execution instruction is received from the aforementioned operating system, If the actual printer to be controlled in the virtual printer is identified, the first process corresponding to the predetermined execution instruction is executed, which is based on the fact that the actual printer to be controlled has been identified. If the actual printer to be controlled in the virtual printer is not identified, a second process different from the first process is executed, which is based on the fact that the actual printer to be controlled is not identified. A support program configured in this way.

2. In the support program described in claim 1, To the aforementioned computer, There is an operation to display a screen that shows the printer queue managed by the operating system, and when the operating system issues the predetermined execution instruction, If the actual printer to be controlled in the virtual printer is identified, the first process is executed to obtain status information indicating the status of the identified actual printer and to respond to the operating system with the obtained status information. If the actual printer to be controlled in the virtual printer is not identified, the first process is not executed, and the second process is executed, which responds with error information indicating that the actual printer to be controlled has not been identified. A support program configured in this way.

3. In the support program described in claim 2, To the aforementioned computer, The operation described above is performed to display the aforementioned screen, and when the operating system issues the predetermined execution instruction, If the actual printer to be controlled in the virtual printer is identified, and the identified actual printer is offline, the first process is executed to respond to the operating system with offline information indicating that it is offline. If the actual printer to be controlled in the virtual printer is not identified, the first process is not executed, and the second process is executed, which responds with error information indicating that the actual printer to be controlled is not identified, and which is different from the offline information. A support program configured in this way.

4. In the support program described in claim 2, To the aforementioned computer, There is an operation to display a screen that shows the printer queue managed by the operating system, and when the operating system issues the predetermined execution instruction, If the actual printer to be controlled in the virtual printer is identified, the status information and the identification name of the identified actual printer are obtained, and the first process is executed to respond to the operating system with the obtained status information and the identification name. A support program configured in this way.

5. In the support program described in claim 1, To the aforementioned computer, There is an operation to display a screen that shows the printer queue managed by the operating system, and when the operating system issues the predetermined execution instruction, If the actual printer to be controlled in the virtual printer is identified, the first process is executed to obtain the identification name of the identified actual printer and to respond to the operating system with the obtained identification name. If the actual printer to be controlled in the virtual printer has not been identified, the first process is not executed, and the second process is executed, which responds with error information indicating that the actual printer to be controlled has not been identified or name information indicating a predetermined name. A support program configured in this way.

6. In the support program described in claim 1, To the aforementioned computer, When the operating system issues a predetermined execution instruction, which is an instruction to respond with print settings that can be set on the selected virtual printer, If the actual printer to be controlled by the virtual printer is identified, the first process is executed, which involves obtaining print setting information indicating the print settings that can be set on the identified actual printer, and responding to the operating system with the obtained print setting information. If the actual printer to be controlled in the virtual printer is not identified, the first process is not executed, and the second process is executed, which responds with error information indicating that the actual printer to be controlled has not been identified. A support program configured in this way.

7. In the support program described in claim 1, To the aforementioned computer, When the operating system issues a predetermined execution instruction, which is an instruction to respond with print settings that can be set on the selected virtual printer, If the actual printer to be controlled by the virtual printer is identified, the first process is executed, which involves obtaining print setting information indicating the print settings that can be set on the identified actual printer, and responding to the operating system with the obtained print setting information. If the actual printer to be controlled in the virtual printer is not identified, the first process is not executed, and the second process is executed, which responds with temporary print setting information indicating predetermined temporary print settings. A support program configured in this way.

8. In the support program described in claim 1, To the aforementioned computer, When the operating system issues a predetermined execution instruction to print to the selected virtual printer, If the actual printer to be controlled in the virtual printer is identified, the first process is executed to send a print job to the identified actual printer. If the actual printer to be controlled in the virtual printer is not identified, a second process different from the first process is executed, which is based on the fact that the actual printer to be controlled is not identified. A support program configured in this way.

9. In the support program described in claim 8, In the second process described above, It responds with error information based on the fact that the actual printer being controlled has not been identified. A support program configured in this way.

10. In the support program described in claim 9, In the second process described above, The information processing device displays a notification screen on its user interface indicating that the target printer has not been identified, and responds with the error information based on the fact that the target printer has not been identified. A support program configured in this way.

11. In the support program described in claim 8, In the second process described above, The aforementioned specific process is executed, If the actual printer to be controlled is identified in the specified process, a print job is sent to the actual printer identified in the specified process, and information indicating the transmission result is returned in response. If the actual printer to be controlled is not identified in the aforementioned specific processing, an error message based on the fact that the actual printer to be controlled has not been identified will be returned. A support program configured in this way.

12. In the support program described in claim 11, In the aforementioned specific process, The system searches for printers connected to the information processing device, accepts the selection of one printer from the searched printers, and identifies the selected printer as the actual printer to be controlled in the virtual printer. A support program configured in this way.

13. In the support program described in claim 12, In the aforementioned specific process, If only one printer is found, the found printer is identified as the actual printer to be controlled in the virtual printer. If multiple printers are found, the system accepts the selection of one printer from among the found printers, identifies the selected printer as the actual printer to be controlled in the virtual printer, If no printer is found, the virtual printer does not identify the actual printer to be controlled. A support program configured in this way.

14. In the support program described in claim 1, To the aforementioned computer, When the aforementioned predetermined execution instruction is issued by the operating system, instructing the execution of a process corresponding to the selection of the virtual printer, If the actual printer to be controlled in the virtual printer is identified, the first process is executed in response to the operating system by providing information about the identified actual printer. If the actual printer to be controlled in the virtual printer is not identified, the first process is not executed, and the identification process is executed as the second process. In the aforementioned specific process, The printer connected to the aforementioned information processing device is searched for, If only one printer is found, the found printer is identified as the actual printer to be controlled in the virtual printer. If multiple printers are found, a selection screen is displayed on the user interface of the information processing device to accept the selection of one printer from among the found multiple printers, and the printer selected via the selection screen is identified as the actual printer to be controlled in the virtual printer. A support program configured in this way.

15. In the support program described in claim 1, To the aforementioned computer, When the aforementioned operating system issues the predetermined execution instruction, If the actual printer to be controlled in the virtual printer is identified, the first process involves displaying a predetermined screen on the user interface of the information processing device, and the predetermined screen includes an operator that accepts an instruction to switch the actual printer to be controlled in the virtual printer. If the actual printer to be controlled in the virtual printer has not been identified, the second process is to execute the identification process. The aforementioned computer further: When the operator included in the predetermined screen is operated, the specific process is executed to accept the switching of the actual printer to be controlled in the virtual printer. A support program configured in this way.

Citation Information

Patent Citations

  • Application program

    JP2019175313A