Virtual printer program product, printing control device, and printing method
By disguising as a printer and communicating with the general printer driver, the problem that the general printer driver cannot realize cloud printing is solved, and communication with the cloud printing server and the utilization of cloud printing services is realized.
Patent Information
- Application Number
- CN202510085318.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-23
- Filing Date
- 2025-01-20
- Publication Date
- 2025-07-25
AI Technical Summary
In the prior art, cloud printing cannot be realized using OS standard general printer drivers, and they cannot communicate effectively with the printing server, resulting in the inability to utilize cloud printing services.
The virtual printer program disguises itself as a printer and communicates with the general printer driver and communicates with the cloud printing server to realize the sending of printing tasks and cloud printing.
The cloud printing is implemented using a universal printer driver, extending the functions of a universal printer driver, and being able to utilize cloud printing services.
Smart Images

Figure CN120371230A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a virtual printer program product, a printing control device, and a printing method. Background Art
[0002] In Patent Document 1, a technique is disclosed that reduces the labor and time of a user related to the download and installation of a printer vendor-specific driver even in an environment where a printer driver compliant with the OS (Operating System) standard is installed. Such a general printer driver compliant with the OS standard does not handle printing implemented via a printing server, i.e., cloud printing or local printing.
[0003] There is a demand to enable printing implemented via a printing server, i.e., cloud printing or local printing, using a general printer driver such as an OS standard printer driver without using a printer vendor-specific driver.
[0004] Patent Document 1: Japanese Unexamined Patent Application Publication No. 2021-43547 Summary of the Invention
[0005] A virtual printer program product according to one aspect of the present disclosure causes a computer to execute the following processing: a first communication process of communicating with a general printer driver by pretending to be a printer with respect to the general printer driver; a second communication process of communicating with a printing server; and a printing process of sending a print job obtained from the general printer driver in the first communication process to the printing server in the second communication process and causing a printer connected to the printing server via a network to perform printing.
[0006] A printing control device according to one aspect of the present disclosure includes: a general printer driver; a first communication processing unit that communicates with the general printer driver by pretending to be a printer with respect to the general printer driver; a second communication processing unit that communicates with a printing server; and a printing processing unit that sends a print job obtained from the general printer driver in the first communication processing unit to the printing server in the second communication processing unit and causes a printer connected to the printing server via a network to perform printing.
[0007] One printing method according to an aspect of the present disclosure includes a printing process in which a printing task obtained from a general printer driver by communicating with the general printer driver while disguising as a printer is sent to a printing server, and a printer connected to the printing server via a network performs printing based on the printing task. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 FIG. is a block diagram showing a structural example of a printing system according to an embodiment.
[0009] Figure 2 FIG. is a sequence diagram for explaining an example of a registration process of a printer queue in a Figure 1 printing system.
[0010] Figure 3 FIG. is a diagram showing an example of a user interface image displayed in the Figure 2 registration process.
[0011] Figure 4 FIG. is a diagram showing an example of a user interface image displayed when cloud settings are selected in the Figure 3 user interface image.
[0012] Figure 5 FIG. is a diagram showing an example of a setting file generated in the Figure 2 registration process.
[0013] Figure 6 FIG. is a sequence diagram for explaining a first example of a printing process executed in a Figure 1 printing system.
[0014] Figure 7 FIG. is a block diagram showing a structural example of a printing system that is a detailed example of a part of the Figure 1 printing system and executes the Figure 6 printing process.
[0015] Figure 8 FIG. is a sequence diagram for explaining a second example of a printing process executed in a Figure 1 printing system.
[0016] Figure 9 FIG. is a block diagram showing a structural example of a printing system that is a detailed example of a part of the Figure 1 printing system and executes the Figure 8 printing process.
[0017] Figure 10This is a sequence diagram for explaining the printing process executed in the printing system related to the reference example.
[0018] Figure 11 This is a block diagram showing the details of a part of the printing system related to the reference example and showing the structure of the printing system that executes Figure 10 the printing process.
[0019] Figure 12 This is a diagram showing an example of the hardware structure of the device. Detailed implementation
[0020] Hereinafter, embodiments of the present invention will be described with reference to the drawings. In addition, each drawing is merely an illustration for explaining the embodiments of the present invention. Furthermore, not all structural elements described in the embodiments of the present invention are necessarily essential components of the present invention.
[0021] Embodiment
[0022] Structure of the system
[0023] Regarding a structural example of the printing system according to this embodiment, Figure 1 it will be described. Figure 1 This is a block diagram showing a structural example of the printing system according to this embodiment.
[0024] As Figure 1 shown, the printing system 100 according to this embodiment can include a terminal device 10, a cloud printing server 20, a printer A (31), a printer B (32), and a printer C (33).
[0025] Hereinafter, the printing system 100 shown Figure 1 will be described as an example of the printing system according to this embodiment. However, for example, any arbitrary plurality of structures in the printing system 100, such as the part composed of the terminal device 10 and the cloud printing server 20, can also be referred to as a printing system. In addition, in this specification, the cloud printing server refers to a cloud printing server computer or a cloud printing server device.
[0026] The terminal device 10 is an information processing device with a communication function such as a PC (Personal Computer), a smart phone, or a tablet-type terminal, and can be used by a user who desires to print. The terminal device 10 is connected to the cloud printing server 20 via the network N1 in order to process the sending of a printing request and the like. Since the terminal device 10 controls printing, it can be called a printing control device. In addition, since the terminal device 10 functions as a client of the cloud printing server 20, it can also be called a client, a client computer, or the like. Although not shown, a plurality of terminal devices 10 can be provided in the printing system 100.
[0027] In addition, the cloud printing server 20 is a server for providing a printing service on the cloud. The cloud printing server 20 can be configured as a device capable of sending a printing request and printing data using a URI (Uniform Resource Identifier). The cloud printing server 20 is connected to the printer A (31), the printer B (32), and the printer C (33) via the network N2 in order to process the sending of a printing request and the like. The cloud printing server 20 can also send a printing request and printing data to the printer A (31), the printer B (32), and the printer C (33) via a VPN (Virtual Private Network). Of course, the cloud printing server 20 can also be configured as a cloud printing system that distributes the functions necessary for providing cloud printing to multiple servers.
[0028] The printer A (31), the printer B (32), and the printer C (33) are all examples of printers, and can print on a medium when printing data is received. In addition, although for the sake of convenience of explanation, the printing system 100 is described on the premise of having a structure including three printers in this way, it only needs to include at least one printer. In addition, each printer only needs to be a device with a communication function and a printing function, but can also be a multifunction machine with other functions such as a scanner function, a copying function, or a facsimile transmission function. In addition, each printer can also be called a printing device or an image forming device. In addition, the printing method in each printer is not limited, and for example, various printing methods such as an inkjet printing method or a laser printing method can be applied.
[0029] The printing system 100 performs printing from a selected printer among Printer A (31), Printer B (32), and Printer C (33) via the cloud printing server 20 through a user operation from the terminal device 10. Hereinafter, structural examples of the terminal device 10 and the cloud printing server 20 will be described in detail. In addition, the structural examples of each printer will be omitted from the description.
[0030] Structure of the Terminal Device 10
[0031] As Figure 1 shown, the terminal device 10 can include a control unit 11, a storage unit 12, a communication unit 13, an operation unit 14, and a display unit 15.
[0032] The control unit 11 controls the entirety of the terminal device 10. The control unit 11 can be configured, for example, to include an arithmetic processing device, a working memory, and a storage device that stores control programs and parameters, etc. The above-mentioned arithmetic processing device can be a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), etc. The control unit 11 can also be configured as an SoC (System on a Chip). From these examples, it can also be seen that the control unit 11 can be configured to store the control program in an executable state. However, the control unit 11 can also be configured to store a part of the control program as a circuit structure like an FPGA (field-programmable gate array), or be configured as a dedicated circuit.
[0033] The above-mentioned control program can include a program for the arithmetic processing device to execute printing-related processing while cooperating with the storage unit 12, the communication unit 13, the operation unit 14, and the display unit 15. The above-mentioned control program can include an OS. In addition, since the OS is the OS installed on the terminal device 10, it becomes a type of OS corresponding to the model of the terminal device 10, etc. The above-mentioned control program can include a web browser inside or outside the OS. Although an example of storing at least a part of the control program in a storage unit 12 separately provided outside the control unit 11 will be described below, the storage unit 12 can also be a part of the storage device inside the control unit 11. That is to say, the storage unit 12 can also be understood as a part of the control unit 11.
[0034] The storage unit 12 is, for example, a hard disk drive, a solid state drive, or a storage device implemented by other memories. In the storage unit 12, as a part of the control program, the general printer driver 16 and the vendor assistance application 17 described later are stored in a state executable by the control unit 11. Hereinafter, the vendor assistance application will be abbreviated as the vendor assistance App for explanation. In addition, the storage unit 12 can store various data such as files to be printed.
[0035] The communication unit 13 is a part that communicates with external devices such as the cloud printing server 20 wirelessly or wiredly via the network N1 according to various mobile communication standards, Wi-Fi (registered trademark. The same applies hereinafter.) standards, and other predetermined communication standards. The communication unit 13 can be constituted by one or more communication interfaces capable of performing the above communication.
[0036] The operation unit 14 is a part that receives operations performed by the user of the terminal device 10 and can also be called an operation reception unit. The operation unit 14 can be implemented by, for example, any one or more of a physical button, a touch panel mounted on the display unit 15, a pointing device, and a keyboard. In a configuration where the operation unit 14 includes a touch panel, the display unit 15 and the touch panel may be included and referred to as the operation panel of the terminal device 10.
[0037] The display unit 15 is a part for displaying a user interface (UI) image for operating the terminal device 10 and is constituted by, for example, a liquid crystal display or an organic electroluminescence display device. In addition, the display unit 15 can also be configured to include a display and a drive circuit for driving the display.
[0038] The general printer driver 16 will be described. The general printer driver 16 is an OS-standard printer driver included in the OS included in the control program or attached to the OS. The general printer driver 16 can be a program that can control various types of printers to perform printing. In addition, the general printer driver 16 can also be called an OS general printing program or a general printing program.
[0039] The general printer driver 16 is a driver that uses a protocol common for searching and printing for printers. For example, the general printer driver 16 uses mDNS / DNS-SD for searching for printers and uses IPP for printing in printers. Here, DNS is an abbreviation for Domain Name System. mDNS is an abbreviation for multicast DNS. DNS-SD is an abbreviation for DNS Service Discovery. IPP is an abbreviation for Internet Print Protocol.
[0040] As can also be seen from this example, the general printer driver 16 can be set as an IPP Class driver, for example. IPP is an example of a standard protocol for controlling the management and printing of printers. IPP uses the POST requests and responses of HTTP (Hyper Text Transfer Protocol) to implement the acquisition and control of printer information. In IPP, printer settings and printer status acquisition can be implemented. Here, secure communication can be implemented by using HTTPS (HTTP Secure) instead of HTTP.
[0041] The vendor-assisted App 17 will be described. The vendor-assisted App 17 is an application program that assists the general printer driver 16 and is used to expand the functions of the general printer driver 16. Therefore, the general printer driver 16 can have the function of starting the vendor-assisted App 17 and sending print jobs to the vendor-assisted App 17.
[0042] The vendor-assisted App 17 can be set as a program for assisting the general printer driver 16 and causing the computer to execute the following print control, that is, print control suitable for the performance of the target printer, that is, print control that supports the unique functions of the printer. The computer mentioned here refers to the terminal device 10 or the control unit 11. When the vendor-assisted App 17 has obtained a print job from the general printer driver 16, it can convert the print job so that the printer can execute printing using the unique functions related to the specified printer.
[0043] The vendor-assisted App17 is an application provided for vendors of printers, etc. The vendor-assisted App17 can be provided to the user of the terminal device 10, for example, by being publicly available in the application store of the OS provider, etc. Alternatively, the vendor-assisted App17 can be provided to the user in a way that it is included in or attached to the OS. The vendor-assisted App17 can be set as Print Support Application (PSA), for example.
[0044] Moreover, the vendor-assisted App17 can include a virtual printer program. However, the virtual printer program can also be installed in a way that it is included in the general printer driver 16. Alternatively, the virtual printer program can be installed separately outside the general printer driver 16 and the vendor-assisted App17, or can be distributed and installed in the general printer driver 16 and the vendor-assisted App17.
[0045] Illustratively speaking, this virtual printer program has the function of acting as a printer with respect to the general printer driver 16, that is, the function of providing a virtual printer to the general printer driver 16. By having the function of providing a virtual printer to the general printer driver 16 and implementing communication with the cloud printing server 20, the virtual printer program enables printing achieved via the cloud printing server 20.
[0046] Specifically, the virtual printer program is a program that causes a computer to execute the first communication process, the second communication process, and the printing process described below. The computer mentioned here also refers to the terminal device 10 or the control unit 11.
[0047] In the first communication process, it acts as a printer with respect to the general printer driver 16 and communicates with the general printer driver 16. In addition, this communication is carried out inside the terminal device 10. That is, the first communication process becomes a process of communicating with the general printer driver 16 with the virtual printer program acting as a virtual printer. Before the above communication, generation of a virtual printer is pre-implemented. For example, three virtual printers corresponding to three printers such as printer A (31) connected to the cloud printing server 20 can be pre-generated.
[0048] In the second communication process, communication with the cloud printing server 20 is carried out. This communication becomes the communication carried out via the communication unit 13. The second communication process is used when performing printing processes such as sending a printing task from the terminal device 10 to the cloud printing server 20. In addition, the second communication process can also be used when generating a virtual printer.
[0049] In print processing, the print job obtained from the general printer driver 16 in the first communication process is sent to the cloud print server 20 in the second communication process to implement cloud printing. For example, first, in the general printer driver 16, a file to be printed and a virtual printer are specified to generate a print job. Then, in the above print processing, the virtual printer program becomes the virtual printer to obtain the print job from the general printer driver 16, and the print job is sent to the cloud print server 20 via the communication unit 13. Thus, the cloud print server 20 sends the print job to the printer among the connected printers 31 to 33 that corresponds to the specified virtual printer, and performs printing on that printer.
[0050] In addition, when the vendor assist App 17 obtains a print job from the general printer driver 16, it can convert the print job so that printing using the unique functions related to the printer corresponding to the specified virtual printer can be performed by that printer. In the case of performing the above conversion, the above print processing can send the print job converted by the vendor assist App 17 to the cloud print server 20 via the communication unit 13. Thus, the cloud print server 20 can send the above converted print job to the printer among the connected printers 31 to 33 that corresponds to the specified virtual printer, and perform printing on that printer by effectively using the unique functions of the printer.
[0051] In other words, in the present embodiment, a printing method including the above first communication process, second communication process, and print processing can be provided.
[0052] In yet other words, the terminal device 10 includes a general printer driver 16, and a first communication processing unit, a second communication processing unit, and a print processing unit as follows.
[0053] The first communication processing unit communicates with the general printer driver 16 by pretending to be a printer with respect to the general printer driver 16. Since the first communication processing unit provides a virtual printer, it can also be called a virtual printer unit. Or, since the first communication processing unit performs communication with the general printer driver 16, it can also be called a driver communication unit. The second communication processing unit communicates with the cloud print server 20. Since the second communication processing unit performs communication with the cloud print server 20, it can also be called a server processing unit. The print processing unit sends the print job obtained from the general printer driver 16 in the first communication processing unit to the cloud print server 20 in the second communication processing unit to implement cloud printing. Since the print processing unit controls cloud printing, it can also be called a print control unit.
[0054] Structure of the cloud printing server 20
[0055] As Figure 1 shown, the cloud printing server 20 can include a control unit 21, a storage unit 22, and a communication unit 23.
[0056] The control unit 21 controls the overall operation of the cloud printing server 20. Similar to the control unit 11, the control unit 21 can be configured to include an arithmetic processing device, a working memory, and a storage device for storing control programs and parameters. The control programs and parameters of the control unit 21 are different from those of the control unit 11. The control programs in the control unit 21 include server programs such as Web server programs. Hereinafter, the control programs in the control unit 21 will be simply referred to as server programs for explanation.
[0057] The server program can include a program for causing the arithmetic processing device to execute printing-related processing while cooperating with the storage unit 22 and the communication unit 23. Hereinafter, an example in which the server program and parameters are stored in a storage unit 22 provided separately outside the control unit 21 will be described, but the storage unit 22 can also be a part of the storage device in the control unit 21. That is, the storage unit 22 can also be understood as a part of the control unit 21.
[0058] The storage unit 22 is, for example, a hard disk drive, a solid state drive, or a storage device implemented by other memories. Although not shown, in the storage unit 12, the server program can be stored in a state executable by the control unit 11, and a table associating machine information related to each printer with a URI can be stored as a part of the parameters. In addition, the machine information can also be referred to as device information.
[0059] The machine information of each printer only needs to be information that can identify the printer A (31), the printer B (32), and the printer C (33). The machine information can be used as information for specifying the printer to perform printing from the terminal device 10. The server program can send a printing task to the URI corresponding to the machine information specified from the terminal device 10 via the communication unit 23.
[0060] The URIs of the respective printers refer to the URIs of printer A (31), printer B (32), and printer C (33) connected via the communication unit 23, and are registered for accessing each printer. The URI can be set to an email address, and an example of this is listed below. However, the registered URI can also be another type of URI such as a URL (Uniform Resource Locator).
[0061] The communication unit 23 is a part that communicates with external devices such as the terminal device 10 wirelessly or wired via the network N1 according to a predetermined communication standard such as the Wi-Fi standard and various mobile communication standards, and communicates with each printer wirelessly or wired via the network N2. The communication unit 23 can be composed of one or more communication interfaces capable of performing the above communication.
[0062] With such a configuration, the cloud printing server 20 provides a cloud printing service that performs printing on the connected printers to the terminal device 10.
[0063] In addition, the cloud printing service can be provided by the same vendor as the vendor of the connected printer. That is, the printers connected to the cloud printing server 20 can all be set to printers of the vendor that provides the cloud printing service. However, the printers connected to the cloud printing server 20 can include printers of other vendors that are not the vendor that provides the cloud printing service. Even in this case, the virtual printer program can extend the functions of the printers of other vendors in terms of the cloud printing function, that is, disguise as a virtual printer. In addition, even when the vendor assistance App 17 includes a part or all of the virtual printer program, it can provide or not provide extended functions other than the virtual printer function related to the printers of other vendors.
[0064] Effects of this Embodiment
[0065] Before describing more specific processing examples in this embodiment, the effects achieved by this embodiment will be described.
[0066] As described above, in the printing system 100, the virtual printer program provides a virtual printer to a general printer driver 16 such as an IPP Class driver, and communicates with the cloud printing server 20 via the virtual printer. By relaying between the general printer driver 16 and the cloud printing server 20 that provides cloud printing services through the virtual printer, printing using cloud printing services can be achieved from the general printer driver 16. In this way, in the printing system 100, the structure of the general printer driver 16 and the vendor-assisted App 17 can be used, and printing using cloud printing services can be achieved by installing the virtual printer program. Therefore, according to this embodiment, cloud printing can be performed using the general printer driver 16.
[0067] To supplement the above effects, the printing systems according to this embodiment and the comparative example are compared. In the printing system according to the comparative example, instead of using the vendor's printer driver, a general printer driver that is standardly installed in the Windows (registered trademark. The same applies hereinafter.) operating system is used to control the printer. In the general printer driver in this comparative example, a protocol that is common for searching for and printing the printer is also used. In the general printer driver in the comparative example, a structure is also provided to start a vendor-assisted application associated with the printer attachment, and to customize special printing settings and IPP communication during printing. Of course, this vendor-assisted application and the general printer driver do not include the virtual printer program.
[0068] However, the structure according to the comparative example only targets printers connected to the same network or printers connected using USB (registered trademark. The same applies hereinafter.), and cannot utilize cloud printing services provided by the vendor. In addition, USB is an abbreviation for Universal Serial Bus.
[0069] In this way, in the comparative example, cloud printing using the general printer driver cannot be achieved. On the other hand, as described above, according to this embodiment, by introducing the virtual printer program via the virtual printer, cloud printing using the general printer driver 16 can be achieved.
[0070] Summary of the processing example
[0071] Hereinafter, specific processing examples in this embodiment will be described. In the processing examples described herein, as a preparation for printing processing, a registration process of a printer queue corresponding to the registration process of a virtual printer is executed. Hereinafter, examples will be given for the registration process of the printer queue and the printing processes in two modes. In the registration process of the printer queue, printing capabilities are obtained from the cloud printing server 20, and the virtual printer is made publicly available based on the printing capabilities. In addition, in any of the described printing processes, communication between the general printer driver 16 and the cloud printing service is relayed by sending print data from the general printer driver 16 to the virtual printer and implementing communication with the cloud printing service by the virtual printer. Here, the cloud printing service can refer to the server program in the cloud printing server 20.
[0072] Registration process of printer queue
[0073] For the registration process of the printer queue for registering a virtual printer, use Figures 2 to 5 to illustrate. Figure 2 It is a sequence diagram for illustrating an example of the registration process of the printer queue in the printing system 100. Figure 3 It is for showing Figure 2 An example of the UI image displayed in the registration process. Figure 4 It is for showing Figure 3 An example of the UI image displayed when cloud settings are selected in the UI image. Figure 5 It is for showing Figure 2 An example of the setting file generated in the registration process.
[0074] First, the user U of the terminal device 10 starts the vendor assistance App 17 via the operation unit 14 (step S1). The vendor assistance App 17, for example, causes the display unit 15 to Figure 3 display the UI image 40 shown. The UI image 40 includes a button 41 for entering the UI image for setting the printer, a button 42 for entering the UI image for setting the scanner, a button 43 for entering the UI image for setting the facsimile (FAX), and a button 44 for entering the UI image for setting cloud printing. The objects to be set included in the UI image 40 are not limited. As other objects, a camera, other devices, etc. can be cited. However, in the UI image 40, it is sufficient to include only the button 44 for entering the UI image for setting cloud printing, that is, the UI image for registering the virtual printer. By selecting the buttons included in the UI image 40, the vendor assistance App 17 can display the UI image for implementing the settings related to the function or device that is the object thereof.
[0075] The settings mentioned here include the settings for the extended functions of the general printer driver 16. For example, when the button 44 is selected, the UI image 50 exemplified in Figure 4 will be entered for generating a virtual printer as an extended function.
[0076] In the vendor assistance App 17, when the button 44 is selected in the UI image 40, or at the stage of starting step S1 without displaying the UI image 40, the display unit 15 can be made to Figure 4 display the UI image 50 shown. The UI image 50 is a UI image for inputting the user information of the vendor assistance App 17 and the URI of the printer set as the virtual printer. The UI image 50 can include an input field 51 for the email address as the URI of the printer and an input field 52 for the access key. Further, the UI image 50 can include an OK button 54 to be selected when setting is to be implemented using the input content, and a cancel button 55 to be selected when the input content is to be discarded and the UI image 50 is to be closed. Additionally, the UI image 50 is a UI image for cloud printing settings and can also include a network setting button 53. This network setting button 53 is, for example, a button to be selected when a UI image for implementing settings related to network connection to the cloud printing server 20 is to be displayed.
[0077] Subsequent to step S1, the user U inputs the registered user information and the printer URI from the UI image 50 to the cloud printing service 24 via the operation unit 14 (step S2). Specifically, as described above, the user U performs input in the input field 51, or the input field 51 and the input field 52, and selects the OK button 54. Hereinafter, an example of generating a virtual printer only for printer A (31) will be cited.
[0078] Next, the vendor assistance App 17 communicates with the cloud printing service 24 based on the input information to request user authentication implemented based on the user information, and requests to obtain the printing capability information associated with the printer URI (step S3). Additionally, the illustration related to user authentication is omitted.
[0079] When the user authentication is successful, the vendor assistance App 17 obtains this printing capability information as a response from the cloud printing service 24 (step S4). Additionally, when the user authentication fails, the vendor assistance App 17 can, as a response, return a message indicating that the user authentication has failed.
[0080] The printing capacity information that the vendor-assisted App17 can obtain from the cloud printing service 24 is information indicating the printing capacity of the printer represented by the printer URI. As the printing capacity here, for example, the supported printing data format, color printing support, supported paper size, and supported printing quality can be cited. The printing capacity can also be referred to as printing performance.
[0081] Here, the supported printing data format refers to the format of the supported printing data. For example, PNG, PDF, PWG-Raster, JPEG, and vendor-specific formats can be cited. In addition, PNG is an abbreviation for Portable Network Graphics. PDF is an abbreviation for Portable Document Format. PWG is an abbreviation for Printer Working Group. JPEG is an abbreviation for Joint Photographic Experts Group. In addition, color printing support refers to whether color printing is supported. Lack of color printing support means only monochrome printing is supported. Supported paper size and supported printing quality refer to the respective supported paper sizes and printing qualities.
[0082] Next, the vendor-assisted App17 generates a setting file for the virtual printer based on the obtained printing capacity information and sends it to the virtual printer disclosure program 18 (step S5). The virtual printer disclosure program 18 can be provided in a manner included in the vendor-assisted App17 or the general printer driver 16. In addition, the virtual printer disclosure program 18 can be provided as a program included in the virtual printer program. However, the virtual printer disclosure program 18 can also be provided as a program outside the virtual printer program. This is because the virtual printer program only needs to be able to use the disclosed virtual printer and communicate with the general printer driver 16 as that virtual printer.
[0083] The setting file for the virtual printer can, for example, be like in Figure 5It is generated as a file containing print capability information obtained for the target printer, like the file 60 in JSON format shown. When there are multiple target printers, the file 60 can be generated as a file containing print capability information obtained for each printer. In the file 60, for each target printer, there are described a name "name", a URI "uri", user information "user_info", and the address of the IPP server "ipp_server_address". Also, in the file 60, for each target printer, there are further described color printing support "color", supported print size "paper_size", supported print quality "quality", and supported print data format "data_format". Additionally, in the file 60, an example of description for printers A (31) and B (32) is given.
[0084] Next, the virtual printer publishing program 18 publishes the virtual printer based on the setting file such as the file 60 (step S6). Also, in Figure 2 for ease of explanation, only the virtual printer A (31v) of the virtual printer of printer A (31) is illustrated as the virtual printer. In step S6, the virtual printer publishing program 18 publishes the virtual printer A (31v) as one of the IPP printing services, for example, using the function of mDNS / DNS-SD. The address of the IPP server in the file 60 refers to the address where the target virtual printer is published.
[0085] Here, a supplementary explanation is given for the virtual printer publishing program 18 and mDNS / DNS-SD. The virtual printer publishing program 18 is exemplified by an mDNS / DNS-SD server program or a program including the server program. The virtual printer publishing program 18 can be set as a program with a publishing function that provides services as the function of mDNS / DNS-SD and an address resolution function for printers.
[0086] mDNS / DNS-SD is provided, for example, as part of the functionality of Bonjour (registered trademark. The same applies hereinafter), which is provided by Apple Inc. Bonjour is a program that incorporates technologies such as Zeroconf (Zero-configuration networking). Zeroconf is a set of technical methods for automatically generating an available IP (Internet Protocol) network without manual operation and without using a special configuration server. The virtual printer publishing program 18 has a function of publishing printer information on the network using such mDNS / DNS-SD. As this printer information, a virtual printer based on the printing capabilities of the printer can be published in mDNS / DNS-SD.
[0087] After the virtual printer is published in step S6, the user U starts the queue registration UI image 16u of the general printer driver 16 by operating the operation unit 14 (step S7). The queue registration UI image 16u is a UI image for registering a printer queue. The general printer driver 16 searches for printers before or during the display of the queue registration UI image 16u (step S8).
[0088] Since the virtual printer A (31v) has been published in step S6, the printer A (31) as the virtual printer A (31v) is also included in the search target. Therefore, as a response to the search, the general printer driver 16 receives information such as the machine information of printer A from the searched virtual printer A (31v) (step S9). Of course, through the search in step S8, printers other than the virtual printer A (31v) may also be found. In such a case, the general printer driver 16 also receives information related to these printers.
[0089] Next, the general printer driver 16 displays the information of the printers found as a result of the search as a list of printers in the queue registration UI image 16u (step S10). This list also includes the virtual printer A (31v). Next, the user U selects the virtual printer A (31v) as printer A (31) from the operation unit 14 in the queue registration UI image 16u, and the general printer driver 16 registers the printer queue related to the selected printer A (31) (step S11).
[0090] Through such registration processing, user U can perform printing processing to select printer A (31) in terminal device 10 and perform printing processing that actually selects virtual printer A (31v). The printing processing will be described later, but according to the installation target of the program that executes the first communication processing in the virtual printer program, in other words, according to the provider of the virtual printer, either of the two processing examples can be adopted.
[0091] In addition, in the above example of the registration processing, only printer A (31) is listed as an example for generating a virtual printer, but the same applies to printer B (32) and printer C (33). In addition, as a modification example of UI image 50, it is also possible to generate all virtual printers at once by pre-providing a UI image that can input printer URIs related to multiple printers.
[0092] In addition, as exemplified in the processing of steps S3 to S6, in the first communication processing, it is also possible to disguise as a printer having the capabilities of the printer obtained from cloud printing server 20 in the second communication processing. Such processing will vary depending on (1) the case where the program that executes the first communication processing in the virtual printer program is installed in general printer driver 16 or the OS, and (2) the case where it is installed elsewhere like vendor-assisted App 17.
[0093] In the case of the above (1), the virtual printer program can include a program that causes the computer exemplified by terminal device 10 to perform the following processing. The processing is to set the capabilities of the printer obtained from cloud printing server 20 in the second communication processing in general printer driver 16 or the OS of the computer to define the first communication processing. In the case of the above (1), the printing processing becomes, for example, the processing described later in the first example.
[0094] In the case of the above (2), the virtual printer program can include a program that causes the computer exemplified by terminal device 10 to perform the following processing. The processing is to set the capabilities of the printer obtained from cloud printing server 20 in the second communication processing in the computer and in the virtual printer program to define the first communication processing. In the case of the above (2), the printing processing becomes, for example, the processing described later in the second example.
[0095] First example of printing processing
[0096] For the first example of the printing processing, use Figure 6 and Figure 7 to illustrate. Figure 6 For use inFigure 1 A sequence diagram for explaining a first example of a printing process executed in the printing system 100. Figure 7 To represent Figure 1 A detailed example of a part of the printing system 100, and a block diagram of a structural example of a printing system that executes Figure 6 the printing process.
[0097] The first example is an example in which the general printer driver 16 of the OS includes a virtual printer disclosure program and has a virtual printer disclosure function. Also, in the first example, it is an example in which a structure for delivering print data for the virtual printer to the vendor assist App 17 is incorporated in the general printer driver 16 of the OS. In this case, a program that executes the first communication process in the virtual printer program and delivers a print job to the vendor assist App 17 is installed in the general printer driver 16. Further, a program that executes the second communication process and the printing process in the virtual printer program is installed in the vendor assist App 17.
[0098] As Figure 7 shown, the printing system 100a, which is a first example of the printing system 100, includes a user PC 10a as an example of a terminal device 10, a cloud printing server 20a as an example of a cloud printing server 20, and a printer A (31).
[0099] The user PC 10a includes a general printer driver 16a that discloses a virtual printer 18a in the general printer driver 16, and a vendor assist App 17. The cloud printing server 20a and the cloud printing service 24a each include an HTTP server 25a in the cloud printing service 24 in order to communicate with the vendor assist App 17 in the cloud printing server 20 and the cloud printing service 24.
[0100] In such a printing system 100a, first, the user U starts an application program that starts and edits a print target file such as a document file. Then, by the user U performing an operation such as selecting the virtual printer A (31v) in the print settings of the print target file from the operation unit 14, the general printer driver 16a receives an instruction to start printing (step S21).
[0101] The general printer driver 16a converts the print target file into print data in a printable form, and since the virtual printer 18a serving as the virtual printer A (31v) is selected, the virtual printer 18a is started and the print data is sent (step S22). The virtual printer 18a serving as the virtual printer A (31v) starts the vendor assistance App17 by sending the received print data and the user information set in the virtual printer A (31v) to the vendor assistance App17 (step S23). This sending becomes inter-process communication.
[0102] The vendor assistance App17 converts the received print data into a form for the cloud printing service 24a as needed (step S24). Before this conversion, as print settings for the virtual printer A (31v), the user U can also give instructions for print settings using extended functions other than the cloud printing function. In this case, in step S24, the conversion will be performed according to the instructed print settings. Additionally, in step S22, the print target file can be sent to the virtual printer 18a without performing the conversion of the print data, and in step S24, the print target file can be converted into a form for the cloud printing service 24a.
[0103] Next, the vendor assistance App17 requests user authentication based on the user information from the cloud printing service 24a (step S25), and obtains an authentication result as a reply (step S26). The communication between the vendor assistance App17 and the cloud printing server 20a including the communication here becomes communication based on the HTTP protocol, and becomes the communication between the vendor assistance App17 and the HTTP server 25a. Hereinafter, the description will be made on the premise that the user authentication is successful.
[0104] The vendor assistance App17 sends a print job including the print data to the cloud printing service 24a (step S27). The cloud printing service 24a sends this print job to the printer A (31) corresponding to the virtual printer A (31v) (step S28). The printer A (31) receives this print job and performs printing to produce a printed matter.
[0105] Thereafter, the cloud printing service 24a periodically makes a request (step S28) to obtain the task current status (JS) of the current status of the printing task for printer A (31), and receives the JS as a response (step S30). In addition, the vendor assistance App 17 periodically makes a request (step S31) to obtain the JS from the cloud printing service 24a, and receives the JS as a response (step S32). The vendor assistance App 17 causes the display unit 15 to display the obtained JS in a manner that can be confirmed by the user U (step S33).
[0106] As exemplified in step S24, in the above-described printing process, it is also possible to convert the printing task obtained from the general printer driver 16a in the first communication process and then send it to the cloud printing server 20a. The conversion of the printing task can be executed in such a way that it becomes a printing task that uses the unique functions of the printer that is the printing target in the cloud printing service 24a.
[0107] In addition, as exemplified in steps S31 and S32, the above-described printing process may also include a process of obtaining the current status of the printing task from the cloud printing server 20a in the second communication process after cloud printing is performed.
[0108] In addition, although the JS is displayed by the vendor assistance App 17 in the above example, the above-described printing process may also include a process of notifying the general printer driver 16a of the JS obtained from the cloud printing server 20a in the first communication process. Thereby, the general printer driver 16a can also obtain the JS in addition to the printing instruction for the cloud printing service 24a provided by the vendor.
[0109] In addition, as exemplified in the first example, in the above-described second communication process, communication with the cloud printing server 20a may also be performed via another application installed in the computer on which the virtual printer program is installed. The computer is configured by way of example using the user PC 10a. In addition, the above-mentioned other application is a program exemplified using the vendor assistance App 17.
[0110] Second example of printing process
[0111] For the second example of the printing process, use Figure 8 and Figure 9 to illustrate. Figure 8 For explaining Figure 1 the second example of the printing process executed in the printing system 100. Figure 9 For showing Figure 1A detailed example of a part of the printing system 100, and a block diagram showing a structural example of a printing system that executes Figure 8 The printing process.
[0112] The second example is different from the first example. It is an example in the case where a general printer driver 16 is included and the OS does not provide the function of exposing a virtual printer. That is, in the second example, a virtual printer program is installed in the vendor assistance App17, etc., and is installed separately outside the general printer driver 16 and communicates with the cloud printing service by this virtual printer program. In the second example, outside the general printer driver 16, a virtual printer is exposed within the terminal device 10. In addition, the virtual printer program in the second example has the function of an IPP server in order to expose the virtual printer.
[0113] As Figure 9 shown, the printing system 100b as the second example of the printing system 100 includes a user PC 10b as an example of the terminal device 10, a cloud printing server 20b as an example of the cloud printing server 20, and a printer A (31).
[0114] The user PC 10b includes a general printer driver 16b that does not have the function of exposing a virtual printer in the general printer driver 16, and a virtual printer program 18b that has the function of an IPP server 26 for exposing the virtual printer. The cloud printing server 20b and the cloud printing service 24b each have a structure in which an HTTP server 25b is provided in the cloud printing service 24 in order to communicate with the IPP server 26 in the cloud printing server 20 and the cloud printing service 24.
[0115] In such a printing system 100b, first, the user U starts an application program that performs startup and editing of a print target file such as a document file. Then, by the user U performing an operation such as instructing cloud printing in the print setting of the print target file from the operation unit 14, etc., the general printer driver 16b receives an instruction to start printing (step S41).
[0116] The general printer driver 16b converts the print object file into print data in a printable form, and since cloud printing is instructed, the virtual printer program 18b is started to send the print data (step S42). The print data here is sent via IPP communication. The started virtual printer program 18b can accept from the user U a selection operation of the virtual printer and an operation of instructing print settings using extended functions other than the cloud printing function as print settings for the virtual printer. Hereinafter, the case where the virtual printer A (31v) is selected will be described.
[0117] The virtual printer program 18b converts the received print data into a form for the cloud printing service 24b based on the print settings of the virtual printer A (31v) as needed (step S43). Additionally, in step S42, the print object file can be sent to the virtual printer program 18b without performing the conversion of the print data, and in step S43, the print object file can be converted into a form for the cloud printing service 24b.
[0118] Next, the virtual printer program 18b requests the cloud printing service 24b to perform user authentication based on user information (step S44), and obtains an authentication result as a reply (step S45). Here, the user information used only needs to be read by the virtual printer program 18b from the user information set in the virtual printer A (31v). In addition, including the communication here, the communication between the virtual printer program 18b and the cloud printing server 20b becomes communication based on the HTTP protocol, and becomes communication between the IPP server 26 and the HTTP server 25b. Hereinafter, the case where user authentication is successful will be described as a premise.
[0119] The virtual printer program 18b sends a print job including the print data to the cloud printing service 24b (step S46). The cloud printing service 24b sends the print job to the printer A (31) corresponding to the virtual printer A (31v) (step S47). The printer A (31) receives the print job and performs printing to produce a printed matter.
[0120] Thereafter, the cloud printing service 24b periodically makes a request to obtain the JS from the printer A (31) (step S48), and receives the JS as a response thereto (step S49). In addition, the virtual printer program 18b periodically makes a request to obtain the JS from the cloud printing service 24b (step S50), and receives the JS as a response thereto (step S51). In addition, the general printer driver 16b periodically makes a request to obtain the JS from the virtual printer program 18b (step S52), and receives the JS as a response thereto (step S53). The general printer driver 16b causes the display unit 15 to display the obtained JS in a manner that can be confirmed by the user U (step S54).
[0121] In addition, as exemplified in steps S50 and S51, the above-described printing process may also include a process of obtaining the current status of the print job from the cloud printing server 20b in the second communication process after cloud printing is performed.
[0122] In addition, as exemplified in steps S52 and S53, the above-described printing process may also include a process of notifying the general printer driver 16b of the JS obtained from the cloud printing server 20b in the first communication process. Thereby, the general printer driver 16b can also obtain the JS in addition to the print instruction for the cloud printing service 24b provided by the vendor.
[0123] In addition, in the second example, the virtual printer program 18b can be similarly applied whether it is installed in the vendor assistance App17 or installed in the user PC10b separately from the vendor assistance App17 as long as it is not installed in the general printer driver 16.
[0124] Reference Example
[0125] As a reference example, the case where the cloud printing service is made to correspond to IPP is used Figure 10 and Figure 11 will be described. Figure 10 FIG. is a sequence diagram for explaining the printing process executed in the printing system according to the reference example. Figure 11 FIG. is a block diagram showing the details of a part of the printing system according to the reference example and showing the structure of the printing system that executes Figure 10 the printing process.
[0126] The reference example is an example in which the general printer driver communicates with the cloud printing service corresponding to IPP. In the reference example, either the OS including the general printer driver or the vendor assistance App can expose the cloud printing service as a virtual printer.
[0127] As shown Figure 11 in FIG. 1, the printing system 100c according to the reference example includes a user PC 10c, a cloud printing server 20c, and a printer A (31). The user PC 10c includes a general printer driver 16c including a virtual printer 18c. The cloud printing server 20c installs a cloud printing service 24c including an IPP server 26.
[0128] In such a printing system 100c, first, the user U starts an application program that performs operations such as starting and editing a print target file such as a document file. Then, the user U performs an operation of selecting the virtual printer A (31v) in the print settings of the print target file through the operation unit, etc., so that the general printer driver 16c receives an instruction to start printing (step S61).
[0129] The general printer driver 16c requests user authentication based on user information from the cloud printing service 24c (step S62), and obtains an authentication result as a reply (step S63). The communication between the general printer driver 16c and the cloud printing server 20c including the communication here becomes IPP communication. Hereinafter, the case where user authentication is successful is assumed for the description.
[0130] The general printer driver 16c converts the print target file into print data in a printable form, and sends a print job including the print data to the cloud printing service 24c (step S64). The cloud printing service 24c sends the print job to the printer A (31) corresponding to the virtual printer A (31v) (step S65).
[0131] Thereafter, the cloud printing service 24c periodically requests the acquisition of JS from the printer A (31) (step S66), and receives the JS as a reply (step S67). In addition, the general printer driver 16c periodically requests the acquisition of JS from the cloud printing service 24c (step S68), and receives the JS as a reply (step S69). The general printer driver 16c causes the display unit to display the acquired JS in a manner that can be confirmed by the user U (step S70).
[0132] Other modification examples
[0133] The present disclosure is not limited to the above-described embodiments, but can be appropriately modified without departing from the gist. For example, the system configuration of the printing system, the configuration of each device constituting the system, the configuration of each program included in each device, the processing steps of each device, etc. are not limited to the illustrated content, and only need to include a part of the functions of the device and the program and a part of the steps of the method to achieve the described effects.
[0134] For example, the virtual printer program may also be a program that causes a computer to execute the following first process or second process. The first process includes a first communication process and a process of delivering a print job obtained from a general printer driver in the first communication process to a print processing program that causes a printer connected to a cloud printing server via a network to perform printing. The second process includes a process of receiving a print job that is obtained by the printer pretending to be a printer in the general printer driver and is to be printed by the printer, and a communication process of communicating with the cloud printing server. Further, the second process includes a print processing of sending the print job to the cloud printing server in the above communication process and causing a printer connected to the cloud printing server via a network to perform printing. Alternatively, the second process is set to be a print processing of sending a print job obtained from the general printer driver by communicating with the general printer driver by pretending to be a printer with respect to the general printer driver to a print server, and causing a printer connected to the print server via a network to perform printing based on the print job. In addition, the printing method can also be a method including the above first process or the above second process.
[0135] In addition, in the above-described embodiments and modification examples, a printing system including a cloud printing server has been described, but other printing servers such as a local printing server can be applied instead of the cloud printing server. For example, in the description of the above printing system 100, by replacing the cloud printing server 20 with a local printing server and replacing cloud printing with local printing, such a printing system can be described. In this case, the network N1 and the network N2 can also be set to the same local area network.
[0136] That is, the print processing in the virtual printer program or the printing method sends the print job obtained from the general printer driver in the first communication process to the print server in the second communication process. Moreover, in this print processing, a printer connected to the print server via a network is caused to perform printing. According to the printing system having such a configuration, printing implemented via a print server such as cloud printing or local printing can be executed using a general printer driver such as an OS standard printer driver.
[0137] In addition, each device included in the printing system according to the above-described embodiment can have a hardware structure as follows. Here, if an example of Figure 1 is given, each device can include a terminal device, a cloud printing server, and a printer. Figure 12 FIG. is a diagram showing an example of the hardware structure of the device.
[0138] Figure 12 The device 1000 shown can include a processor 1001, a memory 1002, and an interface 1003. The interface 1003 can include, for example, a communication interface required according to the device, and an interface with input / output devices, etc.
[0139] The processor 1001 can be, for example, a CPU, a GPU, or an MPU (Micro Processor Unit) also known as a microprocessor. The processor 1001 can also include multiple processors. The memory 1002 is composed of a combination of a volatile memory and a non-volatile memory, for example. The functions in each device are realized by the processor 1001 reading the program stored in the memory 1002, exchanging the required information via the interface 1003, and executing it.
[0140] In addition, the above program includes a set of commands (or software code) for causing a computer to implement one or more functions described in the embodiment when read by the computer. The program can also be stored in a non-temporary computer-readable medium or a tangible storage medium. As a non-limiting example, the computer-readable medium or the tangible storage medium includes random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD), or other memory technologies. In addition, as a non-limiting example, the computer-readable medium or the tangible storage medium includes CD-ROM, digital versatile disc (DVD), Blu-ray (registered trademark) Blu-ray disc, or other optical disc storage devices, cassette tapes, magnetic tapes, magnetic disk storage devices, or other magnetic storage devices. The program can also be transmitted on a temporary computer-readable medium or a communication medium. As a non-limiting example, the temporary computer-readable medium or the communication medium includes electrical, optical, acoustic, or other forms of propagated signals.
[0141] Although the present invention has been described above based on the above-described embodiment, the present invention is not limited only to the structure of the above-described embodiment, and of course includes various modifications, corrections, and combinations that those skilled in the art can make within the scope of the invention of the claims in the present application.
[0142] Symbol Explanation
[0143] 10…Terminal device; 10a…User PC; 10b…User PC; 10c…User PC; 11…Control unit; 12…Storage unit; 13…Communication unit; 14…Operation unit; 15…Display unit; 16…General printer driver; 16a…General printer driver; 16b…General printer driver; 16c…General printer driver; 16u…Queue registration UI image; 17…Vendor assistance App; 18a…Virtual printer; 18b…Virtual printer program; 18c…Virtual printer; 20…Cloud printing server; 20a…Cloud printing server; 20b…Cloud printing server; 20c…Cloud printing server; 21…Control unit; 22…Storage unit; 23…Communication unit; 24…Cloud printing service; 24a…Cloud printing service; 24b…Cloud printing service; 24c…Cloud printing service; 25a…HTTP server; 25b…HTTP server; 26…IPP server; 31…Printer A; 31v…Virtual printer A; 32…Printer B; 33…Printer C; 40…UI image; 41…Button; 42…Button; 43…Button; 44…Button; 50…UI image; 51…Input field; 52…Input field; 53…Network setting button; 54…OK button; 55…Cancel button; 60…File; 100…Printing system; 100a…Printing system; 100b…Printing system; 100c…Printing system; 1000…Device; 1001…Processor; 1002…Memory; 1003…Interface; N1…Network; N2…Network.
Claims
1. A virtual printer program product that causes a computer to perform the following processes: A first communication process that pretends to be a printer with respect to a general printer driver and communicates with the general printer driver; A second communication process that communicates with a print server; A printing process that sends the print job obtained from the general printer driver in the first communication process to the print server in the second communication process, and causes a printer connected to the print server via a network to perform printing.
2. The virtual printer program product according to claim 1, wherein The printing process includes the following process: After performing the printing, obtain the current status of the print job from the print server in the second communication process, and notify the obtained current status to the general printer driver in the first communication process.
3. The virtual printer program product according to claim 1 or 2, wherein In the printing process, the print job obtained from the general printer driver in the first communication process is sent to the print server after being converted.
4. The virtual printer program product according to claim 1 or 2, wherein In the second communication process, communicate with the print server via another application installed in the computer.
5. The virtual printer program product according to claim 1 or 2, wherein In the first communication process, pretend to be a printer having the capabilities of the printer obtained from the print server in the second communication process.
6. The virtual printer program product according to claim 5, wherein It includes a program that causes the computer to perform the following process: Set the capabilities of the printer obtained from the print server in the second communication process in the general printer driver or the operating system of the computer to regulate the first communication process.
7. The virtual printer program product according to claim 5, wherein It includes a program that causes the computer to perform the following process: Set the capabilities of the printer obtained from the print server in the second communication process in the virtual printer program to regulate the first communication process.
8. A printing control device, comprising: A general printer driver; A first communication processing unit that pretends to be a printer with respect to the general printer driver and communicates with the general printer driver; A second communication processing unit that communicates with a print server; A printing processing unit that sends the print job obtained from the general printer driver by the first communication processing unit to the print server by the second communication processing unit, and causes a printer connected to the print server via a network to perform printing.
9. A printing method, wherein It includes the following printing process: A printer that masquerades as a printer for a general printer driver communicates with the general printer driver to obtain a print job from the general printer driver and send it to a print server. A printer connected to the print server via a network performs printing based on the print job.
Citation Information
Patent Citations
Information processing device and control method for information processing device, and program
JP2021043547A