Server system and method for controlling the server system
Patent Information
- Application Number
- JP2021004373
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-01-14
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2041-01-14
AI Technical Summary
【0010】 OSやクラウドプリントサービスが印刷設定に反映することのできない設定を反映した印刷データを用いて、クラウドプリントサービスを経由した印刷を実行することができる。
Smart Images

Figure 0007631000000001 
Figure 0007631000000002 
Figure 0007631000000003
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device, a control method and program for the information processing device, and a server system capable of communicating with the information processing device. [Background technology]
[0002] There is a known printing system in which a user registers information about a printing device in a cloud print service, and prints print data by sending it to the printing device via the cloud print service. The user accesses the cloud print service from an information processing device such as a PC, selects a printing device to be used for printing from the printing devices registered with the cloud print service, and instructs the printing of the print data.
[0003] An information processing device generates a print job and submits it to a print queue on a cloud print service. A printing device accesses the cloud print service, acquires the print job spooled in the print queue generated on the cloud print service, and outputs the print job (Patent Document 1).
[0004] Representative examples of cloud print services include Google Cloud Print (registered trademark) (Patent Document 1), Microsoft Hybrid Cloud Print (registered trademark), and uniFLOW Online (registered trademark). [Prior art documents] [Patent documents]
[0005] [Patent Document 1] JP 2013-238924 A Summary of the Invention [Problem to be solved by the invention]
[0006] The module for submitting a print job from a client terminal to the cloud print service is provided as a standard printing system by the operating system (OS) of the client terminal.
[0007] Conventionally, in order to generate print data corresponding to the vendor's unique functions, the vendor distributes modules such as printer drivers and filters for processing print data to client computers. Then, the print data that reflects the vendor's unique settings is generated by the modules. It was difficult to reflect the vendor's unique settings in the print data without installing the printer drivers, filters, and other modules on the client computer.
[0008] The server system described in the present invention aims to execute printing via a cloud print service using print data that reflects settings that the OS or cloud print service cannot reflect in the print settings. [Means for solving the problem]
[0009] The server system described in this specification is a server system capable of generating XPS data using a driver based on image data and print settings received from an information processing device, and includes an acceptance means for accepting registration of information about a printing device, an acquisition means for acquiring from another server a filter for generating PDL data to be sent to the printing device whose registration has been accepted, a reception means for receiving print data to be printed by the printing device from the information processing device, and a means for converting the received print data into PDL data using the acquired filter, the filter further reflecting a layout set in the print settings in the XPS data generated by the driver, and converting the layout reflected. Mark It is characterized in that it is a filter that generates the PDL data from print data. Effect of the Invention
[0010] It is possible to perform printing via a cloud print service using print data that reflects settings that the OS or cloud print service cannot reflect in the print settings. [Brief description of the drawings]
[0011] [Figure 1] FIG. 2 is a diagram illustrating an example of a hardware configuration of a client computer 100 in the present embodiment. [Diagram 2] FIG. 1 is a diagram illustrating an example of a network configuration according to an embodiment of the present invention. [Figure 3A] FIG. 2 is a functional block diagram of a printer driver distribution service 300 according to the present embodiment. [Figure 3B] 2 is a diagram illustrating an example of a functional block of a print extension application distribution server 400 in the present embodiment. [Figure 3C] FIG. 2 is a diagram illustrating an example of functional blocks in a cloud print service 500 according to the present embodiment. [Figure 4] FIG. 11 is a diagram showing an example of a sequence for registering a printer 200 in a cloud print service 500 in this embodiment. [Figure 5A] FIG. 4 is a diagram illustrating an example of a printer information database held by the cloud print service 500 in the present embodiment. [Figure 5B] 3 is a diagram illustrating an example of a printer information database held by the printer driver distribution service 300 in this embodiment. FIG. [Figure 5C] 4 is a diagram illustrating an example of a printer information database held by a print extension application distribution server 400 in the present embodiment. FIG. [Figure 6] FIG. 11 is a diagram showing an example of a sequence for installing a print setting application 1052 on a client computer 100 in this embodiment. [Figure 7] 13 is a diagram showing an example of an operation panel that displays a printable job list received from a cloud print service 500 in the present embodiment. [Figure 8A] 11A and 11B are diagrams illustrating an example of a print common dialog box displayed on a client computer in the embodiment. [Figure 8B] FIG. 4 is a diagram illustrating an example of a print setting screen according to the embodiment. [Figure 9] 6A and 6B are diagrams illustrating an example of printer capability information in the embodiment. [Figure 10] 11 is a flowchart showing an example of a print process in the cloud print service 500 in the present embodiment. [Figure 11] 11 is a sequence diagram for generating PDL data using a cloud print service in the present embodiment. [Figure 12] 11 is a sequence diagram when a print extension application generates PDL data in the present embodiment. [Figure 13] FIG. 11 is a sequence diagram for generating PDL data using a PDL conversion service in the second embodiment. [Figure 14] FIG. 11 is a diagram illustrating an example of a network configuration in a second embodiment. [Figure 15] FIG. 13 is a schematic diagram of a printer driver distribution service according to a third embodiment. [Figure 16] FIG. 13 is a sequence diagram showing a process of registering printer information in a cloud print service in the third embodiment. [Figure 17A] 13 is an example of a table showing information on a driver package managed by a driver distribution service in the third embodiment. [Figure 17B] 13 is an example of a table showing information about printers registered in a cloud print service in the third embodiment. [Figure 18] FIG. 13 is a diagram illustrating an example of a functional block according to a fourth embodiment. [Figure 19] FIG. 13 is a diagram showing an example of a sequence for registering a printer 200 in a cloud print service 500 according to a fourth embodiment. [Figure 20]23 is an example of a filter pipeline configuration in the fourth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] <First embodiment> 1 is a hardware configuration diagram of a client computer (information processing device) that uses a cloud print service in this embodiment. A detailed description is given below.
[0013] The CPU 101 controls the entire device in accordance with a program stored in the ROM 1021 or RAM 1022 of the main storage device 102 or in the auxiliary storage device 105 .
[0014] The RAM 1022 is also used as a work area when the CPU 101 performs various processes. The auxiliary storage device 105 records a cloud driver 1050, an operating system (OS) 1053, applications 1051, a print extension application 1052, etc. In the following description, the main storage device 102 and the auxiliary storage device 105 will be collectively referred to as a storage device.
[0015] Input devices such as a pointing device 109 typified by a mouse or touch panel and a keyboard 108 are connected to a system bus 107 via an input I / F 103 and are devices that allow a user to give various instructions to the computer.
[0016] The output I / F 104 is an interface for outputting data to the outside, and outputs data to an output device such as a monitor 110 or a panel 111. The client computer 100 also has a photographing function and is equipped with a camera 112.
[0017] The client computer 100 is connected to a printer 200 and various systems (described later in FIG. 2) through a network 150 via a communication I / F 106. Reference numeral 107 denotes a common data system bus, which exchanges data between the I / Fs and modules.
[0018] FIG. 2 is a schematic diagram of a printing system in a simplified network environment according to this embodiment.
[0019] A client computer 100 and a printer 200 are connected to a network 150. The client computer 100 and the printer 200 are connected to the same intranet and are capable of communicating with each other.
[0020] Furthermore, a printer 201 and a printer 202 are connected to another intranet 204, and the network 150 is connected to the intranet 204 via the Internet 203. A printer driver distribution service 300, a print extension application distribution service 400, and a cloud print service 500 are connected to the Internet 203.
[0021] The printer driver distribution service 300 is a server system comprised of one or more information processing devices that executes a service for distributing printer drivers to client computers 100 on a web basis. The client computer 100 searches for the printer 200 using protocols such as WSD (Web Services for Devices) and IPP (Internet Printing Protocol). The client computer 100 obtains a printer driver specified based on the printer identification information and model information of the discovered printer 200 from the printer driver distribution service 300 and installs it. The printer drivers registered in the printer driver distribution service 300 are updated by the printer vendor. The client computer 100 automatically or manually obtains a new version of the printer driver from the printer driver distribution service 300 and updates the installed printer driver.
[0022] The print extension application distribution service 400 is a server system consisting of one or more information processing devices that executes a service for distributing an application executed on the client computer 100. The print extension application is an application for extending the print function provided by the cloud print service or the OS. The print function provided by the cloud print service or the OS allows only standard functions that can be used on printers of any vendor, such as color mode and double-sided printing, to be set as print settings. By using the print extension application, it becomes possible to use print functions that cannot be set by the print function provided by the cloud print service or the OS, such as stapleless stapling, poster printing, and saddle stitch binding.
[0023] When the client computer 100 receives a user operation requesting the installation of a print extension application, the client computer 100 accesses the print extension application distribution service 400 and installs the print extension application. Also, when an application identifier is described in an Inf (Information) file of the printer driver installed in the client computer 100, the print extension application is installed. The application identifier is application identification information for identifying an application corresponding to a printer registered in the cloud print service 500 from among applications registered in the print extension application distribution service 400. The client computer 100 accesses the print extension application distribution service 400 and installs the print extension application corresponding to the identifier described in the Inf file.
[0024] The cloud print service 500 is a service established on a cloud, which is a server system consisting of one or more information processing devices. In this embodiment, the cloud print service 500 can be connected to each intranet, and can be connected to the client computer 100 and the printer 200, printer 201, and printer 202 via the Internet. The cloud print service 500 performs account management using a user ID and PASSWORD, and the client computer 100 accesses the cloud print service 500 using account information input by the user.
[0025] In this embodiment, it is assumed that the client computer 100 stores in advance the URLs of the cloud print service 500 and the print extension application distribution service 400. It is also assumed that the cloud print service 500 stores in advance the URL of the printer driver distribution service 300.
[0026] Fig. 3A is a diagram showing an example of the function blocks of a printer driver distribution service 300. The printer driver distribution service 300 is a server system made up of one or more information processing devices having the same configuration as the information processing device shown in Fig. 1. A printer driver registration unit 301 and a printer driver response unit 302 are realized by the CPU of an information processing device that makes up the printer driver distribution service 300 executing a program.
[0027] Printer driver distribution service 300 is a service that exists on the cloud via the Internet, and enables the distribution of printer driver-related packages to external services and client computers 100. Printer driver-related packages include, for example, printer drivers and driver extension packages.
[0028] When an instruction to register a package related to a printer driver is received from an external service or client computer 100, printer driver registration unit 301 registers the uploaded package in printer driver database 310. For example, printer driver registration unit 301 registers in printer driver database 310 printer drivers distributed by printer vendors or the like, and driver extension packages for extending printer drivers.
[0029] When there is a request for acquiring a printer driver or an extension package from an external service or the client computer 100, the printer driver response unit 302 acquires the corresponding package from the printer driver database 310 and responds. For example, assume that a request for a printer driver corresponding to the printer 200 for which a print queue has been generated is received from the client computer 100. The printer driver response unit 302 reads out the printer driver corresponding to the printer 200 from the printer driver database 310 and sends it to the client computer 100. The printer driver response unit 302 can also receive from the client computer 100 a request for acquiring a driver extension package to expand the installed printer driver. In this case, the printer driver response unit 302 reads out the driver extension package corresponding to the requested printer driver from the printer driver database 310 and sends it to the client computer 100.
[0030] 5B is stored in the printer driver database 310. In addition to printer drivers compatible with various printers, the printer driver database 310 also stores a driver extension package 303.
[0031] The driver extension package 303 is an example of a package distributed by the printer driver distribution service 300. The driver extension package 303 has a driver information section 304 and a device capability information section 305. The driver information section 304 has information such as an HWID for identifying the printer, a compatible ID (COID), information indicating that the package is a driver extension package, and the version of the driver extension package 303. The device capability information section 305 has device capability information and prohibited characters information of the corresponding printer 200. The device capability information is, for example, information on whether the printer 200 supports color printing and double-sided printing. In addition to the above capability information, the capability information included in the driver extension package 303 includes whether vendor-specific stapleless binding is possible, whether saddle stitching is possible, and whether mixed paper printing, which uses multiple types of paper, is possible.
[0032] 3B is a diagram showing an example of functional blocks of the print extension application distribution service 400. An application registration unit 401 and an application response unit 402 are realized by the CPU of one or more information processing devices constituting the print extension application distribution service 400 executing a program.
[0033] The print extension application distribution service 400 is a service that exists on the cloud via the Internet, and enables the distribution of a print extension application to external services and the client computer 100. Note that the print extension application distribution service 400 is not limited to the print extension application 1052, and may be capable of distributing other applications.
[0034] When an instruction to register the print extension application 1052 is received from an external service or the client computer 100 , the application registration unit 401 registers the uploaded application in the application database 410 .
[0035] When an external service or the client computer 100 requests the print extension application 1052, the application response unit 402 acquires the corresponding application from the application database 410 and transmits it to the request source.
[0036] The application database 410 is a database in which information on print setting applications distributed by vendors or the like and for which a registration request has been received from an external service or the client computer 100 is registered. Details of the information registered in the application database 410 will be described later with reference to FIG. 5C.
[0037] The print extension application 1052 in this embodiment has a setting file section 10521 and an executable file section 10522. The setting file section 10521 has application identification information for identifying the print extension application 1052, and information such as HWID and COID for identifying the corresponding printer 200. The executable file section 10522 is an executable file section of the print extension application 1052. The executable file section 10522 can display a print setting screen by receiving a print setting UI (User Interface), a process for a print job during printing, and a push notification from an external service. In this embodiment, the executable file section 10522 of the print extension application includes a module that generates PDL (Page Description Language) data from print data. The executable file section 10522 generates PDL data that reflects the print settings set on the print setting screen provided by the print extension application. Then, the generated PDL data is transmitted to the cloud print service 500.
[0038] By generating PDL data using a print extension application, even if print settings are made for non-standard items such as IPP that the cloud print service cannot interpret, print data that reflects the print settings can be generated.
[0039] 3C is a functional block diagram of a cloud print service 500 according to an embodiment of the present invention. Each functional block is realized by the CPU of one or more information processing devices constituting the cloud print service 500 executing a program.
[0040] The cloud print service 500 is a service that exists on a cloud via the Internet and is capable of providing functions related to printing. In this embodiment, it has the functions of a printer registration unit 501, a print queue generation unit 502, a printer list generation unit 503, a search response unit 504, and a printer database 510. It also has the functions of a print job management unit 505, a print job generation unit 506, and a print job storage area 511. These functions may also be provided in another cloud print service that cooperates with the cloud print service 500.
[0041] The following describes an example in which the printer 200 is registered in the cloud print service 500 and printing is performed using the printer 200, but similar processing can also be performed with the printer 201 or the printer 202 that can connect to the cloud print service 500.
[0042] When a printer registration unit 501 receives an instruction from the printer 200 to register the printer, it uses a print queue generation unit 502 to generate a print queue, and registers the generated print queue in the printer database 510 in association with the printer identification information. When the printer's print queue and printer identification information are registered in this manner, this is referred to as the printer being registered. Various attributes may be added to the registered printer here. Examples of the various attributes include the location of the printer.
[0043] A print queue generation unit 502 generates a print queue on the cloud print service 500 under the control of the printer registration unit 501. When the client computer 100 sends a print instruction to the cloud print service 500, a print job is registered in the print queue generated by the print queue generation unit 502.
[0044] A printer list generating unit 503 generates a list of registered printers, for example when the client computer 100 requests a list of printers registered in the cloud print service 500.
[0045] The search response unit 504 responds to the client computer 100 with information about registered printers based on a printer search from the client computer 100 to the cloud print service 500. The search response unit 504 passes the search results to the printer list generation unit 503, which generates a printer list. The printer list generated by the printer list generation unit 503 is then returned to the client computer 100.
[0046] The print job management unit 505 receives image data and print settings from the client computer 100, and transmits print jobs generated by the print job generation unit 506 to the printer 200. The print job management unit 505 also stores the print jobs generated by the print job generation unit 506 in a print job storage area 511.
[0047] The printer database 510 is a database that stores information about printers registered in the cloud print service 500. The contents stored in the printer database 510 will be described later with reference to FIG. 5A.
[0048] First, the process of registering the printer 200 in the cloud print service 500 will be described.
[0049] 4 is a sequence diagram of a process for registering the printer 200 according to an embodiment of the present invention to the cloud print service 500. In this embodiment, the printer 200 is accessed from the client computer 100, and a registration request for the printer 200 is sent to the cloud print service 500 by operating the printer 200.
[0050] The printer 200 supports a cloud print function (a function for receiving and printing a print job from a cloud print service) and a WebUI function for operating the printer 200 from the client computer 100. The WebUI function is a function for generating a UI and publishing it on a network. The client computer 100 supports a cloud print client function (a function for sending files to a cloud print service) and a WebUI client (e.g., a web browser) for operating the WebUI. In addition, a cloud print service 500 represents a cloud print service on the Internet.
[0051] The user uses the WebUI client of the client computer 100 to open the WebUI of the printer 200, and selects a button on the WebUI to register the printer with the cloud print service. When this selection is made, in S410, the client computer 100 transmits a registration request to the printer 200 for the cloud print service.
[0052] In S411, the printer 200 transmits a registration request to the cloud print service to the cloud print service 500 in accordance with the registration request to the cloud print service received in S410. In this manner, in this embodiment, the registration request for the printer 200 is transmitted from the WebUI client of the client computer 100 to the cloud print service 500. This request may be transmitted by operating an input device associated with the printer 200, such as a panel. At this time, the printer 200 transmits the printer registration request to the cloud print service 500 without making a request from the client computer 100.
[0053] In S411, the cloud print service registration request sent to the cloud print service 500 is accompanied by information about the printer 200. The information about the printer 200 includes the name of the printer 200, information for identifying the printer model (HWID), and a COID for identifying the type of printer, such as an inkjet printer or laser printer. The printer information also includes IP address information and a capability information file relating to functions standardized by IPP or the like.
[0054] When the cloud print service 500 receives the registration request in S411, in S412, the cloud print service 500 causes the print queue generation unit 502 to create a print queue for sending print jobs to the printer 200. The printer registration unit 501 registers the printer information and capability information in the printer database 510, and creates a record for the printer for which a registration request has been made. The print queue generation unit 502 then creates a print queue. This print queue is created using the received printer 200 information, such as the printer name (device name), the HWID and COID that identify the printer model, and the printer's IP address.
[0055] Next, in S413, the cloud print service 500 sends a download request for the driver extension package 303 to the printer driver distribution service 300. This is a request to receive the driver extension package 303 corresponding to the printer registered in the cloud print service 500. The cloud print service 500 sends the download request for the driver extension package 303 and the HWID and COID of the printer 200 to the printer driver distribution service 300.
[0056] In S414, the printer driver distribution service 300 transmits the corresponding driver extension package 303 to the cloud print service 500 based on the received HWID and COID. The printer driver distribution service 300 identifies a driver extension package whose extension flag is TRUE and that matches the received HWID from the printer driver database shown in FIG. 5B. If the extension flag is TRUE but a driver extension package that matches the received HWID is not identified, the printer driver distribution service 300 identifies a driver extension package whose extension flag is TRUE and that matches the received COID. The printer driver distribution service 300 then transmits the identified driver extension package to the cloud print service 500. Note that if the driver extension package can be identified by only the HWID, in S413, only the HWID may be transmitted to the printer driver distribution service 300.
[0057] Here, the printer driver database will be described with reference to FIG. 5B. FIG. 5B is an example of the printer driver database 310 held by the printer driver distribution service 300. The package name refers to the name of the package acquired from the driver information unit 304 at the time of registration. The HWID refers to identification information (model-specific identification information) used to identify the model of the printer 200. The COID is identification information that identifies the category of the printer that uses the driver. The package refers to the name of the package that includes the driver extension package 303. The package may be information such as a file path as long as it is information that can identify the driver or driver extension package corresponding to the record. The extension indicates whether the driver extension package 303 is an extension file. If the extension is "FALSE", the package is a printer driver rather than an extension package. On the other hand, if the extension is "TRUE", the package is not a printer driver but a package that extends the driver. The application identifier is identification information of an application used when extending a print setting screen using the capability information stored in the driver extension package. In this embodiment, only the driver extension package has an application identifier, but the printer driver may have an application identifier.
[0058] 5B is updated by printer driver registration unit 301. When registering a package in printer driver database 310, printer driver registration unit 301 analyzes driver information unit 304. Printer driver registration unit 301 acquires the package name, HWID, COID, and information as to whether it is a driver extension package, and registers it in printer driver database 310 together with driver extension package 303.
[0059] In S415, the cloud print service 500 analyzes the device capability information section 305 of the downloaded driver extension package 303 and extends the print queue. The cloud print service 500 acquires capability information of the printer 200 from the device capability information section 305 of the driver extension package 303. Then, the cloud print service 500 updates the capability information of the printer corresponding to the print queue in the printer information in the printer database 510. In S415, the cloud print service 500 rewrites the capability information associated with the print queue with the capability information acquired from the driver extension package. Note that the cloud print service 500 may add capability information related to setting items not associated with the print queue, among the capability information acquired from the driver extension package, to the capability information associated with the print queue. Also, the cloud print service 500 may acquire information indicating the hardware configuration of the printer 200 from the printer 200, and determine the capability information from the capability information and hardware configuration information included in the driver extension package.
[0060] Through the above processing, the print queue is extended with vendor-specific device capability information for the printer 200 registered in the cloud print service 500. Then, in S416, the printer database 510 is updated with the extended information of the printer 200. Through the above processing, the capability information extended by the driver extension package is registered in the printer database 510 as capability information corresponding to the print queue.
[0061] FIG. 5A is an example of a printer database 510 held by the cloud print service 500. The device name refers to the name of the printer (device name) acquired from the printer 200 at the time of registration. The HWID refers to an identifier (model-specific identifier) used to identify the model of the printer 200. The COID is identification information for identifying the printer category, such as whether the printer 200 is an inkjet printer or a laser beam printer. The IP address refers to the IP address of the connected printer. The package refers to the package name of the driver extension package 303 used to expand the print queue corresponding to the printer. If the printer is not expanded, it becomes null. Furthermore, although not shown, the device capability information and the like are registered in the database in JSON (Javascript Object Notation) format. If the printer capability information is expanded by the driver extension package, the expanded capability information is stored. The format in which the device capability information is stored is not limited to JSON and may be another data format. Also, FIG. 5A may store the printer information and the user information that can use the printer in association with each other.
[0062] 9 shows an example of capability information stored in association with a print queue. As an example, the capability information is in JSON format, with each setting representing a function. Each function has options that can be set in an array format.
[0063] Reference numeral 901 indicates standard capability information defined by IPP or the like. “Duplex” is a setting item related to a double-sided function, and indicates that the setting item has options of “Duplex” indicating double-sided printing and “One-Sided” indicating single-sided printing. “Color” is a setting item related to color printing, and indicates that the setting item has options of “Mono” indicating black-and-white printing and “Color” indicating color printing. “Orientation” is a setting item related to the orientation of paper used for printing, and indicates that the setting items have options of “Portrait” indicating a portrait orientation and “Landscape” indicating a landscape orientation. The capability information described in 901 is a standard setting item and option defined by IPP or the like that can be provided from the printer 200 to the cloud print service 500. By using a driver extension package to extend the capability information of the device, even the standard setting item described in 901 that is defined by IPP or the like can have vendor-specific options. For example, by expanding the setting item "Staple," which is related to paper binding, you can set "Saddle Stitch" to indicate saddle stitching in addition to the standard option "Staple left top," which indicates single binding at the top left.
[0064] 902 is capability information extended by the driver extension package 303, for example, capability information related to vendor-specific setting items. Functions are Extension_Setting1 and Extension_Setting2, and options are Extension_option1 and Extension_option2. Extension setting includes, for example, settings related to stapleless binding and settings related to paper mixing in which multiple types of paper are mixed in one job. For the paper mixing function, a character string indicating paper mixing is entered in "Extension_Setting1". Then, for example, a character string indicating an option indicating the use of A3 and A4 paper is entered in "Extension_option1", and a character string indicating an option indicating the use of B4 and B5 paper is entered in "Extension_option2". By the print extension application referring to the file shown in FIG. 9, it is possible to provide a print setting screen on which vendor-specific setting items can be set.
[0065] Returning to Fig. 4, in S417, when the cloud print service 500 completes the registration in the printer database 510, it transmits to the printer 200 a cloud print service registration request response including a registration URL for cloud print registration and a registration URL presentation request.
[0066] In S418, the printer 200 receives the cloud print service registration request response and the registration URL presentation request, and the printer 200 outputs the registration URL information. In S418, the printer 200 displays the URL on the monitor 110, or prints a sheet of paper with the registration URL information written on it, and notifies the user of the registration URL. The printer 200 may also notify the client computer 100 of the registration URL via a WebUI.
[0067] In S419, the user accesses the cloud print service 500 indicated by the registration URL presented by the printer 200. At that time, it is necessary to log in to a cloud account that can access the cloud print service 500, and therefore it is necessary to input a user ID and a password.
[0068] The cloud print service 500 links the user and the printer 200 based on a registration URL including a cloud account and printer information. One method of linking is, for example, linking the printer information with a user token. However, the method is not limited to this. Then, in S420, the cloud print service 500 sends a user token including information about the cloud print service 500 to the printer 200, and ends the registration process of the printer 200 to the cloud print service 500. The printer 200 thereafter accesses the cloud print service 500 using the user token.
[0069] Next, a process for generating a print queue for the printer 200 registered in the cloud print service 500 in the client computer 100 and installing a print extension application will be described.
[0070] FIG. 6 is a sequence diagram of a process for installing the print extension application 1052 in the client computer 100 according to an embodiment of the present invention.
[0071] When outputting to the printer 200 using cloud print, the client computer 100 transmits a print job to the cloud print service 500. Therefore, it is necessary to generate a print queue in the client computer 100 for transmitting the print job to the cloud print service 500.
[0072] In this embodiment, a printer search function that the operating system 1053 has as a standard function is used to generate a print queue for a printer registered in the cloud print service 500. Normally, when a printer search is performed, printers on the same intranet are targeted. For example, in FIG. 2, when the client computer 100 performs a printer search, it can find the printer 200, but it cannot find the printers 201 and 202 that are beyond the intranet. In this embodiment, the client computer 100 can access the cloud print service 500. If a printer is registered in the cloud print service 500, it is possible to find the printers registered in the cloud print service 500 by a printer search. In this embodiment, in addition to the printer 200 described above, the printers 201 and 202 are registered in the cloud print service 500, and these printers can also be found by the printer search function of the OS.
[0073] The client computer 100 performs a printer search (S610), which is a standard function of the operating system 1053 described above. In S610, the client computer 100 searches for printers registered in the cloud print service 500 in addition to printers on the same intranet as the client computer 100. The client computer 100 accesses the cloud print service and sends a request to the cloud print service 500 for a list of printer information registered on the cloud print service.
[0074] When the search response unit 504 of the cloud print service 500 receives the printer search information, it presents available printers to the client computer 100. To do this, the cloud print service 500 generates a printer list including printer information that can be used by the user who is accessing the cloud print service 500 from the client computer 100 (S611). This printer information includes the above-mentioned printer name (device name), HWID that identifies the printer model, and the printer's IP address. The printer list including the printer information is created by the printer list generation unit 503 of the cloud print service 500 using information from the printer database 510.
[0075] The cloud print service 500 returns the created printer list to the client computer 100 (S612). At this time, the cloud print service 500 also sends printer identification information such as the HWID and COID shown in FIG. 5 as printer information included in the printer list. The client computer 100 displays on the monitor 110 a selection screen for printers available to the user based on the printer list. The user selects the printer they want to use from the presented printer list.
[0076] The operating system 1053 of the client computer 100 installs the cloud driver 1050 used by the cloud print service 500 and generates a print queue for the selected printer (S613). The client computer 100 obtains information about the printer selected by the user from the cloud print service 500 and generates a print queue using that information. The client computer 100 generates a print queue based on the HWID, COID, IP address, and printer capability information obtained from the cloud print service 500. Note that if the cloud driver 1050 is already installed on the client computer 100, the client computer 100 does not install the cloud driver 1050. The client computer 100 generates a print queue using the already installed cloud driver 1050 and the printer information obtained from the cloud print service 500.
[0077] When the operating system 1053 of the client computer 100 succeeds in generating the print queue, it requests the printer driver distribution service 300 to download the driver extension package 303 (S614). The client computer 100 sends an acquisition request for the HWID, COID, and driver extension package to the printer driver distribution service 300. Note that the client computer 100 may send only either the HWID or the COID to the cloud print service 500.
[0078] When the printer driver distribution service 300 receives the download request, it performs a download process for the client computer 100 (S615). The printer driver distribution service 300 identifies a driver extension package that matches the received HWID from the driver extension packages registered in the printer driver database 310, and sends the package to the client computer 100. If there is no driver extension package that matches the received HWID, the printer driver distribution service 300 identifies a driver extension package that matches the received COID. The printer driver distribution service 300 then sends the identified driver extension package to the client computer 100.
[0079] The operating system 1053 of the client computer 100 installs the driver extension package 303 and extends the capability information of the print queue generated based on the above-mentioned cloud driver 1050 (S616). The client computer updates the capability information corresponding to the print queue with the device capability information of the driver extension package. In other words, the print queue is extended with vendor-specific device capabilities for the printer 200 registered in the cloud print service 500.
[0080] Next, the client computer 100 transmits a download request to the print extension application distribution service 400 (S617). At that time, the operating system 1053 makes a download request for the print extension application 1052 linked to the target printer based on the identifier information of the print extension application 1052 described above. In this embodiment, in the print extension application distribution service 400, the identifier information of the print extension application 1052 in the driver extension package 303 and the print extension application 1052 are linked on a one-to-one basis.
[0081] Furthermore, metadata describing the association between the identifier information of the print extension application 1052 and the HWID included in the printer information may be stored in the print extension application distribution service 400. In this case, the appropriate print extension application 1052 is downloaded using the metadata.
[0082] When the print extension application distribution service 400 receives the download request, it performs a download process for the client computer 100 (S618). The application response unit 402 identifies an application corresponding to the application identifier notified from the client computer 100 from the application database 410 shown in FIG. 5C. The application response unit 402 transmits the identified print extension application to the client computer. The client computer 100 installs the print extension application 1052 (S619).
[0083] 5C is an example of an application database 410 held by the print extension application distribution service 400. The application name is the name of an application registered in the database, including the print extension application 1052. The application identifier is information for identifying an application including the print extension application 1052. The application package is a stored file path of an application including the print extension application 1052. The application package may be a folder name in which an application is stored, or the like, as long as it is information that can identify the package of a registered print extension application.
[0084] The application database 410 is updated by the application registration unit 401. The application registration unit 401 analyzes the setting file unit 10521 and acquires the application name and application identifier. The application registration unit 401 registers the above information in the application database 410 together with the print extension application 1052.
[0085] After installation, the print extension application 1052 is associated one-to-one with the printer 200 in the client computer 100. Therefore, by storing model information and print setting information of the printer 200 in the printer 200, it becomes possible to present an appropriate print setting UI to the user. Alternatively, the print extension application 1052 may communicate with the cloud print service 500, acquire target model information and print setting information, and provide a UI using that information. When installation of the print extension application 1052 is complete, the user becomes able to change detailed print settings.
[0086] In this embodiment, after generating a print queue on the client computer 100, the client computer accesses a printer driver distribution service and acquires a driver extension package. The client computer 100 may acquire information on the expanded print queue from the cloud print service 500, and may not expand the print queue on the client computer. In this case, the client computer 100 omits S614 to S616. Also, the client computer 100 may acquire information on the expanded print queue from the cloud print service 500, and then execute the processes described in S614 to S616.
[0087] Next, the operation for executing printing on the client computer 100 in this embodiment will be described.
[0088] 8A is a diagram showing an example of a print common dialog displayed by the OS 1503 on the client computer 100. Area 801 is a printer queue of a printer registered in the cloud print service 500, and is an area for selecting a print queue to be used for printing. When a user selects area 801 of the print common dialog, a list of print queues registered in the cloud print service 500 is displayed. The user selects a print queue to be used for printing from the displayed print queues.
[0089] The advanced settings button 800 is a button for starting the print extension application 1052. When the user selects the advanced settings button 800, a print settings screen, which will be described later with reference to Fig. 8B, is displayed.
[0090] The "Print" button 802 is a button that the user uses to instruct the start of printing. When the user selects the "Print" button 802, the client computer 100 sends the image data and the currently set print settings to the cloud print service 500. When printing is instructed in the print common dialog displayed by the OS 1053, the cloud driver 1050 sends the image data and the print settings to the cloud print service 500. The print job generation unit 506 of the cloud print service 500 generates PDL data based on the image data and print settings received from the client computer 100, and stores the job in the print job storage area 511 as a print job.
[0091] Fig. 8B is a screen displayed on the client computer 100 when the advanced settings button 800 is selected in Fig. 8A. When the user selects the advanced settings button 800, the OS 1053 identifies the print extension application 1052 that corresponds to the selected print queue. The OS 1053 launches the identified print extension application 1052. The launched print extension application 1052 displays the print settings screen shown in Fig. 8B.
[0092] An area 803 is an area where print settings are displayed. In addition to the paper orientation, number of copies, and color mode that are standardly determined by IPP and the like, the area 803 can also set vendor-specific setting items such as bookbinding printing settings and mixed paper settings that use paper of multiple paper sizes in one job.
[0093] Reference numeral 804 denotes an extended setting, which is an operation section generated by the capability information extended by the driver extension package 303. Reference numeral 805 denotes an area for switching the displayed screen and changing the items to be set.
[0094] An "OK" button 806 is a button for confirming the print settings set on the print setting screen shown in Fig. 8B and returning to the print common dialog shown in Fig. 8A. When the "OK" button is selected, the print settings set on the print setting screen shown in Fig. 8B are passed to the OS 1053.
[0095] The "Print" button 807 is a button that the print extension application 1052 uses to issue a print instruction to the cloud print service 500. When the "Print" button 807 is selected, the print extension application 1052 executes the executable file section 10522 of the print extension application 1052, and generates PDL data that reflects the set print settings. The print extension application 1052 then transmits the generated PDL data and print settings to the cloud print service 500. When PDL data has been generated by the print extension application 1052, the cloud print service 500 transmits the PDL data and print settings to the printing device without generating PDL data.
[0096] As described above, in the first embodiment, the PDL data is generated by the print extension application 1052. In this manner, even if the cloud print service 500 does not generate the PDL data reflecting the settings by the print extension application 1052, the PDL data reflecting the settings by the print extension application 1052 can be transmitted to the printing device.
[0097] A process when instructing printing to the cloud print service 500 from the print common dialog shown in Fig. 8A in this embodiment will be described with reference to Fig. 11. Fig. 11 starts after the OS 1053 displays the common dialog.
[0098] The OS 1053 accepts the selection of the advanced settings button 800 (S1301). The OS 1053 starts the print extension application corresponding to the print queue selected in the print common dialog (S1302). The print extension application 1052 displays the print setting screen shown in FIG. 8B (S1303). The print extension application 1052 accepts changes to the print settings from the user. The print extension application 1052 accepts the selection of the "OK" button 805 (S1304). When the user selects the "OK" button 805, the print extension application 1052 transmits the print settings set in the OS 1053 (S1305). The OS 1053 receives the print settings from the print extension application 1052 and displays the print common dialog. The user selects the "Print" button 802 in the print common dialog (S1306). The OS 1053 transmits the print settings received from the print extension application 1052 and the image data to be printed as print data to the cloud print service 500 (S1307).
[0099] The cloud print service 500 receives image data and print settings from the OS 1053 of the client computer 100, and generates PDL data based on the received image data and print settings (S1308). Note that the PDL data generated here reflects only print settings that the cloud print service 500 can support. The cloud print service 500 saves a print job that uses the generated PDL data as print data in the print job storage area 511 (S1309).
[0100] As described above, when PDL data is generated by the cloud print service 500, only print settings that the cloud print service 500 can support can be reflected in the PDL data. Examples of print settings that the cloud print service 500 can support include settings related to color and monochrome printing, and settings related to double-sided printing. Of the print settings transmitted in S1307, print settings that the cloud print service 500 cannot support are not reflected in the PDL data and are not reflected in the output by the printer. Therefore, in this embodiment, when print settings are set using a print extension application, as shown in FIG. 12, a print instruction is given by the print extension application 1052, and PDL data is generated by the print extension application. In this manner, even if print settings that the cloud print service cannot support are set by the print extension application, it is possible to print using the PDL data in which the print settings are reflected. In this embodiment, examples of print settings that the cloud print service cannot support include an aggregation setting for printing multiple pages on one sheet of paper, a mode setting for saving recording material during printing, and bookbinding and stamp settings.
[0101] The operating system 1053 of the client computer 100 accepts selection of the advanced settings button 800 from the user (S1010). The OS 1053 starts the print extension application 1052 corresponding to the selected print queue (S1011).
[0102] The print extension application 1052 accepts setting changes from the user and accepts selection of the “Print” button 807 (S1012). The print extension application 1052 transmits a request to the OS 1053 to obtain print data to be printed (S1013). The operating system 1053 then transmits image data to the print extension application 1052 as print data (S1014). The print extension application 1052 converts the image data and print settings received as print data into vendor-specific PDL data (S1015). The PDL data generated by the print extension application 1052 is in a data format that can be analyzed by the printer 200, and has print commands that can realize all functions installed in the printer 200. Therefore, various functions changed in the print setting UI described above can be converted into print commands and generated as PDL data.
[0103] Then, the print extension application 1052 transmits the converted PDL data as print data to the cloud print service 500 (S1016). Note that the print extension application 1052 may transmit print settings as print data together with the PDL data to the cloud print service 500. The print extension application 1052 also transmits the PDL data to the cloud print service 500 using a predetermined API (Application Programming Interface).
[0104] The cloud print service 500 receives print data including PDL data from the print extension application 1052, and the print job management unit 505 registers the received print data including PDL data as a print job in the print job storage area 511 (S1017).
[0105] When the cloud print service 500 receives PDL data generated by the print extension application 1052, the print job generation unit 506 of the cloud print service 500 does not operate. The process of the print job generation unit 506 is a process for converting data in a format that the printer 200 cannot interpret into an appropriate format when the data is sent to the cloud print service 500. Therefore, there is no need to perform additional conversion processing on the PDL data generated by the print extension application that has already been converted into the print job format, as in this embodiment. Based on a predetermined API received from the print extension application 1052, the cloud print service 500 controls the received PDL data so as not to convert the data.
[0106] The cloud print service 500 may analyze the data and print settings received from the print extension application 1052 and determine whether or not to convert the received print data into PDL data. For example, if the sender of the print data is the print extension application, the cloud print service 500 may not convert the received print data into PDL data. On the other hand, if the sender of the print data is the OS 1053, the cloud print service 500 may convert the received print data into PDL data.
[0107] In this way, the cloud print service 500 has a process for determining whether or not the received data should be converted. Also, the print extension application 1052 may instruct the cloud print service 500 not to perform job conversion processing. According to this embodiment, the cloud print service 500 can manage PDL data that enables the functions installed in the printer 200 to be realized.
[0108] In this embodiment, it is possible to issue a print start instruction using the cloud print service 500 from both the print common dialog provided by the OS 1053 and the print setting screen provided by the print extension application 1052. Then, depending on whether a print instruction is issued from the print common dialog or from the print extension application, whether PDL data is generated by the cloud print service or the print extension application is switched.
[0109] When the "Print" button 802 in the print common dialog provided by the OS 1053 is selected, the print extension application 1052 is automatically started, image data is passed to the print extension application 1052, and the print setting screen shown in FIG. 8B may be displayed. The user performs detailed print settings on the print setting screen shown in FIG. 8B as necessary. When the user selects the "Print" button 807, the print extension application 1052 generates PDL data based on the acquired image data and print settings, and transmits the generated PDL data and print settings to the cloud print service 500. At this time, the print extension application 1052 uses a predetermined API to control the cloud print service 500 not to generate PDL data. Note that in the above modified example, the detailed setting button 800 in FIG. 8A and the "OK" button 805 in FIG. 8B may not be required. Also, the print common dialog shown in FIG. 8A may not have the "Print" button 802, and the user must select the "Detailed Setting" button 800, start the print extension application, and then instruct printing in the print extension application. In this case, the PDL data is generated by the print expansion application regardless of the contents of the print settings.
[0110] Next, a process for printing a print job registered in the cloud print service 500 from the printer 200 will be described.
[0111] When a user logs in to the printer 200, the printer 200 sends to the cloud print service 500 a request to acquire bibliographic information of the print job registered in the print queue of the cloud print service 500. The bibliographic information acquired here is information necessary for displaying the UI of the printer 200, such as the file name of the image data, the number of copies to be printed in color mode, and the date and time the print job was created.
[0112] The cloud print service 500 generates a printable job list from the bibliographic information of the print jobs stored in the print queue. The cloud print service 500 then transmits the generated printable job list to the printer 200. When the printer 200 receives the printable job list sent by the cloud print service 500, the list of print jobs is displayed on the operation panel. FIG. 7 is an example of an operation panel displaying the printable job list received from the cloud print service 500. "aaa.doc" to "jjj.pdf" are print jobs in the cloud print service. The user selects a desired print job from the operation panel and presses the print button 701 to execute printing. The printer 200 that has accepted the print execution makes a request to the cloud print service 500 to obtain the print job. Note that this request includes the ID of the print job to be obtained, i.e., the print job ID. Printing is realized by executing the process shown in FIG. 10 below.
[0113] 10 is a flowchart of the process performed by the cloud print service 500 according to the present embodiment when the cloud print service 500 receives a print job acquisition request from the printer 200. Unless otherwise specified, this process is performed by each processing unit of the cloud print service 500. First, the print job management unit 505 receives the print job acquisition request (including the print job ID of the print job to be output) from the printer 200 (S1001).
[0114] The print job management unit 505 that receives the request identifies the specified print job from the print job storage area 511. The print job management unit 505 passes the identified print job to the print job generation unit 506, and generates a print job suitable for the output destination printer 200 (S1002).
[0115] The print job management unit 505 acquires the generated print job from the print job generation unit 506, and transmits the print job to the printer 200 that sent the print request (S1003).
[0116] In this embodiment, the user operates the printer 200, and the printer 200 obtains the selected print job from the cloud print service 500. The printer 200 may periodically access the cloud print service 500 and obtain from the cloud print service 500 print jobs that are linked to and managed by the print queue of the printer 200.
[0117] Through the above processing, the print job registered in the cloud print service 500 is executed.
[0118] With the above configuration, even if print settings that cannot be supported by the cloud print service 500 are configured in the client computer 100, print data that reflects the print settings can be sent to the printing device.
[0119] <Second embodiment> In the first embodiment, the print data is converted into print data compatible with the printing device by the print extension application 1052 of the client computer 100. It is considered that this cannot be realized in an environment in which the print extension application 1052 cannot be installed due to the specifications of the operating system 1053. In the second embodiment, a means for realizing all the functions installed in the printer 200 even when the print extension application 1052 does not exist will be described.
[0120] In the second embodiment, a case will be described in which the cloud print service 500 receives print data from the client computer 100 and generates PDL data compatible with the printing device in an external server system. By performing the second embodiment, even if the client computer 100 or the print extension application 1052 cannot generate print data compatible with the destination printing device, it is possible to generate print data compatible with the printing device.
[0121] The hardware configuration of the client computer is the same as in the first embodiment, and therefore a description thereof will be omitted.
[0122] An example of a network configuration in the second embodiment will be described with reference to Fig. 14. In Fig. 14, the same components as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment, and only the different components will be described.
[0123] The PDL conversion service 600 refers to a service that generates PDL data that realizes a function of the printer 200 that can be analyzed by the printer 200 but cannot be interpreted by the cloud print service 500. The PDL conversion service 600 may be realized by a module that is registered in an extension area prepared in the cloud print service 500, or may be provided as a separate cloud service and realized by linking with the cloud print service 500. By setting the PDL conversion service 600 as a transmission destination for the cloud print service 500, it becomes possible for the cloud print service 500 to transmit data to the PDL conversion service 600 after receiving the print data.
[0124] In the second embodiment, the registration of the printer 200, the generation of a print queue in each component, and the means for issuing a print instruction by the user are the same as in the first embodiment, and therefore will be omitted. Below, the description will begin with the transmission of print data to the cloud print service 500 by the user issuing a print instruction.
[0125] In the first embodiment, a print instruction can be given from both the print common dialog and the print setting screen provided by the print extension application. When a print instruction is given from the print common dialog, the operation system transmits print data to the cloud print service 500. When a print instruction is given from a screen provided by the print extension application, the print extension application transmits print data to the cloud print service 500. In the second embodiment, when a print instruction is given from either screen, the OS 1053 transmits print data to the cloud print service 500.
[0126] FIG. 13 is a sequence diagram of a PDL conversion process in which print data is sent to the cloud print service 500 and the PDL conversion service 600 is used, according to the second embodiment.
[0127] The operating system 1053 of the client computer 100 receives a print instruction from a user (S1110). The operating system 1053 transmits print data including image data and print settings to the cloud print service 500 (S1111).
[0128] When the cloud print service 500 receives the print data, it transmits the print data to the PDL conversion service 600 that has been set as a destination in advance (S1112).
[0129] When the PDL conversion service 600 receives print data from the cloud print service 500, it converts the print data into PDL data that can realize all the functions of the printer 200 (S1113). The PDL conversion service 600 transmits the converted PDL data to the cloud print service 500 (S1114). It is assumed that in S1114, the PDL conversion service 600 transmits the PDL data and print settings to the cloud print service 500 in the form of print data. The print job management unit 505 registers the print data including the received PDL data as a print job in the print job storage area 511 (S1115). With this embodiment, the cloud print service 500 can manage PDL data that can realize the functions installed in the printer 200.
[0130] The print job stored in the print job storage area 511 of the cloud print service 500 by the above method is read out from the printer and printed by the same method as in the first embodiment.
[0131] Furthermore, in this embodiment, the cloud print service 500 performs the PDL conversion process using the PDL conversion service 600, but this may be achieved at a different timing. For example, print data is sent from the client computer 100 to the PDL conversion service 600 without going through the cloud print service 500, and PDL conversion is performed. Then, after the PDL conversion, the PDL conversion service 600 may send print data including the PDL data and print settings to the cloud print service 500 to register the print job.
[0132] By using the above-mentioned means, even in an environment in which the print extension application 1052 cannot be installed, all the functions installed in the printer can be realized by printing using the standard printing system provided by the operating system.
[0133] <Third embodiment> In the third embodiment, a method of installing a vendor-specific driver package in the cloud service 500 and printing with a printer driver will be described. The cloud service 500 with the driver package installed converts print data received from a client terminal using the driver. In this way, it is possible to generate print data that reflects the vendor-specific print settings.
[0134] An example of a functional block of the printer driver distribution service 300 in the third embodiment will be described with reference to Fig. 15. Fig. 15 is a drawing that replaces Fig. 3A in the first embodiment. In Fig. 15, the same components as in the first embodiment are denoted by the same reference numerals as in the first embodiment, and only the different components will be described.
[0135] The driver package 306 is an example of a package distributed from the printer driver distribution service 300. The driver package 306 has a driver information section 307, a device capability information section 308, and a drawing section 309. The driver information section 307, like the driver information section 304, has information such as an HWID and a COID for identifying the printer, information indicating that the package is a driver extension package, and the version of the driver extension package 303. The device capability information section 308, like 305, has device capability information and prohibited characters information of the corresponding printer 200. The device capability information is, for example, information on whether the printer 200 supports color printing and double-sided printing. In addition to the above capability information, the capability information included in the driver extension package 303 includes whether vendor-specific stapleless binding is possible, whether saddle stitching is possible, and whether mixed paper printing, which uses multiple types of paper, is possible.
[0136] The drawing unit 309 can convert GDI data, XPS data, and data such as Word, Excel, and PowerPoint data into PDF, PwgRaster, PCL, or a printer vendor's own PDL.
[0137] As described above, the printer driver distribution service 300 has a driver package 306 and provides the driver package to the cloud service 500 .
[0138] Fig. 16 is a diagram for explaining a method for installing a printer driver in a cloud service according to the third embodiment. Fig. 16 is a diagram showing a process replacing Fig. 4 in the first embodiment. In Fig. 16, the same reference numerals as in the first embodiment are used for configurations that are the same as those in the first embodiment, and only the different configurations will be explained.
[0139] In this embodiment, the printer 200 is accessed from the client computer 100 and operated. As a result, the printer 200 transmits a registration request for the printer 200 to the cloud print service 500.
[0140] The printer 200 supports a cloud print function (a function for receiving and printing a print job from a cloud print service) and a WebUI function for operating the printer 200 from the client computer 100. The WebUI function is a function for generating a UI and publishing it on a network. The client computer 100 supports a cloud print client function (a function for sending files to a cloud print service) and a WebUI client (e.g., a web browser) for operating the WebUI. In addition, a cloud print service 500 represents a cloud print service on the Internet.
[0141] Next, in S1512, the cloud print service 500 sends a download request for the driver package 306 to the printer driver distribution service 300. This is a request to receive the driver package 306 corresponding to the printer registered in the cloud print service 500. The cloud print service 500 sends the driver package 306 download request and the HWID and COID of the printer 200 to the printer driver distribution service 300. Note that the HWID and COID notified to the printer driver distribution service 300 in S1512 are the HWID and COID that the cloud print service 500 acquired from the printer 200 in S411.
[0142] In S1512, the printer driver distribution service 300 transmits the corresponding driver package 306 to the cloud print service 500 based on the received HWID and COID. The printer driver distribution service 300 identifies the printer driver and driver extension package that match the received HWID from the printer driver database shown in FIG. 17A.
[0143] Here, the tables shown in Figures 17A and 17B will be described. Figure 17A is a table showing information on driver packages managed by the driver distribution service 300. Figure 17A is a table corresponding to Figure 5B in the first embodiment. Figure 17B is a table showing information on printers registered in the cloud printing service 500. The table shown in Figure 17B is a table corresponding to Figure 5A in the first embodiment.
[0144] Here, in S410, it is assumed that a printer called iR-ADV CCCC shown in FIG. 17B is added to the cloud print service 500. Based on the data acquired from the printer 200, the cloud print service 500 registers data in the iR-ADV CCCC column in FIG. 17B. The cloud print service 500 notifies the printer driver distribution service 300 of the HWID. Based on the received HWID, the printer driver distribution service 300 identifies a driver package to be installed in the cloud print service 500. Note that in FIG. 17A, there are multiple packages that match the HWID of the device iR-ADV CCCC. One package has a flag TRUE indicating that the driver is extended, and the other package has a flag FALSE indicating that the driver is extended. The package with the TRUE flag is not a printer driver, but a package for extending printer information. In such a case, the printer driver distribution service prioritizes the printer driver with the extension flag FALSE and transmits it to the cloud print service 500.
[0145] If the printer driver distribution service 300 cannot identify a printer driver and a driver extension package that match the HWID notified by the cloud print service 500, the printer driver distribution service 300 executes the following process. The printer driver distribution service 300 sends the printer driver that matches the COID received from the cloud print service 500 to the cloud print service 500. If both a printer driver and an extension package that match the received COID exist, the printer driver distribution service 300 gives priority to sending the printer driver to the cloud print service 500. Note that if the driver extension package can be identified by only the HWID, in S413, only the HWID may be sent to the printer driver distribution service 300.
[0146] In S1513, the cloud print service 500 downloads the driver package 306 from the printer driver distribution service 300. Then, in S1514, the downloaded driver package 306 is installed in the cloud service 500.
[0147] Then, in S1515, the cloud print service 500 causes the print queue generation unit 502 to create a print queue for sending a print job to the printer 200. The printer registration unit 501 registers the printer information and capability information in the printer database 510, and creates a record for the printer for which a registration request has been made. The print queue generation unit 502 then creates a print queue. This print queue is created using the received information about the printer 200, such as the printer name (device name), the HWID and COID for identifying the printer model, and the printer's IP address. By performing the above process, the IP address and package of the printer database shown in FIG. 17B are registered.
[0148] The subsequent processing is the same as in the first embodiment.
[0149] Next, a method of printing using a printer driver installed in a cloud service, which is a third embodiment, will be described. In the third embodiment, since a printer driver installed in a cloud print service 500 generates PDL data, the description will be given using the sequence diagram shown in FIG. 11 described in the description of the first embodiment. Note that a description of the same processes as in the first embodiment will be omitted, and only the differences from the first embodiment will be described here.
[0150] The cloud print service 500 receives image data and print settings from the OS 1053 of the client computer 100, and generates PDL data based on the received image data and print settings (S1308). The cloud print service 500 acquires the device name of the printer used for printing from the print settings received from the operation system 1053. The cloud print service 500 refers to FIG. 17B and identifies a driver corresponding to the printer with the acquired device name. The cloud print service 500 then determines whether the identified driver is installed. If the identified printer driver is installed in the cloud print service 500 based on the above determination, the drawing unit 309 of the identified printer driver generates PDL data. Note that if it is determined that the printer driver corresponding to the acquired device name is not installed in the cloud print service 500, the cloud print service 500 executes the following process. The cloud print service 500 generates PDL data using a module that the cloud print service 500 already has, without using the driver acquired from the printer driver distribution service 300. Furthermore, even if a driver cannot be specified from the acquired printer name, the cloud print service 500 generates PDL data using a pre-installed module.
[0151] Thereafter, the cloud print service 500 passes the generated PDL data to the print job generation unit 506, generates a print job as print data, and stores the print job in the print job storage area 511 (S1309).
[0152] With the above configuration, it is possible to generate PDL data using a driver distributed by the printer driver distribution service. By installing a printer driver registered in the printer driver distribution service in the cloud service 500, it is possible to generate PDL data that reflects print settings that the cloud print service 500 cannot support.
[0153] <Fourth embodiment> In the third embodiment, PDL data is generated by installing a vendor-made printer driver in the cloud print service 500. In the fourth embodiment, PDL data is generated by installing a filter in the cloud print service 500 that generates PDL data from XPS data generated by an OS standard driver.
[0154] An example of a functional block of the printer driver distribution service 300 in the fourth embodiment will be described with reference to Fig. 18. In Fig. 18, the same components as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment, and only the different components will be described.
[0155] The driver package 306 is an example of a package distributed from the printer driver distribution service 300. In this embodiment, the driver package 306 is assumed to be a driver package that operates with the V4 driver architecture. The V4 driver architecture is a printing mechanism that operates with an XPS (XML Paper Specification) print path that Microsoft Corporation has included in Windows 8 (registered trademark) and later.
[0156] The driver package 306 has a driver information section 307, a device capability information section 308, a layout filter 311, and a renderer filter (drawing filter) 312. The driver information section 307 stores an HWID and a compatible ID (COID) for identifying the printer, similar to the driver information section 304. Furthermore, the driver information 307 has information indicating that the package is a driver extension package, and information such as the version of the driver extension package 303. The fourth embodiment differs from the third embodiment in that the driver package 306 has a layout filter 311 and a renderer filter 312.
[0157] The device capability information section 308 has device capability information and prohibition information of the corresponding printer 200, similar to the device capability information section 305 of the driver extension package 303. Device capability information is, for example, information on whether the printer 200 supports color printing, whether it supports double-sided printing, etc. In addition to the above capability information, the capability information included in the driver extension package 303 includes whether vendor-specific stapleless binding is possible, whether saddle-stitching is possible, and whether mixed paper printing, which prints using multiple types of paper, is possible. Furthermore, in this embodiment, in addition to the device capabilities, it also has vendor-specific print setting information that is completed by processing performed by the driver.
[0158] A layout filter 311 performs layout-related processing such as changing the magnification, imposition layout for bookbinding, and stamps.
[0159] A renderer filter 312 renders XPS data, which is a spool file when operating under the V4 architecture, and converts it into PDL (Page Description Language).
[0160] The layout filter 311 and the renderer filter 312 are filters used as plug-ins for the filter pipeline used in the V4 driver architecture.
[0161] A method of installing a printer driver in a cloud service according to the fourth embodiment will be described with reference to Fig. 19. The same components as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment, and only the different components will be described.
[0162] This is a sequence diagram of a process for registering the printer 200 in the cloud print service 500. In this embodiment, the client computer 100 accesses the printer 200 and operates the printer 200 to transmit a registration request for the printer 200 to the cloud print service 500.
[0163] The printer 200 supports a cloud print function (a function for receiving and printing a print job from a cloud print service) and a WebUI function for operating the printer 200 from the client computer 100. The WebUI function is a function for generating a UI and publishing it on a network. The client computer 100 supports a cloud print client function (a function for sending files to a cloud print service) and a WebUI client (e.g., a web browser) for operating the WebUI. In addition, a cloud print service 500 represents a cloud print service on the Internet.
[0164] Next, in S1512, the cloud print service 500 sends a download request for the driver package 306 to the printer driver distribution service 300. This is a request to receive the driver package 306 corresponding to the printer registered in the cloud print service 500. The cloud print service 500 sends the driver package 306 download request and the HWID and COID of the printer 200 to the printer driver distribution service 300.
[0165] In S1512, the printer driver distribution service 300 transmits the corresponding driver package 306 to the cloud print service 500 based on the received HWID and COID. The printer driver distribution service 300 identifies a printer driver and a driver extension package that match the received HWID from the printer driver database shown in FIG. 17A. Note that, as shown by device iR-ADV CCCC in FIG. 17A, a printer driver (extension flag is FALSE) and an extension package (extension flag is TRUE) with a matching HWID may exist simultaneously in the printer driver database. In this case, the printer driver is preferentially transmitted to the cloud print service 500.
[0166] If a printer driver and driver extension package matching the HWID are not identified, the printer driver distribution service 300 identifies a printer driver and driver package 306 matching the received COID. If a printer driver and extension package matching the COID also exist, the printer driver is given priority. The printer driver distribution service 300 then transmits the identified printer driver and extension package 306 to the cloud print service 500. Note that if a driver extension package can be identified by only the HWID, in S413, only the HWID may be transmitted to the printer driver distribution service 300.
[0167] In S1513, the cloud print service 500 downloads the driver package 306 from the cloud print service 500. Then, the cloud print service 500 acquires the driver information section 307, the device capability information section 308, the layout filter 311, and the renderer filter 312 included in the driver package 306 in S1610.
[0168] In step S1611, the cloud print service 500 registers the OS standard driver installed in the OS in the cloud service, the acquired driver package 306, and the identification information of the printer 200 for which registration is requested, in association with each other.
[0169] Specifically, the cloud print service 500 performs an update process for the device capability information 308 used in the V4 driver architecture and the association of the filter used as a plug-in in the filter pipeline. First, the cloud print service 500 adds the information in the acquired device capability information section 308 as additional information to the basic settings of the OS standard driver. This allows the user to add vendor-specific print setting information when printing using the cloud print service 500.
[0170] Next, the cloud print service 500 links the filter information that can add various processes using the print setting information extended by the device capability information unit 308 to the identification information of the printer 200 and the OS standard driver. The filter pipeline plug-in is called a filter, and in this embodiment, the layout filter 311 and the renderer filter 312 are linked to perform various extended processes based on the vendor-specific print setting information. The filter pipeline plug-in is defined by an XML file called a filter pipeline config (FIG. 20). In this embodiment, the layout filter definition section 2001 and the renderer filter definition section 2002 are described as described above. The linking is completed when the OS standard driver reads this definition file. This process extends the OS standard driver, making it possible to appropriately process and print the vendor-specific print setting information.
[0171] After the above process, when the client computer 100 selects a print queue corresponding to the printer 200 created in the cloud print service 500 and issues a print instruction, the following process is executed.
[0172] The cloud print service 500 receives image data and print settings from the client computer 100. The OS standard driver of the cloud print service 500 generates XPS data based on the received image data and print settings. The generated XPS data is input to a layout filter 311 linked to the printer 200. The layout filter 311 interprets the input XPS data and generates XPS data that reflects the layout set in the print settings. The layout filter 311 then passes the generated XPS data to a renderer filter 312. The renderer filter 312 generates data from the XPS file that can be interpreted by the printer 200. As described above, printing can be performed using the driver package 306 obtained from the printer driver distribution service 300.
[0173] In the fourth embodiment, with the above configuration, some modules of the printer driver registered in the printer driver distribution service are used, and a filter of the V4 driver architecture is used. As a result, in the fourth embodiment, it is possible to send print data that reflects print settings that cannot be set in the generic cloud print service 500 to the printing device.
[0174] <Other embodiments> The present invention can also be realized by executing the following process. That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads and executes the program code. In this case, the computer program and the storage medium on which the computer program is stored constitute the present invention.
Claims
1. A server system capable of generating XPS data using a driver based on image data and print settings received from an information processing device, a first receiving means for receiving information on a printing device for which registration has been requested; an acquisition means for acquiring a filter for generating PDL data to be transmitted to the registered printing device from another server system; a second receiving means for receiving image data to be printed by the printing device from the information processing device; means for causing the obtained filter to generate PDL data based on the received image data; The filter is a filter that further reflects a layout set in a print setting to the XPS data generated by the driver, and generates the PDL data from the print data in which the layout is reflected.
2. 2. The server system according to claim 1, further comprising a transmitting unit for transmitting the PDL data generated by the acquired filter to the printing device.
3. 3. The server system according to claim 2, wherein the received information is a hardware identifier (HWID) of the printing device.
4. A generating unit for generating XPS data based on the image data received from the information processing device, 4. The server system according to claim 2, wherein the filter generates the PDL data based on the XPS data generated by the generating means.
5. 5. The server system according to claim 4, wherein the filter is capable of generating PDL data reflecting setting items that are not supported by the generating means.
6. 6. The server system according to claim 1, wherein the acquisition unit acquires the filter from the other server system by transmitting the received information to the other server system.
7. A method for controlling a server system capable of generating XPS data using a driver based on image data and print settings received from an information processing device, comprising the steps of: a first receiving step of receiving information about a printing device for which registration has been requested; an acquisition step of acquiring, from another server system, a filter for generating PDL data to be transmitted to the registered printing device; a second receiving step of receiving image data to be printed by the printing device from the information processing device; causing the obtained filter to generate PDL data based on the received image data; A method for controlling a server system, characterized in that the filter is a filter that further reflects a layout set in print settings to the XPS data generated by the driver, and generates the PDL data from the print data in which the layout is reflected.
8. 8. The method according to claim 7, further comprising a transmitting step of transmitting the generated image data to the printing device in the step of generating PDL data based on the received image data.
Citation Information
Patent Citations
Information processing device, printing system, control method of information processing device and computer program
JP2013238924A
Image forming system and image forming method
JP2017117286A
Information processing apparatus, information processing system, information processing method, and information processing program
JP2017134752A
Information processing device, control method of information processing device and program
JP2020046741A