Support program

WO2026163851A1PCT designated stage Publication Date: 2026-08-06BROTHER KOGYO KK
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
BROTHER KOGYO KK
Filing Date
2026-01-16
Publication Date
2026-08-06

Smart Images

  • Figure JP2026001205_06082026_PF_FP_ABST
    Figure JP2026001205_06082026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a novel technique for managing a printer by linking an OS-standard printing function and a support program. An auxiliary program 42 causes an OS 21 to create a printer queue 22b for a virtual printer associated with the auxiliary program 42. Setting information 25 for identifying an actual printer is retrieved from a designated storage area 24, and a printer 31 in a LAN 20 is identified as a device corresponding to the virtual printer on the basis of the setting information 25. Furthermore, the auxiliary program 42 obtains image data expressing an image to be printed and transmits a print job including print data based on the obtained image data to the identified printer 31 when processing is requested from a general-purpose print program 41 in response to a print instruction in which the virtual printer is selected.
Need to check novelty before this filing date? Find Prior Art

Description

Support program

[0001] The technical field disclosed in this specification relates to a support program for supporting the control of a printer.

[0002] In recent years, a technology for controlling a printer by using a general-purpose printing program provided by 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 with the general-purpose printing program. After that, when a print instruction for the printer is received, the general-purpose printing program generates print data without using the printer driver provided by the printer vendor, enabling printing by the general-purpose printing program.

[0003] As a document that discloses a technology for controlling a printer by using an OS-standard printing function without using a printer driver, for example, there is Patent Document 1. Patent Document 1 discloses a configuration in which a printer stores usage conditions, acquires the usage conditions from the printer by an auxiliary program that supports the control of the printer, and determines whether printing can be executed based on the usage conditions.

[0004] Japanese Patent Application Laid-Open No. 2022-109423

[0005] In a configuration using an OS-standard printing function, there is one that executes a process based on an instruction from the OS following the process of the OS-standard printing function, like the auxiliary program disclosed in Patent Document 1. Such a program is also called a support program and operates in cooperation with the OS, so an extension of the OS-standard printing function can be expected. In a configuration having such a support program, a new technology for using a printer is desired.

[0006] A support program designed to solve the above-mentioned problems is executable by the computer of the information processing device and is a support program that supports a general-purpose printing program of the operating system of the information processing device, and is capable of causing the computer to execute: a virtual printer creation process that instructs the operating system to create a printer queue for a virtual printer associated with the support program, and causes the operating system to create a printer queue for the virtual printer; and a read process that reads setting information including specific information that identifies an actual printer from a predetermined storage area accessible by the support program, and is configured to cause the computer to execute: an image data acquisition process that acquires image data indicating the image to be printed from the general-purpose printing program when a print command has been output from an application program incorporated in the information processing device in which the virtual printer has been selected, and the general-purpose printing program has requested processing, and is configured to execute: an image data acquisition process that acquires image data indicating the image to be printed from the general-purpose printing program; and a transmit process that transmits a print job including print data based on the image data acquired in the image data acquisition process to the actual printer identified by the specific information included in the setting information read in the read process.

[0007] The support program disclosed herein causes the OS to create a printer queue for the virtual printer associated with the support program, and then reads configuration information, including specific information for identifying the actual printer, which the user has previously stored in a predetermined storage area, from that storage area to identify the actual printer on which to print. When a print command is received in response to the virtual printer being selected, the support program sends a print job based on that print command to the actual printer identified by the specific information. In this way, while utilizing the virtual printer, the user can identify the printer on which to perform printing using configuration information they have prepared, thereby enabling the use of that printer.

[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.

[0009] The technology disclosed herein enables the use of a printer by coordinating the OS standard printing function with a support program.

[0010] This is a block diagram illustrating the outline of a printing system. This is a block diagram illustrating the outline of the electrical configuration of a PC. This is a sequence diagram showing an example of the installation procedure. This is a sequence diagram showing an example of the printer selection and print settings procedure. This is an explanatory diagram showing an example of the print settings screen. This is a sequence diagram showing an example of the device identification procedure. This is an explanatory diagram showing an example of the advanced settings screen. This is a sequence diagram showing an example of the print execution procedure. This is a block diagram illustrating a different type of printing system.

[0011] The following describes in detail the personal computer (hereinafter referred to as "PC") that utilizes the support program of this form, and the printing system that has a PC, with reference to the attached drawings.

[0012] [Configuration of the Printing System] As shown in Figure 1, the printing system 100 in this embodiment includes a PC 1, a PC 10, and a printer 31. PC 1, PC 10, and the printer 31 are connected to a LAN (Local Area Network) 20 and are able to communicate with each other. PC 1 and PC 10 may be the same model or different models.

[0013] [PC Configuration] As shown in Figure 2, PC1 in this configuration includes a CPU 11 and a controller 10 which includes memory 12. PC1 is an example of an information processing device. CPU 11 is an example of a computer. PC1 also 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 Figure 2 is a general term for the hardware and software used to control PC1, and does not necessarily represent a single piece of hardware actually present in PC1.

[0014] 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 various data. Memory 12 is also used as a workspace when executing various programs, for example. 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.

[0015] 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 an input acceptance function, or it may include a touch panel that has the functions of a display 13a and an input acceptance function.

[0016] The communication interface 14 includes hardware for communicating with external devices. The communication standards for the communication interface 14 include Ethernet®, Wi-Fi®, USB, etc. 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.

[0017] As shown in Figure 2, 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. The editing application 43 is an example of an application program.

[0018] Furthermore, a designated storage area 24 is provided in the memory 12, and the setting information 25 is stored in the designated storage area 24. The designated storage area 24 is an area designated by the printer vendor, and is established, for example, when a program provided by the printer vendor is installed. Specifically, the designated storage area 24 can include the folder where the program is stored, the OS 21 storage area set up for that program (for example, the registry in the case of Windows®), or a folder designated by the printer vendor. Details of the setting information 25 will be described later.

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

[0020] 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 as part of OS21. For example, it is packaged with OS21 and installed on PC1. In other words, PC1 is equipped with OS21 which has 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 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.

[0021] 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 supports general-purpose functions that enable printing on many printers. The general-purpose printing program 41 can communicate with various printers via the OS 21, 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 support functions 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.

[0022] The general-purpose printing program 41 is a program that, based on user instructions, receives image data designated as the print target 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.

[0023] 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 embodiment, 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).

[0024] 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.

[0025] 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 the OS21, depending on the type and model of the detected printer, and install it into PC1. The 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.

[0026] 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.

[0027] PC1 can connect to various printers that have both printing and communication functions. Among these printers, some are compatible with IPP, a communication standard used by the general-purpose printing program 41, while others are not. When a printer with printing capabilities that can perform IPP-based communication is detected and connected by PC1, the OS 21 is configured to automatically create a printer queue 22a for that actual printer and associate it with the corresponding auxiliary program 42. Consequently, 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.

[0028] 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.

[0029] As shown in Figure 1, a printer 31 having both printing and communication functions is connected to the PC 1 in this configuration. The printer 31 may also have scanning, copying, fax sending / receiving, and email sending / receiving functions in addition to printing functions, and in this specification, printers with these functions are also referred to as "printers." The printer 31 in this configuration is, for example, a non-IPP compatible printer. Examples of non-IPP compatible printers 31 include label printers specialized in printing on label paper, USB-only printers equipped only with USB communication functions, and older printers equipped only with older communication functions.

[0030] [PC Control] Next, the procedures for various processes in which the PC 1 of this embodiment causes a printer 31 located in the LAN 20 that does not support IPP to execute printing based on a print command to the general-purpose print program 41 will be described. In this embodiment, processes other than user operations basically refer to the processing of the CPU 11 in accordance with instructions written in programs such as the auxiliary program 42. In this specification, the various processes that the controller 10 or CPU 11 performs in accordance with programs such as the auxiliary program 42, the general-purpose print program 41, and the OS 21 may be described, for convenience, as if each program were to perform the various processes independently. The processing by the CPU 11 also includes hardware control using the API of the OS 21. In this specification, a detailed description of the OS 21 is omitted and the operation of each program is described. Also, "acquisition" is used as a concept in which a request is not mandatory.

[0031] [Installation Procedure for the Auxiliary Program] First, the installation procedure for installing the auxiliary program 42 on PC1 will be explained with reference to the sequence diagram in Figure 3.

[0032] To install the auxiliary program 42, the administrator of LAN 20 first distributes a setup file for installing the auxiliary program 42 for the virtual printer to PC 1 (A00). PC 1, 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. The OS 21 installs the auxiliary program 42 to PC 1 based on the distributed setup file (A01).

[0033] 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.

[0034] 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 2, associates it with the information passed from the auxiliary program 42, and stores it in memory 12 (A03). A02, which is the process that causes the general-purpose printing program 41 to execute A03, is an example of a virtual printer creation process. After the completion of the process in A03, the general-purpose printing program 41 notifies the auxiliary program 42 that the registration of the virtual printer has been completed (A04).

[0035] 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 the IPP connected to PC1, as well as the display name of the virtual printer registered in response to the instructions from A02.

[0036] The auxiliary program 42 causes the printer queue 22b for the virtual printer to be established during installation, so that the virtual printer can be selected immediately after installation. At this stage, however, only the display name of the virtual printer is registered, and it is not associated with an actual printer. Registering the virtual printer during installation saves the user the trouble of having to perform operations to establish the printer queue 22b for the virtual printer.

[0037] Upon receiving notification A04, the auxiliary program 42 registers a virtual printer print event and a virtual printer UI event with the general-purpose printing program 41 (A11, A12). The general-purpose printing program 41 issues events for virtual printers if the printer selected as the control target is a virtual printer, according to the procedure described later. Each event for a 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.

[0038] Furthermore, the setup file distributed by the administrator includes configuration information 25 containing various information in addition to the auxiliary program 42. Specifically, the configuration information 25 includes at least specific information to identify an actual printer. Examples of specific information include the IP address, node name, port number, and model name of the actual printer. In addition, the configuration information 25 may also include capability information indicating the capabilities of the actual printer identified by the specific information, default information indicating the default values ​​for each item in the print settings, and restriction information indicating print parameters that restrict execution. The user stores the configuration information 25 contained in the distributed setup file in the designated storage area 24 of memory 12 (A21). Note that the configuration information 25 may be automatically stored in the designated storage area 24 when the auxiliary program 42 is installed. The designated storage area 24 is a predetermined area within memory 12 that is accessible to the auxiliary program 42.

[0039] The auxiliary program 42 reads the configuration information 25 from the designated storage area 24 (A22) and caches the read configuration information 25 (A23). As a result, the auxiliary program 42 included in the distributed setup file holds various information contained in the configuration information 25 included in that setup file. A22 is an example of the reading process. Note that it is not necessary to cache all the information contained in the configuration information 25; only the information necessary for subsequent processing needs to be cached.

[0040] In the procedure described above, the creation of the printer queue 22b for the virtual printer is performed immediately after the installation of the auxiliary program 42. However, this may be omitted during installation and performed based on user instructions after installation. In this case, the reading of the A22 configuration information 25 may be performed either during the installation of the auxiliary program 42 or when the printer queue 22b for the virtual printer is created.

[0041] In addition, the setup file containing the setting information 25 may be distributed not only to the PC 1 but also to other PCs in the LAN 20, such as the PC 10. In that case, in the distributed PC 10 as well, it is similarly possible to install the auxiliary program 42 and create the printer queue 22b of the virtual printer, and the setting information 25 can be cached in the auxiliary program 42.

[0042] Next, with the auxiliary program 42 installed on the PC 1 according to the above-described installation procedure, the procedure for receiving the selection of the printer to be used for printing and the instruction of the print settings will be described with reference to the sequence diagram of FIG. 4.

[0043] The editing application 43 can execute the creation and editing of text and images based on the user's instructions. When the user wants to print the displayed text or image, the user selects printing in the editing application 43 (B01). The user can select printing, for example, from the menu of the operation items provided in the editing application 43. When the editing application 43 receives the selection of printing, it requests the display of a screen for receiving an instruction regarding printing from the general-purpose printing program 41 of the OS 21 (B02).

[0044] The general-purpose printing program 41 causes the print setting screen 50 to be displayed on the user IF 13 in response to the request of the editing application 43 (B03), for example, as shown in FIG. 5. The print setting screen 50 includes a printer selection field 51, an information display field 52, a selection field 53 for basic print settings, a detailed setting button 54, and a print button 55. The print setting screen 50 is a screen for receiving the user's instructions regarding various print settings that can be received by the general-purpose printing program 41. Note that the editing application 43 may display the print setting screen 50.

[0045] The printer selection field 51 is a field for accepting the selection of a printer to execute printing. The information display field 52 is a field for displaying information specified by an auxiliary program corresponding to the printer selected in the printer selection field 51. The basic printing settings selection field 53 is a field for accepting basic settings such as the number of copies to be printed and the orientation of the original. The detailed settings button 54 is a button for accepting an instruction to perform detailed settings not included in the basic printing settings selection field 53. The print button 55 is a button for accepting an instruction to execute printing with the currently selected printing settings.

[0046] The user can select a printer by operating the printer selection field 51 on the currently displayed printing settings screen 50. However, since the printer 31 does not support IPP, it is not included in the options for selecting a printer to execute printing by the general-purpose printing program 41. On the other hand, since a virtual printer was registered during installation, the virtual printer is displayed as an option for selecting a printer by the display name registered in A02 of FIG. 3.

[0047] For example, when registering a virtual printer corresponding to the actual printer 31, by registering a name indicating the printer 31 as the display name of the virtual printer, the user can select the virtual printer by the name of the printer 31. That is, when the user wants to execute printing on the printer 31, the user can select a virtual printer as the device to execute printing at B11.

[0048] For example, when the printer selection field 51 accepts a selection instruction to select a virtual printer as the printer to execute printing (B11), or when the selection of printing at B01 is accepted with a virtual printer selected as the printer to execute printing, the general-purpose printing program 41 starts the auxiliary program 42 corresponding to the selected virtual printer and passes information indicating that the virtual printer has been selected (B12).

[0049] Upon receiving information indicating that a virtual printer has been selected, the auxiliary program 42 executes a procedure to identify the device that will actually perform the printing (B15). The device identification procedure for identifying the device will be explained with reference to the sequence diagram in Figure 6.

[0050] In response to receiving information indicating that a virtual printer has been selected, the auxiliary program 42 identifies the printer to be controlled based on the configuration information 25 cached in A23 (C01). Specifically, the auxiliary program 42 identifies the actual printer to be printed from the specific information contained in the cached configuration information 25. In this embodiment, the specific information stores information that identifies printer 31, and it is assumed that printer 31 has been identified in C01.

[0051] The auxiliary program 42 identifies the actual printer to be used for printing based on specific information contained in the configuration information 25 prepared by the administrator. This allows the administrator to manage the printer used by PC 1 using the configuration information 25.

[0052] Furthermore, after identifying the actual printer, the auxiliary program 42 may attempt to communicate with the identified actual printer to confirm whether or not the identified actual printer exists. If the identified actual printer does not exist, the program may perform a printer search and identify the actual printer by accepting a user selection from the searched printers, or it may generate an error. Also, if reading the setting information 25 fails in A22, the program may perform a printer search and identify the actual printer by accepting a user selection from the searched printers, or it may generate an error.

[0053] After identifying printer 31 as the actual printer, the auxiliary program 42 obtains the capability information of the identified printer 31. Specifically, if the configuration information 25 cached in A23 contains capability information (alt: [Capability information available]), the auxiliary program 42 obtains the capability information contained in the configuration information 25 (C11). C11 is an example of the capability information acquisition process. On the other hand, if the configuration information 25 cached in A23 does not contain capability information (alt: [Capability information not available]), the auxiliary program 42 sends a command to the identified printer 31 to request capability information and obtains the capability information of printer 31 (C12). The auxiliary program 42 obtains capability information from the actual printer using a communication standard that is compatible with the actual printer, for example, by using MIB (abbreviation for Management Information Base).

[0054] The capability information includes information on items that can be set as print settings and parameters that can be set for each item. The information on parameters that can be set for each item may be the values ​​that can be set as parameters themselves, or a range of values ​​that can be set. Specifically, the capability information may include, for example, information on parameters related to the paper feed tray and paper output tray that can be used by the printer 31, and information on parameters related to paper size and paper type. The capability information may also include information on printing functions that the printer 31 can support, such as double-sided printing, color printing, and storage printing, information on image processing functions such as print resolution, image scaling, and image rotation, information on extended functions such as power saving control and silent control, and status information such as remaining consumables. The capability information may also include information on default values ​​for print settings. Furthermore, if the specified printer 31 is a label printer, the capability information may also include information on, for example, the types and sizes of labels that can be attached, whether or not there is a function for cutting labels, whether or not there is a color printing function, and the types of fonts and symbols that can be printed.

[0055] If capability information is included in the configuration information 25, the process of obtaining capability information from the identified actual printer, printer 31, can be omitted. Furthermore, the capability information included in the configuration information 25 is prepared in advance by the administrator and can be different from the capability information of the actual printer. For example, if printer 31 is capable of color printing but color printing is to be prohibited, the color printing parameter can be excluded from the capability information included in the configuration information 25, thereby making it impossible to set color printing. In this way, by preparing capability information, the administrator can also restrict the use of some functions of the actual printer.

[0056] After obtaining capability information, if the configuration information 25 cached in A23 contains default information (opt: [default information available]), the auxiliary program 42 changes the default values ​​included in the capability information according to the default information included in the configuration information 25 (C21). For example, if the default information contains information to set the initial value of the color setting to monochrome, the capability information is changed to set the initial value of the color setting to monochrome.

[0057] Furthermore, after obtaining capability information, if the cached configuration information 25 in A23 contains restriction information (opt: [restriction information present]), the auxiliary program 42 changes the capability value shown in the capability information according to the restriction information contained in the configuration information 25 (C31). The restriction information stores information indicating print parameters that restrict execution and the range of settings that can be set. For example, if the restriction information stores that single-sided printing cannot be set as a setting item for double-sided printing in the print settings, the capability information is changed to remove the print parameter indicating single-sided printing from the capability information. Also, for example, if the restriction information has an upper limit on the number of copies, the capability information is changed to add the upper limit value to the number of copies item.

[0058] The auxiliary program 42 sets the conditions for using the printer 31 based on the default information and restriction information provided by the administrator. This allows the administrator to manage the operation of the printer on PC 1 to which the configuration information 25 has been distributed. Default information and restriction information are examples of condition information.

[0059] The auxiliary program 42 stores information indicating printer 31 and capability information as information about the actual printer corresponding to the virtual printer (C41). The capability information that the auxiliary program 42 stores in memory 12 may include all of the acquired capability information, or it may include only a part of the acquired capability information.

[0060] Returning to the explanation of the procedure in Figure 4, the auxiliary program 42 may update the information displayed on the print settings screen 50 (see Figure 5) shown in B03 when it identifies the actual printer corresponding to the virtual printer. For example, the auxiliary program 42 may create information about the printer 31 to be displayed in the information display field 52 and the basic print settings selection field 53, and pass it to the general-purpose print program 41.

[0061] When the general-purpose printing program 41 receives an operation on the detailed settings button 54 of the displayed print settings screen 50 (B21), it starts the auxiliary program 42 and gives an instruction to start accepting detailed print settings (B22). If the selected device is a virtual printer, the general-purpose printing program 41 issues a virtual printer UI event, for example, registered in A12 of Figure 3. The auxiliary program 42 receives the virtual printer UI event and determines that a virtual printer is selected.

[0062] The auxiliary program 42, having received an instruction to accept detailed print settings for printing on the virtual printer, displays a detailed settings screen on the user interface 13's display 13a that accepts detailed print settings for printing on the actual printer corresponding to the virtual printer (B23). B23 is an example of the display process. If the printer identification procedure in B15 has been executed, the auxiliary program 42 displays a detailed settings screen suitable for printer 31, as printer 31 has been identified as the actual printer corresponding to the virtual printer. Furthermore, if the capability information has been changed by default information or limitation information, the auxiliary program 42 displays a detailed settings screen based on the changed capability information. For example, if a limit on the number of copies is set by limitation information, inputting a value exceeding the limit is prohibited. Also, if monochrome is specified as the default value for the color setting by default information, monochrome is displayed as the default value.

[0063] If the printer 31 is a label printer, the auxiliary program 42 displays a detailed settings screen 60 on the user interface 13, which can accept various settings that can be set on the label printer, as shown in Figure 7. On this detailed settings screen 60, the auxiliary program 42 can accept settings such as the type and size of the label to be used and whether or not to use the cutting function. In other words, on the detailed settings screen 60, the auxiliary program 42 can accept settings that are not supported by the general-purpose printing program 41, as long as they are supported by the printer 31.

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

[0065] The user determines the print settings to be used on the detailed settings screen displayed in B23 (B24). The auxiliary program 42 associates the print settings information determined by the user's operation with the virtual printer and stores it in memory 12 (B25). The auxiliary program 42 notifies the general-purpose print program 41 that the processing related to the detailed settings instruction received in B22 is complete (B26).

[0066] Next, the printing procedure will be explained with reference to the sequence diagram in Figure 8. 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 printer 31, since the general-purpose printing program 41 is built into the OS 21 of the PC1. The editing application 43 outputs the information of the received print command to the general-purpose printing program 41 (D02).

[0067] 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 into an intermediate data format (D03).

[0068] 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 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.

[0069] After generating intermediate data, the general-purpose printing program 41 starts an auxiliary program 42 corresponding to the selected virtual printer and passes information indicating that it has received a print execution command (D11). The general-purpose printing program 41 issues, for example, a virtual printer print event. Upon receiving the virtual printer print event, the auxiliary program 42 determines that it is a print command to the virtual printer.

[0070] 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, D11 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.

[0071] Since the virtual printer has been selected, the auxiliary program 42 passes an instruction to the general-purpose printing program 41 to skip rendering by the general-purpose printing program 41 (D12). If the printer identification procedure described above (see Figure 6) has not been performed, that is, if the actual printer corresponding to the virtual printer has not been identified, the auxiliary program 42 may perform the printer identification procedure based on the instruction D11. This allows the auxiliary program 42 to identify printer 31 as the actual printer to perform printing and to obtain the capability information of printer 31. Furthermore, even if the printer identification procedure has already been performed, the auxiliary program 42 may perform the same process again in response to D11.

[0072] 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 (D15). The auxiliary program 42 requests the general-purpose printing program 41 to acquire information about the intermediate data generated by the general-purpose printing program 41 (D16). D16 is an example of image data acquisition processing.

[0073] The auxiliary program 42 edits the acquired intermediate data as needed (D17). The auxiliary program 42 may, for example, determine whether or not it is necessary to edit the intermediate data based on the information stored in B25 of Figure 4. For example, if a process to be executed by the printer 31 is set, the auxiliary program 42 may add a command indicating that process to the intermediate data.

[0074] The auxiliary program 42 generates print data in a format compatible with the printer 31 (D21) based on the intermediate data edited in D17, or the intermediate data received from the general-purpose printing program 41 in D16, and the print settings and capability information stored in B25 of Figure 4. By having the auxiliary program 42 generate print data, it is possible to generate print data in a format that can be printed by the printer 31, even if the general-purpose printing program 41 does not support that format. Furthermore, since the auxiliary program 42 generates print data that is suitable for the capability information of the printer 31, the printer 31 can print appropriately based on that print data.

[0075] Furthermore, if the print data usable for printing by printer 31 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, for example, passes the edited intermediate data from D17 to the general-purpose printing program 41 and requests the generation of print data.

[0076] If the general-purpose printing program 41 is used to generate the print data, the processing of the auxiliary program 42 is reduced, and the program size of the auxiliary program 42 can be reduced. On the other hand, when the auxiliary program 42 generates the data, there is greater flexibility compared to when the general-purpose printing program 41 is used, and there is a higher probability that print data suitable for printing on the printer 31 will be generated. Also, if the editing application 43 has a function to generate print data suitable for the printer 31, the auxiliary program 42 may have the editing application 43 generate the print data.

[0077] The auxiliary program 42 then sends the print job containing the generated print data to the printer 31 (D22). D22 is an example of the transmission process. The auxiliary program 42 sends the print data to the printer 31 identified by C01 using a communication protocol suitable for the printer 31. Since the auxiliary program 42 sends the print data using a communication protocol suitable for the printer 31, 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.

[0078] When printer 31 receives a print job from PC 1, it executes printing based on the print data contained in the received print job (D25). The auxiliary program 42 sends a suitable print job to printer 31, so that printer 31 can print appropriately based on the print job.

[0079] After the auxiliary program 42 sends the print data to the printer 31, it notifies the general-purpose printing program 41 that the print event has ended (D31).

[0080] As explained in detail above, the auxiliary program 42 in this embodiment causes the OS 21 to create a printer queue 22b for the virtual printer associated with the auxiliary program 42. Furthermore, the auxiliary program 42 reads the configuration information 25, which contains specific information for identifying the actual printer and has been previously stored by the user in the designated storage area 24, and identifies the actual printer to perform the printing. Then, when a print command is received in response to the selection of that virtual printer, the auxiliary program 42 sends a print job based on that print command to the printer 31, which is the actual printer identified by the specific information. In this way, while utilizing the virtual printer, the printer 31 can be used by identifying the printer to perform the printing using the configuration information 25 provided by the user.

[0081] Furthermore, as shown in Figure 9, we will describe the case where PC1, PC10, and printer 31 are located in the environment of a cloud service provided by the cloud server 30 (for example, Azure AD provided by Microsoft). In this environment, if the administrator of LAN 20 wants to automatically configure client PCs within LAN 20 to use a specific printer within LAN 20, using the cloud printing service included in the cloud service provided by the cloud server 30 (for example, Azure AD Universal Print provided by Microsoft) allows for easy configuration of printer 31 for use by PC1 and PC10. On the other hand, printing via the cloud server 30 places a communication load on it and takes time. In particular, when using printer 31 located within LAN 20, printing via the cloud server 30 located outside of LAN 20 is a significant waste of communication resources.

[0082] The configuration shown in Figure 1, etc., can also be constructed within the environment shown in Figure 9. Therefore, by having the administrator prepare configuration information 25 containing identification information for identifying printer 31 within the LAN 20, and distribute it to PCs 1 and 10 within the LAN 20, the auxiliary program 42 for virtual printers installed on each PC can identify printer 31 as the printer to be used, and print jobs can be passed to the identified printer 31, without going through the cloud server 30. This realizes a new technology for using printers that differs from the technology that utilizes the cloud server 30.

[0083] 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, PC1 may have three or more printers connected to it.

[0084] 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.

[0085] Furthermore, although printer 31 does not support IPP in this embodiment, it may support IPP. In other words, a printer that supports IPP can also be specified as the actual printer to be controlled by the virtual printer.

[0086] Furthermore, the timing of executing the printer identification procedure when a virtual printer is selected is not limited to the timing shown in the embodiment. For example, the auxiliary program 42 may not execute the printer identification procedure when the virtual printer B12 is selected, but rather when it receives the detailed setting instruction B22. Alternatively, for example, after the auxiliary program 42 is installed, the auxiliary program 42 may be started by the user before the print settings screen is displayed in B03. In that case, the auxiliary program 42 may execute the printer identification procedure as a result of being started.

[0087] Furthermore, the auxiliary program 42 reads the configuration information 25 from the designated storage area 24 after creating the print queue 22b for the virtual printer during installation (A22). However, the timing of reading the configuration information 25 is not limited to installation; for example, it may be when the auxiliary program 42 is called when a virtual printer is selected, i.e., before executing C01 by B15. In this case, the read configuration information 25 may or may not be cached. Note that by reading and caching the configuration information 25 during installation, it becomes unnecessary to read the configuration information 25 during print settings and print execution. On the other hand, by reading the configuration information 25 from the designated storage area 24 each time a virtual printer is selected, even if the configuration information 25 stored in the designated storage area 24 is updated, the latest updated configuration information 25 can be read when the virtual printer is selected, and the updates can be reflected.

[0088] Furthermore, when the printer 31 is identified as the device corresponding to the virtual printer, the auxiliary program 42 may either treat the print instruction received from the general-purpose print program 41 as an error, or process it to make it suitable for the printer 31.

[0089] Furthermore, although the embodiment described the case where a virtual printer is selected, the general-purpose printing program 41 can also accept the selection of printers other than virtual printers. If a printer other than a virtual printer, such as an IPP-compatible printer, is selected, the general-purpose printing program 41 can identify the printer to actually perform the printing. In this case, the auxiliary program 42 does not need to use the setting information 25 and can acquire capability information and send print data via the general-purpose printing program 41.

[0090] Furthermore, if, after the print settings screen is displayed by the general-purpose print program 41, the user changes the default printer from another printer to a virtual printer via the OS 21, the general-purpose print program 41 may also start the auxiliary program 42. In addition, the auxiliary program 42 may be started not only when printing is selected, but also, for example, when a virtual printer is selected as a device setting. In these cases as well, the auxiliary program 42 may be able to execute printer procedures to identify the printer as the actual printer corresponding to the virtual printer.

[0091] Furthermore, although the embodiment describes only the printing operation as the operation of the auxiliary program 42 in detail, 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.

[0092] 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.

[0093] 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.

[0094] 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.

[0095] 1 PC 11 CPU 13 User Interface 25 Configuration Information 31 Printer 42 Auxiliary Programs

Claims

1. A support program that is executable by the computer of an information processing device and supports a general-purpose printing program of the operating system of the information processing device, wherein the support program is capable of causing the computer to: perform a virtual printer creation process that instructs the operating system to create a printer queue for a virtual printer associated with the support program, and causes the operating system to create a printer queue for the virtual printer; and perform a read process that reads setting information including specific information that identifies an actual printer from a predetermined storage area accessible by the support program, and further causes the computer to perform an image data acquisition process that obtains image data indicating the image to be printed from the general-purpose printing program when a print command has been output from an application program incorporated in the information processing device in which the virtual printer has been selected, and the general-purpose printing program has requested processing, and performs a transmit process that transmits a print job including print data based on the image data acquired in the image data acquisition process to the actual printer identified by the specific information included in the setting information read in the read process.

2. A support program according to claim 1, wherein the support program is configured to cause the computer to execute the read process when the general-purpose printing program requests processing in response to the virtual printer being selected as the printer to be controlled via the print settings screen displayed by the application program.

3. A support program according to claim 1, wherein the support program is configured to cause the computer to execute the virtual printer creation process and the reading process when the support program is installed on the information processing device.

4. A support program according to claim 1, wherein when the computer receives a request from the general-purpose printing program to perform processing in response to a request to display an advanced settings screen, with the virtual printer selected as the printer to be controlled via a print settings screen displayed by the application program, the support program is configured to perform the following: a capability information acquisition process to acquire capability information indicating the capabilities of the actual printer, which is specified by the specific information contained in the setting information read in the read process; and a display process to display an advanced settings screen on the user interface of the information processing device, which accepts print settings for the actual printer, which is specified by the specific information contained in the setting information read in the read process, and is based on the capabilities of the actual printer shown in the capability information acquired in the capability information acquisition process.

5. A support program according to claim 4, wherein the setting information may include condition information indicating the usage conditions of the actual printer identified by the specific information, and the display process is configured to display the detailed setting screen according to the usage conditions indicated in the condition information on the user interface of the information processing device when the setting information read in the read process includes the condition information.

6. A support program according to claim 5, wherein the condition information is information indicating parameters that are prohibited from being used among the parameters that can be set on the actual printer, and the display process is configured to display the detailed settings screen on the user interface of the information processing device, in which the parameters prohibited from being used by the condition information are disabled, when the setting information read in the read process includes the condition information.

7. A support program according to claim 5, wherein the condition information is information that specifies a default value for a predetermined setting item of the print settings of the actual printer as the usage condition, and the display process is configured to display the detailed settings screen, which displays the default value of the predetermined setting item based on the condition information, on the user interface of the information processing device when the setting information read in the read process includes the condition information.

8. A support program according to claim 4, wherein the setting information may include capability information indicating the capabilities of the actual printer identified by the specific information, and the capability information acquisition process is configured such that, if the capability information is not included in the setting information read in the read process, the capability information is acquired by communication with the actual printer identified by the specific information included in the setting information read in the read process, and if the capability information is included in the setting information read in the read process, the capability information included in the setting information read in the read process is acquired without communicating with the actual printer identified by the specific information included in the setting information read in the read process.

9. A support program according to claim 1, wherein the specific information is information that identifies a printer among the printers connected to the information processing device that is compatible with the support program and does not support the communication protocol used by the general-purpose printing program, and the transmission process is configured to transmit the print job to the actual printer identified by the specific information included in the setting information read in the reading process, which does not support the communication protocol used by the general-purpose printing program.