Support Program

A support program facilitates the use of virtual printers by creating a printer queue and identifying corresponding physical printers, addressing the limitations of OS-based printing systems and enhancing compatibility and flexibility.

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

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-30
Publication Date
2026-04-09

Smart Images

  • Figure 2026061535000001_ABST
    Figure 2026061535000001_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 auxiliary program 42 instructs the OS 21 to create a printer queue 22b for the virtual printer associated with the auxiliary program 42, and can identify, for example, an unsupported device 2 as a device corresponding to the virtual printer. Furthermore, when the virtual printer is selected and an instruction to display the detailed settings screen is given, and processing is requested from the general-purpose printing program 41, the auxiliary program 42 displays a detailed settings screen based on the capabilities of the identified unsupported device 2 to the user IF 13. When a print instruction is given with the virtual printer selected, and processing is requested from the general-purpose printing program 41, the auxiliary program 42 acquires image data indicating the image to be printed, and sends a print job containing print data based on the acquired image data to the identified unsupported device 2.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

Background Art

[0002] In recent years, a technology has been put into practical use that controls a printer by using a printing function standard to the operating system (OS) that is a part of the OS instead of using a printer driver provided by a printer vendor. In this technology, when the OS detects a printer, it associates with a general-purpose printing program standard to the OS. After that, when receiving a printing instruction for the printer, without using a printer driver provided by a printer vendor, the general-purpose printing program standard to the OS generates printing data, enabling printing by the general-purpose printing program standard to the OS.

[0003] As a document that discloses a technology for controlling a printer by using a printing function standard to the OS without using a printer driver, for example, there is Patent Document 1. Patent Document 1 discloses an information processing apparatus connected to a printer that does not support a driverless printing function standard to the OS, which starts a print server program registered as a virtual printer, the print server program receives a printing job designated as its own output destination, generates printing data that can be handled by the printer, and the printing data is transmitted to the printer.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] Configurations that use the OS's standard printing function may allow the installation of support programs that perform processing based on instructions from the OS, in conjunction with the OS's standard printing function. Because these support programs work in conjunction with the OS, they can be expected to extend the OS's standard printing function. In configurations with such support programs, effective use of virtual printers for printing is desirable. [Means for solving the problem]

[0006] The support program, which was created to solve the above-mentioned problems, is executable by the computer of the information processing device and is a support program that supports the general-purpose printing program of the operating system of the information processing device, and can instruct the computer to create a printer queue for a virtual printer associated with the support program, and can cause the operating system to execute a virtual printer setting process to set up the printer queue for the virtual printer, and a specification process to identify the actual printer corresponding to the virtual printer, and can further cause the computer to select the virtual printer as the printer to be controlled via a print setting screen displayed by an application program incorporated in the information processing device. In this configuration, when a general-purpose printing program requests processing in response to an instruction to display the detailed settings screen, the system is configured to execute a display process that displays the detailed settings screen, based on the capabilities of the actual printer identified in the specific process, on the user interface of the information processing device. Furthermore, when the general-purpose printing program requests processing in response to a print instruction output from the application program in which the virtual printer is selected, the system 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 transmission process that sends a print job containing print data based on the image data acquired in the image data acquisition process to the actual printer identified in the specific process.

[0007] The support program disclosed herein establishes a printer queue for a virtual printer associated with the support program in the OS and identifies the physical printer corresponding to that virtual printer. Furthermore, when a general-purpose printing program requests processing in response to a print instruction that has selected that virtual printer, the support program sends a print job to that physical printer. Therefore, even if the print instruction is for a general-purpose printing program, print data is sent to that physical printer regardless of whether the physical printer supports the general-purpose printing program or not. This makes it possible to effectively utilize the virtual printer and print on the physical printer based on that print data.

[0008] A new and useful information processing device incorporating the above-mentioned support program, a storage medium readable by a computer that stores the support program, a control method for realizing the functions of the support program, and a printing system including the support program and a printer 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 is a sequence diagram illustrating an example of the steps for selecting a printer and configuring print settings. [Figure 4] This is an explanatory diagram showing an example of a print settings screen. [Figure 5] This sequence diagram shows an example of a device identification procedure. [Figure 6] This is an explanatory diagram showing an example of the detailed settings screen. [Figure 7]This is a sequence diagram showing an example of the printing procedure. [Modes for carrying out the invention]

[0011] The following will provide a detailed explanation of the personal computer (hereinafter referred to as "PC") that utilizes this support program, with reference to the attached diagrams.

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

[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] Communication IF 14 includes hardware for communicating with an external device. Communication standards of the communication IF 14 are Ethernet (registered trademark), Wi-Fi (registered trademark), USB, etc. The PC 1 may be connected to the Internet via the communication IF 14. The PC 1 may be provided with a plurality of communication IF 14 corresponding to a plurality of communication standards.

[0016] As shown in FIG. 1, the memory 12 stores various programs and various data, including an operating system (hereinafter referred to as "OS") 21 including 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.

[0017] The OS 21 is a multitasking OS that can manage and switch a plurality of tasks to process the plurality of tasks in parallel. The OS 21 is, for example, Windows (registered trademark), macOS (registered trademark), Linux (registered trademark), iOS (registered trademark), Android (registered trademark).

[0018] The OS 21 includes a general-purpose printing program 41 and a printer queue 22. The general-purpose printing program 41 is an OS standard program prepared by the vendor of the OS 21 and provided as a part of the OS 21. That is, the PC 1 is equipped with the OS 21 having the general-purpose printing program 41. The general-purpose printing program 41 is not configured to use a printer driver specific to each printer. In the OS 21, as the printer queue 22, an actual printer queue 22a corresponding to an actual printer and a virtual printer queue 22b corresponding to a virtual printer can be registered. Note that the printer queue 22 is also called a print queue.

[0019] The general-purpose printing program 41 is a program having a function for causing printers of a plurality of types provided by a plurality of vendors to execute printing based on a user's instruction. The general-purpose printing program 41 supports general-purpose functions that can execute printing on many printers. The general-purpose printing program 41 can communicate with various printers via the OS 21, for example, by communication according to IPP (abbreviation of Internet Printing Protocol). Note that, unlike a printer driver specific to each printer, the general-purpose printing program 41 does not support functions specific to each printer or printer driver, particularly functions that require complicated processing.

[0020] The general-purpose printing program 41 is a program including a function for receiving image data specified as a printing target in a printing instruction output from various application programs based on a user's instruction and generating intermediate data based on the image data. The intermediate data is, for example, XPS data. The general-purpose printing program 41 further has a function for generating 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. Also, the general-purpose printing program 41 has a function for transmitting the generated print data to a printer specified as a device for executing printing via a communication function by 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, the OS21 of PC1 can download appropriate auxiliary programs from the printer vendor's server or storage specified by OS21, depending on the type and model of the connected printer, and install them into PC1. The OS21 associates the identification information of the installed auxiliary programs with the printer information of the newly connected printer and stores it in memory 12.

[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 devices that have printing and communication functions. These devices include those that support IPP, a communication standard used by the general-purpose printing program 41, and those that do not. When a device with printing capabilities that can perform IPP-based communication is connected to PC1, OS21 is configured to automatically create a printer queue 22a for the actual printer corresponding to that device and associate it with the corresponding auxiliary program. Therefore, the general-purpose printing program 41 can then accept the selection of the connected IPP-compatible device as the device to be used for printing.

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

[0027] As shown in Figure 1, PC1 in this configuration is connected to an unsupported device 2, which has printing capabilities but does not support IPP. Unsupported device 2 is an example of a printer. Examples of unsupported devices 2 include a label printer specialized in printing on label paper, a USB-only printer with only USB communication capabilities, and an older printer with only outdated communication capabilities. PC1 may also be connected to an IPP-compatible device. In addition to printing capabilities, unsupported device 2 may also have scanning, copying, faxing, and other functions.

[0028] A label printer is a device that can accommodate label paper wound in a roll and can print images onto the label paper and transport the label paper in parallel. The label printer can communicate with PC1 by means of wireless LAN communication such as Wi-Fi (registered trademark), short-range wireless communication such as Bluetooth (registered trademark), or wired communication based on the USB standard, and some models support IPP while others do not. If the label printer is an incompatible device 2 connected to PC1, the editing application 43 may be a label creation program for creating and editing images to be printed by the label printer.

[0029] Next, the procedures for various processes that cause the unsupported device 2 to execute printing based on a print instruction to the general-purpose printing program 41 in this configuration of PC1 will be described. In this configuration, 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, for convenience, the various processes that the controller 10 or CPU 11 performs in accordance with programs such as the auxiliary program 42, the general-purpose printing program 41, and the OS 21 may be described as if each program performs the various processes independently. 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 described. Also, "acquisition" is used as a concept that does not necessarily require a request.

[0030] First, the installation procedure for installing the auxiliary program 42 on PC1 will be explained with reference to the sequence diagram in Figure 2.

[0031] OS21 downloads auxiliary program 42 and installs it on PC1 (A01). As mentioned above, if an IPP-compatible printer is connected to PC1, OS21 automatically starts installing auxiliary program 42. On the other hand, if the only printer connected to PC1 is the incompatible device 2, or if OS21 does not automatically install auxiliary program 42, PC1 may be able to accept user instructions to install auxiliary program 42.

[0032] When the auxiliary program 42 is installed on PC1, 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 the information of each registration item required for virtual printer registration, as well as the information of the virtual printer registration instruction. The registration items include, for example, the supported file formats and the display name of the virtual printer.

[0033] 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). A02, which is the process that causes the general-purpose printing program 41 to execute A03, is an example of a virtual printer setting 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 is complete (A04).

[0034] 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 device selection by the user in response to instructions from the editing application 43, for example, it displays a list of devices including information on various printers that are compatible with IPP connected to PC1, as well as the display name of the virtual printer registered in response to the instructions from A02.

[0035] The auxiliary program 42 creates a printer queue 22b for the virtual printer during installation, allowing the user to select the virtual printer immediately after installation. At this stage, the virtual printer is only registered by its display name and is not associated with any actual device. Registering the virtual printer during installation eliminates the need for the user to perform an action to create the printer queue 22b for the virtual printer.

[0036] 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 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 device is a virtual printer.

[0037] Next, with the auxiliary program 42 installed on PC1 using the installation procedure described above, the procedure for selecting the device to be used for printing and receiving instructions for print settings will be explained with reference to the sequence diagram in Figure 3.

[0038] The editing application 43 can create and edit text and images based on user instructions. If the user wants to print the displayed text or image, they select "Print" in the editing application 43 (B01). 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 (B02).

[0039] The general-purpose printing program 41 displays a print settings screen 50 to the user IF 13 in response to a request from the editing application 43, for example, as shown in Figure 4 (B03). 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 also be performed by the editing application 43.

[0040] The printer selection field 51 accepts the selection of the device to perform the printing. The information display field 52 displays information specified by the auxiliary program corresponding to the device 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 accepts instructions to perform detailed settings not included in the basic print settings selection field 53. The print button 55 accepts the instruction to perform printing with the selected print settings.

[0041] The user can select a device by operating the printer selection field 51 on the currently displayed print settings screen 50. However, since the unsupported device 2 does not support IPP, it is not included in the selection of devices for printing using the general-purpose printing program 41. On the other hand, since the virtual printer was registered during installation, the virtual printer is displayed as a device option by the display name registered in A02 of Figure 2.

[0042] For example, when registering a virtual printer that supports unsupported device 2, by registering a name that indicates unsupported device 2 as the display name of the virtual printer, the user can select the virtual printer by the name of unsupported device 2. In other words, if the user wants to print to unsupported device 2, they can select the virtual printer as the device to print to in B11.

[0043] For example, if the printer selection field 51 receives a selection instruction to select a virtual printer as the device to perform printing (B11), or if the printer selection in B01 is received while a virtual printer is selected as the device to perform printing, the general-purpose printing program 41 starts the auxiliary program 42 corresponding to the selected virtual printer and passes information indicating that a virtual printer has been selected (B12).

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

[0045] In response to receiving information indicating that a virtual printer has been selected, the auxiliary program 42 searches for devices connected to PC1 (C01). The auxiliary program 42 receives responses from various devices it can support, for example, by broadcasting a search command (C02). In C01, the auxiliary program 42 searches for devices with printing capabilities using a communication standard supported by the unsupported device 2, rather than IPP. Therefore, if a device can respond to this search command, PC1 may receive responses from both the unsupported device 2 and various devices that support IPP. In other words, the auxiliary program 42 may receive multiple responses.

[0046] If the auxiliary program 42 receives multiple responses (opt:[multiple]), it displays a list of the multiple devices that responded (C05) and accepts the user's selection (C06). Based on the received responses, the auxiliary program 42 displays a list of actual devices connected to PC1 that are compatible with the auxiliary program 42 and accepts the user's selection. The user can, for example, select unsupported device 2 as the device to perform printing.

[0047] If only one device responds, the auxiliary program 42 identifies that device as the device that will actually perform the printing (C07). Alternatively, based on the user's selection received in C06, the auxiliary program 42 identifies the actual printer that will actually perform the printing from among the existing devices (C07). C07 is an example of the identification process. If unsupported device 2 is selected, the auxiliary program 42 identifies unsupported device 2 as the actual printer.

[0048] When the auxiliary program 42 receives responses from multiple devices to the C01 search, it accepts the user's selection and identifies the actual printer to be used. This allows the user to print to the desired printer. Alternatively, instead of displaying a list of devices based on the device search, the auxiliary program 42 may accept device selection by accepting input such as an IP address or port number without performing a device search.

[0049] Furthermore, since auxiliary program 42 received information to specify a virtual printer at B12 in Figure 3, C05 may exclude responses from various IPP-compatible devices and display only devices that do not support IPP. Also, if, for example, among the responding devices, only incompatible device 2 does not support IPP, auxiliary program 42 may skip C05 and C06 and proceed to C07 to identify incompatible device 2 as the actual printer.

[0050] Since the printer queue 22a for actual printers that support IPP is created by OS21, when printing to an IPP-compatible device, the user can send print data to the general-purpose printing program 41 by selecting that printer queue 22a for the actual printer. If only devices that do not support IPP can be identified as actual printers that support the virtual printer, the use of selecting a virtual printer for printing can be limited to printing on devices that do not support IPP.

[0051] If C07 identifies the device as unsupported 2, the auxiliary program 42 sends a command to the identified unsupported device 2 to request capability information and obtains the capability information of the unsupported device 2 (C11). C11 is an example of the capability information acquisition process. The auxiliary program 42 obtains capability information from the unsupported device 2 using a communication standard that the unsupported device 2 can support, for example, by using MIB (abbreviation for Management Information Base).

[0052] The capability information obtained from incompatible device 2 includes information on the print data formats that incompatible device 2 can handle, information on the communication port or IP address for sending print data to incompatible device 2, and information on the settings that can be set as print settings and the parameters that can be set for each setting. The capability information may also include model information of incompatible device 2, information on image processing functions that incompatible device 2 can perform, information indicating the status of incompatible device 2, and information indicating the default print settings.

[0053] If incompatible device 2 is a cut-sheet printer, the capability information may include, for example, information about available paper feed trays and output trays, information about whether it supports various printing functions such as double-sided printing, and information about supported print resolutions. If incompatible device 2 is a label printer, the capability information may include, for example, information about the type and size of the label currently loaded, the types and sizes of labels that can be loaded, whether or not it has a function for cutting labels, whether or not it has a color printing function, and the types of fonts and symbols that can be printed.

[0054] Based on the information received from the unsupported device 2, the auxiliary program 42 stores information indicating the unsupported device 2 and capability information as information about the actual printer corresponding to the virtual printer (C12). The capability information that the auxiliary program 42 stores in memory 12 may include all of the capability information obtained from the unsupported device 2, or it may include only some of the capability information obtained from the unsupported device 2.

[0055] Returning to the explanation of the procedure in Figure 3, the auxiliary program 42 may update the information displayed on the print settings screen 50 (see Figure 4) shown in B03 if it identifies the actual printer corresponding to the virtual printer. For example, the auxiliary program 42 may create information about the unsupported device 2 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.

[0056] 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 begin 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 2. The auxiliary program 42 receives the virtual printer UI event and determines that a virtual printer is selected.

[0057] Having received an instruction from the user to accept detailed print settings for printing on the virtual printer, the auxiliary program 42 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 device identification procedure in B15 has already been performed, the auxiliary program 42 displays a detailed settings screen suitable for the unsupported device 2, as the unsupported device 2 has been identified as the actual printer corresponding to the virtual printer. If the actual printer has not been identified, the auxiliary program 42, upon receiving the instruction in B22, performs the device identification procedure shown in Figure 5, and then performs B23.

[0058] If the unsupported device 2 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 6. 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 unsupported device 2.

[0059] 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 a virtual printer and stores it in memory 12 (B25). The auxiliary program 42 notifies the general-purpose print program 41 that the processing of the detailed settings instruction received in B22 is complete (B26).

[0060] Next, the printing procedure will be explained with reference to the sequence diagram in Figure 7. 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 unsupported device 2, 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).

[0061] 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).

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

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

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

[0065] Since the virtual printer is 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 device identification procedure described above (see Figure 5) 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 device identification procedure based on the instruction in D11. This allows the auxiliary program 42 to identify the unsupported device 2 as the actual printer to perform printing and to obtain the capability information of the unsupported device 2. Furthermore, even if the device identification procedure has already been performed, the auxiliary program 42 may perform the same process again in response to D11.

[0066] 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 obtain information about the intermediate data generated by the general-purpose printing program 41 (D16). D16 is an example of image data acquisition processing.

[0067] 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 B24 of Figure 3. For example, if a process to be executed on the unsupported device 2 is set, the auxiliary program 42 may add a command indicating that process to the intermediate data.

[0068] The auxiliary program 42 generates print data in a format compatible with the incompatible device 2 (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 B24 of Figure 3. D21 is an example of the generation process. By generating print data with the auxiliary program 42, it is possible to generate print data in a format that can be printed by the incompatible device 2, even if the general-purpose printing program 41 does not support that format. Furthermore, since the auxiliary program 42 generates print data suitable for the capability information of the incompatible device 2, the incompatible device 2 can print appropriately based on that print data.

[0069] Furthermore, if the print data available for printing on the incompatible device 2 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 the print data.

[0070] 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 unsupported device 2 will be generated. Also, if the editing application 43 has a function to generate print data suitable for the unsupported device 2, the auxiliary program 42 may have the editing application 43 generate the print data.

[0071] Then, the auxiliary program 42 sends the print job containing the generated print data to the unsupported device 2 (D22). D22 is an example of the transmission process. The auxiliary program 42 uses a communication protocol suitable for the unsupported device 2, rather than IPP, and sends the print data to the unsupported device 2, for example, by using the communication port or IP address information obtained in the device identification procedure.

[0072] When the unsupported device 2 receives a print job, it performs printing based on the print data contained in the received print job (D25). The auxiliary program 42 sends a print job suitable for the unsupported device 2, so that the unsupported device 2 can print properly based on the print job.

[0073] After sending the print data to the unsupported device 2, the auxiliary program 42 notifies the general-purpose printing program 41 that the print event has ended (D31).

[0074] As explained in detail above, the auxiliary program 42 in this embodiment causes the OS 21 to set up a printer queue 22b for the virtual printer in association with itself, and identifies, for example, an unsupported device 2 as the actual printer corresponding to that virtual printer. Furthermore, when a print command is received in response to the selection of the virtual printer, the auxiliary program 42 obtains image data from the general-purpose print program 41 when processing is requested from the general-purpose print program 41, and sends print data based on the obtained image data to the actual printer identified as corresponding to the virtual printer. Therefore, print data is sent to the actual printer regardless of whether the identified actual printer supports IPP or not. This makes it possible to effectively utilize the virtual printer and cause the actual printer corresponding to the virtual printer to execute printing based on the print data, based on the print command given to the general-purpose print program 41.

[0075] 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, two or more incompatible devices may be connected to PC1.

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

[0077] Furthermore, the timing of executing the device identification procedure when a virtual printer is selected is not limited to the example of this embodiment. For example, the auxiliary program 42 may not execute the device identification procedure when the virtual printer in B12 is selected, but rather when it receives the detailed setting instruction in B22. Alternatively, for example, the general-purpose printing program 41 may start the auxiliary program 42 before displaying the print settings screen in B03. In that case, the auxiliary program 42 may execute the device identification procedure as a result of being started. Also, if the capability information of the unsupported device 2 is stored in memory 12 in association with the virtual printer, the auxiliary program 42 may identify the unsupported device 2 as a device compatible with the virtual printer without performing a device search.

[0078] Furthermore, if the auxiliary program 42 has identified unsupported device 2 as the device corresponding to the virtual printer, and the print instruction received from the general-purpose print program 41 contains print settings or image data unsuitable for unsupported device 2, it may either treat it as an error or process it to make it suitable for unsupported device 2.

[0079] Furthermore, after the installation in A01 in Figure 2 is completed, the auxiliary program 42 may check whether an unsupported device 2 is connected before issuing the registration instruction in A02. For example, the auxiliary program 42 may search for compatible devices itself and execute A02 to A12 if a device that does not support IPP is found. Also, before issuing the registration instruction in A02, the auxiliary program 42 may ask the user whether or not to set up a printer queue 22b for the virtual printer.

[0080] Furthermore, in step C12 of the device identification procedure shown in Figure 5, the auxiliary program 42 is said to store the acquired capability information of the incompatible device 2, but it is not necessary to store it. However, if the acquired capability information is stored, the auxiliary program 42 can easily use the capability information by reading it from memory 12 if there is no possibility that the capability has changed.

[0081] 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 an IPP-compatible printer is selected instead of a virtual printer, the general-purpose printing program 41 can identify the device on which to actually perform the printing. In this case, the auxiliary program 42 does not need to search for a device and can obtain capability information and send print data via the general-purpose printing program 41.

[0082] 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 a device identification procedure to identify the unsupported device 2 as the actual printer corresponding to the virtual printer.

[0083] 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 as well. 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.

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

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

[0086] 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]

[0087] 1 PC 2. Unsupported devices 11 CPU 13 User Interface

Claims

1. A support program that is executable by the computer of the information processing device and supports a general-purpose printing program that has an operating system of the information processing device, To the aforementioned computer, The support program instructs the operating system to create a printer queue for the associated virtual printer, and the virtual printer configuration process instructs the operating system to set up the printer queue for the virtual printer. A process to identify the actual printer corresponding to the virtual printer, It is possible to make it run, The aforementioned computer further: When the virtual printer is selected as the printer to be controlled via the print settings screen displayed by the application program incorporated in the information processing device, and a command to display the detailed settings screen is issued, the general-purpose printing program requests processing, The information processing device executes a display process to display the detailed settings screen, based on the capabilities of the actual printer identified in the specified process, on the user interface of the information processing device. The aforementioned computer further: When a print command is output from the application program and the virtual printer is selected, and the general-purpose printing program requests processing in response to the print command, Image data acquisition process to acquire image data indicating the image to be printed from the general-purpose printing program, A transmission process that sends a print job, which includes print data based on the image data acquired in the image data acquisition process, to the actual printer identified in the identification process. To execute A support program configured in this way.

2. In the support program described in claim 1, In the aforementioned specific process, The support program searches for compatible printers, and one of the found printers is identified as the actual printer corresponding to the virtual printer. A support program configured in this way.

3. In the support program described in claim 2, To the aforementioned computer, When the general-purpose printing program requests processing in response to the selection of the virtual printer as the printer to be controlled via the print settings screen displayed by the application program incorporated in the information processing device, the specific processing is executed. A support program configured in this way.

4. In the support program described in claim 2, To the aforementioned computer, When the virtual printer is selected as the printer to be controlled via the print settings screen displayed by the application program incorporated in the information processing device, and a display instruction is given on the detailed settings screen, the general-purpose printing program requests processing, in which case the specific processing and the display processing are executed. A support program configured in this way.

5. In the support program described in claim 2, In the aforementioned specific process, When the support program searches for compatible printers, it allows the user to select one of the multiple printers found via the user interface of the information processing device, and the selected printer is identified as the actual printer corresponding to the virtual printer. A support program configured in this way.

6. In the support program described in claim 1, To the aforementioned computer, After the specified process is executed, it is possible to execute a capability information acquisition process to acquire capability information indicating the capabilities of the actual printer identified in the specified process. In the aforementioned transmission process, The print job, which is suitable for the capability information obtained in the capability information acquisition process, is sent to the actual printer identified in the identification process. A support program configured in this way.

7. In the support program described in claim 6, To the aforementioned computer, Based on the image data acquired in the image data acquisition process, and according to the capability information acquired in the capability information acquisition process, a generation process is executed to generate print data in a format compatible with the actual printer identified in the identification process. In the aforementioned transmission process, The print job, including the print data generated in the generation process, is sent to the actual printer identified in the identification process. A support program configured in this way.

8. In the support program described in claim 7, In the aforementioned specific process, The label printer connected to the information processing device is identified as the actual printer corresponding to the virtual printer, In the above generation process, Based on the image data acquired in the image data acquisition process, and according to the capability information acquired in the capability information acquisition process, print data in a format compatible with the label printer identified in the identification process is generated. In the aforementioned transmission process, The print job, which includes the print data generated in the generation process, is sent to the label printer identified in the identification process. A support program configured in this way.

9. In the support program described in claim 1, To the aforementioned computer, When installed on the information processing device, the virtual printer configuration process is executed. A support program configured in this way.

10. In the support program described in claim 1, In the aforementioned specific process, Among the printers connected to the information processing device, a printer that is compatible with the support program and does not support the communication protocol used by the general-purpose printing program is identified as the actual printer corresponding to the virtual printer. A support program configured in this way.

Citation Information

Patent Citations

  • Application program

    JP2019175313A