Information processing device, control method of the same, application program and recording medium
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-12-19
- Publication Date
- 2026-04-10
AI Technical Summary
【0012】 本発明によれば、汎用プリンタドライバを用いる場合に、プリンタの能力情報から用紙サイズを取得するアプリにおいて、プリンタが対応していない用紙サイズを選択してデータを作成できるという効果がある。
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device, a control method thereof, an application program, and a storage medium. [Background technology]
[0002] In recent years, generic printer drivers using industry standard protocols such as the Internet Printing Protocol (IPP) have been considered. Such generic printer drivers include local printer drivers that directly connect to a printer and cloud printer drivers that send print data to a cloud print service.
[0003] A generic printer driver can communicate with printers from multiple different printer vendors. Therefore, by using a generic printer driver, a user can send print data to a general image forming device or a cloud print service without having to install a vendor-specific printer driver.
[0004] Since such generic printer drivers handle print jobs to be printed on printers from various vendors, the items and functions that can be set as print settings are limited, and the printer capability information that can be obtained from a generic printer driver is also similarly limited.
[0005] Therefore, as described in Patent Document 1, it has been considered to expand the print queue linked to the printer driver by using the identification information of the printer linked to the printer driver. This makes it possible to realize a vendor-specific print setting UI and print job editing function. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] JP 2021-124791 A Summary of the Invention [Problem to be solved by the invention]
[0007] Conventionally, a generic printer driver preinstalled in an operating system (OS) acquires printer capability information for the setting items predefined by the OS for the printer selected by the user for printing. The printer capability information includes paper size, and the generic printer driver acquires the paper sizes that the printer supports.
[0008] Incidentally, some applications for creating documents, drawings, etc. refer to the printer capability information associated with the print queue selected by the application when setting the paper size of the data to be created, and display the paper sizes in the printer capability information as selectable. When using a generic printer driver, such applications have the problem that even if a user wants to create document or drawing data of a size that is not included in the paper sizes in the printer capability information, the desired size is not displayed and cannot be selected.
[0009] An object of the present invention is to solve at least one of the problems of the above-mentioned conventional techniques.
[0010] The object of the present invention is to provide a technology that enables creation of data for paper sizes that are not supported by a printer, even when using an application that uses a generic printer driver to obtain paper size by referencing the capability information of a printer linked to a print queue selected by the application. [Means for solving the problem]
[0011] In order to achieve the above object, an information processing device according to one aspect of the present invention has the following configuration. updating means for updating device capability information previously stored in the operating system with capability information acquired from the printer; a setting means for setting print setting information based on the device capability information updated by the update means; an acquisition means for acquiring intermediate data generated by the operating system based on the print setting information; a generating unit for generating print data based on the intermediate data, The updating means adds output paper size capability to the device capability information based on the paper size capability from the capability information acquired from the printer, and updates the device capability information with predetermined information regarding paper size capability including paper sizes not included in the capability information acquired from the printer. Effect of the Invention
[0012] According to the present invention, when a generic printer driver is used, an application that obtains a paper size from the printer's capability information has the advantage that data can be created by selecting a paper size that is not supported by the printer.
[0013] Other features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings, in which the same reference numerals are used to designate the same or similar components throughout the drawings. [Brief description of the drawings]
[0014] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. [Figure 1] FIG. 1 is a diagram showing the configuration of a printing system that executes cloud printing according to a first embodiment. [Diagram 2] FIG. 2 is a diagram illustrating the hardware configuration of a client terminal, a server, and a cloud-compatible printer included in the printing system according to the first embodiment. [Diagram 3]6 is a diagram for explaining an example of a sequence in which a client terminal installs a print setting extension application for a cloud print-compatible printer from an online support server in the printing system according to the first embodiment. [Figure 4] 11A and 11B are diagrams showing example screens related to printers registered in the client terminal, which are displayed by the OS of the client terminal according to the first embodiment. [Diagram 5] FIG. 4 is a diagram showing an example of printer capability information according to the first embodiment. [Figure 6A] 4 is a diagram showing an example of device capability information in an initial state included with an OS in the first embodiment. FIG. [Figure 6B] 6 is a diagram showing an example of device capability information updated using capability information acquired from a cloud print service in the first embodiment. FIG. [Figure 7] FIG. 4 is a diagram showing an example of an extended setup information file according to the first embodiment. [Figure 8] FIG. 11 is a sequence diagram for explaining a process of making print settings for a cloud print-compatible printer with a print setting extension app according to the first embodiment and transmitting print data. [Figure 9] FIG. 4 is a view showing an example of a print setting screen displayed by a document generation application according to the first embodiment. [Figure 10A] 5 is a diagram showing an example of device capability information edited by a print setting extension application in the first embodiment. [Figure 10B] 5 is a diagram showing an example of device capability information edited by a print setting extension application in the first embodiment. [Figure 11] 11 is a diagram showing an example of a standard print setting screen when a print setting extension application is not linked to a selected print queue in the first embodiment. FIG. [Figure 12] FIG. 13 is a diagram showing an example of a print setting screen when a print setting extension application 312 is linked to a selected print queue in the first embodiment. [Figure 13] 6 is a flowchart for explaining OS processing up to the installation of a print setting extension application on a client terminal in the first embodiment. [Figure 14] 6 is a flowchart for explaining a process in which a client terminal according to the first embodiment performs print setting using a print setting extension application to generate print data. [Figure 15] 15 is a flowchart for explaining processing for updating device capability information in S1404 of FIG. 14 according to the first embodiment. [Figure 16] 15 is a flowchart for describing the print data generation process in S1413 of FIG. 14 according to the first embodiment. [Figure 17] 17 is a diagram for explaining an example of intermediate data generated by the processes in S1603 to S1610 in FIG. 16 in the first embodiment. [Figure 18] FIG. 4 is a view showing an example of a screen displayed on the loud print-compatible printer according to the first embodiment. [Figure 19] 10 is a flowchart for explaining a print data generation process according to the second embodiment. [Figure 20] FIG. 11 is a diagram showing an example of a screen displayed by a print setting expanding application according to the second embodiment. [Figure 21] 11 is a flowchart for explaining a print data generation process according to a third embodiment. [Figure 22] 10 is a flowchart for explaining a print data generation process according to a fourth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] Hereinafter, the embodiments of the present invention will be described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims. Although the embodiments describe a number of features, not all of these features are essential to the invention, and the features may be combined in any manner. Furthermore, in the attached drawings, the same reference numbers are used for the same or similar configurations, and duplicated descriptions are omitted.
[0016] [Embodiment 1] First, a first embodiment of the present invention will be described.
[0017] FIG. 1 is a diagram showing the configuration of a printing system that executes cloud printing according to the first embodiment.
[0018] In this printing system, a client terminal 101, a cloud print server 102, an application management server 103, a cloud print-compatible printer 104, and an online support server 105 are connected via a network 107. Although one client terminal 101 and one cloud print-compatible printer 104 are shown in Fig. 1, there may be multiple client terminals 101 and multiple cloud print-compatible printers 104.
[0019] Furthermore, the cloud print server 102, the application management server 103, and the online support server 105 may each be a server system configured with a plurality of information processing devices. By configuring each server as a server system configured with a plurality of information processing devices in this way, the load can be distributed to the plurality of information processing devices.
[0020] The cloud print server 102, application management server 103, and online support server 105 may be virtually configured inside one physical information processing device. Although the network 107 is assumed to be a WAN such as the Internet for connection to cloud services, it may be a closed environment such as an in-house LAN.
[0021] The client terminal 101 is an information processing device such as a PC, tablet, or smartphone, and is an information terminal that is directly operated by a user. Any application software can be executed on the client terminal 101. The client terminal 101 includes an OS (operating system) 313 as basic software, a cloud printer driver 311, a local printer driver 314, a print setting extension app (print setting extension application program) 312 (described later), and a document generation app 315.
[0022] The cloud print-compatible printer 104 is a device that actually prints on a recording medium such as paper, and is an image forming apparatus that converts print data received via a network 107 into image data and prints the image data. This cloud print-compatible printer 104 can receive print data from the client terminal 101 via the cloud print server 102. It is also possible to receive print data directly from the client terminal 101 without going through the cloud print server 102. The cloud print-compatible printer 104 receives print data generated by a cloud printer driver 311 of the client terminal 101 via the cloud print server 102. The cloud print-compatible printer 104 also receives print data generated by a local printer driver 314 of the client terminal 101 without going through the cloud print server 102.
[0023] The cloud print server 102 receives a print instruction and print data from an external device. The cloud print server 102 then transmits the received print data to a predetermined cloud print-compatible printer 104.
[0024] The application management server 103 holds and manages various applications. When the application management server 103 receives application identification information and a download request from the client terminal 101, the application management server 103 transmits to the client terminal 101 an application identified based on the received identification information.
[0025] The online support server 105 is a server device that provides an online support service 351. The online support service 351 is a server device that provides the client terminal 101 with an extended setup information file in which information for extending the functions of the client terminal 101 is described.
[0026] Next, the hardware configurations of the client terminal 101, the servers 102, 103, and 105, and the cloud-compatible printer 104 included in the printing system according to the first embodiment will be described with reference to FIG.
[0027] FIG. 2A is a block diagram illustrating the hardware configuration of the client terminal 101 according to the first embodiment.
[0028] The client terminal 101 includes a display unit 216, an operation unit 217, a storage unit 214, a control unit 211, and a network communication unit 215. The storage unit 214 corresponds to a non-volatile storage device such as a hard disk or SSD, and is capable of storing and rewriting digital data. The control unit 211 includes a CPU 212 and a memory 213, and controls the overall operation of the client terminal 101. The CPU 212 loads a program stored in the storage unit 214 into the memory 213 and executes it. The memory 213 is the main storage memory of the CPU 212 and is used as a work area and a temporary storage area for loading various programs. The network communication unit 215 communicates with an external network 107, and inputs and outputs digital data to and from an external server, client terminal, etc. via the network 107. The display unit 216 displays visual information to the user, for example, on a liquid crystal display. The operation unit 217 accepts input from the user via a keyboard, a pointing device, or the like. A device having the functions of both the display unit 216 and the operation unit 217, such as a touch panel, may be used.
[0029] FIG. 2B is a block diagram illustrating the hardware configuration of the cloud print server 102 according to the first embodiment.
[0030] The cloud print server 102 includes a storage unit 224, a control unit 221, and a network communication unit 225. The control unit 221 includes a CPU 222 and a memory 223. The description of the storage unit 224, the control unit 221, and the network communication unit 225 is omitted because they are basically the same as the corresponding parts of the client terminal 101. Note that the cloud print server 102 will be described as being configured with one information processing device having the hardware configuration shown in Fig. 2(b), but the cloud print server 102 may be configured with multiple information processing devices shown in Fig. 2(b).
[0031] FIG. 2C is a block diagram illustrating the hardware configuration of the application management server 103 according to the first embodiment.
[0032] The application management server 103 includes a display unit 236, an operation unit 237, a storage unit 234, a control unit 231, and a network communication unit 235. The control unit 231 includes a CPU 232 and a memory 233. Descriptions of the display unit 236, the operation unit 237, the storage unit 234, the control unit 231, and the network communication unit 235 are omitted because they are basically the same as the corresponding parts of the client terminal 101. Note that the application management server 103 will be described as being configured from one information processing device having the hardware configuration shown in Fig. 2(c), but the application management server 103 may be configured from multiple information processing devices.
[0033] FIG. 2D is a block diagram illustrating the hardware configuration of the cloud print-compatible printer 104 according to the first embodiment.
[0034] The cloud print-compatible printer 104 includes a display unit 246, an operation unit 247, a storage unit 244, a control unit 241, a network communication unit 245, and a printing unit 248. The display unit 246 displays information to the user using a touch panel or LEDs provided on the cloud print-compatible printer 104. The operation unit 247 accepts input from the user and may include hard keys such as a numeric keypad in addition to a touch panel. The control unit 241 includes a CPU 242 and a memory 243. The storage unit 244 and the control unit 241 are basically the same as the corresponding parts of the client terminal 101, so a description thereof will be omitted. The network communication unit 245 communicates with the external network 107. The network communication unit 245 mainly plays a role in receiving print data and transmitting information about the status of the cloud print-compatible printer 104, such as errors, to an external server or the like.
[0035] The printing unit 248 performs printing processing by carrying out a series of operations, such as feeding, printing, and discharging, on paper (sheets) prepared in a cassette or tray. The printing method used here is not limited to electrophotographic or inkjet printing. Finishing devices, such as a duplex unit, stapler, and puncher, used when discharging paper, are also included in the printing unit 248.
[0036] In the first embodiment, a single-function printer that performs only a printing function is described as an example of the cloud print-compatible printer 104, but a multifunction printer (multifunction device) that also has a scanner function and a FAX function may also be used.
[0037] 2(e) is a block diagram for explaining the hardware configuration of the online support server 105 according to embodiment 1. In embodiment 1, the online support server 105 is explained as being configured with one information processing device, but may be configured with multiple information processing devices.
[0038] The online support server 105 has a display unit 256, an operation unit 257, a storage unit 254, a control unit 251, and a network communication unit 255. The functions of the display unit 256 and the operation unit 257 are similar to those of the display unit 216 and the operation unit 217 of the client terminal 101, and therefore a description thereof will be omitted. The storage unit 254 is a memory device such as an HDD or SSD. The storage unit 254 stores an extended setup information file, which is a file describing information for extending functions provided by the client terminal 101.
[0039] The control unit 251 includes a CPU 252 and a memory 253. The CPU 252 controls the entire online support server 105. The memory 253 is used for processing executed by the CPU 252. The network communication unit 255 is an interface for the online support server 105 to communicate with the client terminal 101. When the online support server 105 receives a request to acquire a file stored in the storage unit 254 from the client terminal 101 via the network communication unit 255, it transmits the corresponding file to the client terminal 101.
[0040] Next, an example of a user procedure and a sequence between each piece of software and the print service in the first embodiment will be described with reference to FIG.
[0041] FIG. 3 is a diagram illustrating an example of a sequence in which the client terminal 101 installs the print setting extension application 312 for the cloud print-compatible printer 104 from the online support server 105 in the printing system according to the first embodiment.
[0042] First, the cloud print-compatible printer 104 accepts a printer registration operation from a user for registering the cloud print-compatible printer 104 in the cloud print service 321. As a result, in S301, the cloud print-compatible printer 104 transmits a printer registration request together with device identification information of the printer 104 to the cloud print service 321. Here, the device identification information transmitted to the cloud print service 321 is, for example, a HWID (hardware ID) assigned to each printer model. Note that the device identification information may be any information as long as it can identify the printer model.
[0043] When the cloud print service 321 receives this registration request, it transmits the URL of the cloud print service 321 for printer registration to the cloud print-compatible printer 104. Then, when the user accesses the URL from the cloud print-compatible printer 104 or an information processing device, an input screen for inputting a user ID and password is displayed on the display unit of the terminal that accessed the URL. The user then inputs a user ID and password for using the cloud print service 321 and logs in to the cloud print service 321. When the user's login is successful in this way, the cloud print service 321 transmits a request to the cloud print-compatible printer 104 to obtain information required for printer registration. In response to this request, the cloud print-compatible printer 104 transmits printer information to the cloud print service 321.
[0044] Next, the cloud print service 321 that has received the printer registration request registers information about the cloud print-compatible printer 104 and generates a print queue for the cloud print-compatible printer 104. At this time, the cloud print service 321 acquires capability information about the cloud print-compatible printer 104 and links the capability information to the generated print queue. Here, capability information is information that indicates functions installed in the printer 104, and refers to information necessary for a user to set as print settings when printing, such as information on whether double-sided printing is possible, information on whether color printing is possible, and information on whether stapling is possible.
[0045] FIG. 5 is a diagram showing an example of printer capability information according to the first embodiment.
[0046] The capability information is composed of item names and attribute values. The item names correspond to the setting items of the print settings. The attribute values correspond to the setting values, options, and value ranges that can be set for each setting item. The cloud print-compatible printer 104 stores item names and attribute values that are defined by the printer vendor independently, in addition to the item names and attribute values that are defined by the IPP as industry standard specifications. Examples of item names that are defined by the IPP as industry standard specifications include "paper size," "paper type," and "color mode."
[0047] On the other hand, among the item names shown in FIG. 5, "handle mixed paper printing in a single job" 501 according to the first embodiment and the associated attribute values are item names and attribute values that are uniquely defined by the printer vendor. In the first embodiment, mixed paper printing refers to printing a document in which a different paper size is specified for each page by the document generation application 315, exactly as specified. "Handle mixed paper printing in a single job" 501 is an item for setting whether or not to handle mixed paper printing processing in a single job. In the first embodiment, if the cloud print-compatible printer 104 has this item, the printer is capable of interpreting the paper size of each page from the print data and printing in a single job according to the setting. Also, if the cloud print-compatible printer 104 does not have this ability or this setting is off at the time of printing, the mixed paper printing processing is divided into multiple jobs and executed. Details of this processing will be described later.
[0048] In addition to “Handle mixed paper printing in a single job” 501, “Save job in printer” 502, “Abbreviate job name” 503, “Stapleless binding” in the “Staple” item, and the associated attribute values are item names and attribute values that are uniquely defined by printer vendors.
[0049] In the first embodiment, the cloud print-compatible printer 104 transmits capability information to the cloud print service 321 in accordance with IPP as a communication protocol. The cloud print-compatible printer 104 registers capability information using a command prepared for the cloud print-compatible printer 104 to register capability information in the cloud print service 321. The cloud print-compatible printer 104 notifies the cloud print service 321 of the item names shown in FIG. 5, and the attribute values and default values corresponding to each item name. The capability information notified here is not related to whether each item and attribute value is defined in IPP or not. For example, the item names and attribute values of "handle mixed paper printing as a single job", "save job in printer", "shorten job name", and "stapleless binding" shown in FIG. 5 are also notified to the cloud print service 321. In addition, "saddle fold", which is one of the attribute values of the item "folding setting" and is a printer vendor-specific attribute value, is also registered in the cloud print service 321 as one of the attribute values of "folding setting".
[0050] Next, a description will be given of installation of the print setting extension application 312 that is performed when the user performs a setup operation on the client terminal 101 to print with the cloud print-compatible printer 104. When registering the cloud print-compatible printer 104 in the client terminal 101, a standard print function that is one of the functions of the OS 313 of the client terminal 101 is used.
[0051] In step S302, the OS 313 of the client terminal 101 accepts a printer addition operation, which is a user's setup operation for the cloud print-compatible printer 104. Next, the setup operation for the cloud print-compatible printer 104 will be described.
[0052] FIG. 4 is a diagram showing an example of a screen related to printers registered in the client terminal 101, which is displayed by the OS 313 of the client terminal 101 according to the first embodiment.
[0053] When the user selects an object 401 on this screen, a printer search instruction is input to the OS 313. Upon receiving this printer search instruction, the OS 313 determines whether or not it holds a token for the cloud print service 321. If the OS 313 does not hold a token, the OS 313 displays a screen for inputting user information (login name, password) (not shown). Then, in S303, the OS 313 of the client terminal 101 transmits the user information input via that screen to the cloud print service 321, and requests user authentication and an access token.
[0054] As a result, in S304, the cloud print service 321 performs authentication processing using the user information received from the client terminal 101. When the cloud print service 321 completes the authentication processing, it notifies the client terminal 101 of the result of the authentication processing. If the user authentication is successful, in S305, the OS 313 of the client terminal 101 acquires an access token from the cloud print service 321. On the other hand, if the user authentication fails in S304, in S306, the cloud print service 321 notifies the OS 313 of the client terminal 101 of an authentication error. As a result, the OS 313 of the client terminal 101 stops processing in S307 based on the received authentication error information. If the access token cannot be acquired in this way, the OS 313 of the client terminal 101 ends the processing described in FIG. 3.
[0055] If the OS 313 holds an access token or if a token was acquired in S305, in S308, the OS 313 of the client terminal 101 searches for printers registered in the cloud print service 321 and printers connected to the network 107. At this time, the OS 313 of the client terminal 101 searches for printers by sending a request to obtain information about printers registered in the cloud print service 321. Specifically, the OS 313 of the client terminal 101 sends a request to obtain information about printers attached to the access token to the cloud print service 321.
[0056] As a result, in S309, the cloud print service 321 transmits information about the printer that the user identified by the access token attached to the acquisition request is permitted to use to the client terminal 101. Here, the printer information transmitted to the client terminal 101 includes the printer name given to the printer registered in the cloud print service 321 and the HWID of the printer.
[0057] In this way, the OS 313 of the client terminal 101 acquires the printer list and the device identification information of each printer sent by the cloud print service 321. In parallel with the processes of S308 and S309, the OS 313 of the client terminal 101 searches for printers connected to the same network as the client terminal 101. This is a device search using mDNS, Bonjour, or the like.
[0058] The OS 313 displays a printer list on the client terminal 101 based on the printer information acquired from the cloud print service 321 and the printer information detected by searching the network 107. In an area 402 in FIG. 4, the printer information received from the cloud print service 321 is displayed in a list. Of the information displayed in the area 402, "Cloud Printer 001 / 002 / 003" is the printer information registered in the cloud print service 321. On the other hand, "Printer XX" with an icon 404 indicates a printer detected by the client terminal 101 by searching the network 107. In this manner, the printer information acquired from the cloud print service 321 and the printer information detected by searching the network 107 are displayed in a list. In this list, the printer information received from the cloud print service 321 is displayed with an icon 403 added, and the printer information detected by searching the network 107 is displayed with an icon 404 added. In this way, it is possible to distinguish between and display information about a printer received from the cloud print service 321 and information about a printer detected by searching the network 107. Note that the client terminal 101 may be configured to display only information about printers registered in the cloud print service 321.
[0059] Next, the user selects the printer information corresponding to the printer that the user wishes to register in the client terminal 101 from the printer information displayed in the area 402 .
[0060] As a result, in S310, the OS313 of the client terminal 101 inquires of the cloud print service 321 about the printer capability information corresponding to the information of the selected printer. Here, which setting item the OS313 of the client terminal 101 inquires about the capability information is determined by the specifications of the OS313 and is set in the OS313. The OS313 of the client terminal 101 inquires about the capability information by specifying a setting item stored in advance. The setting items stored in advance in the OS313 are setting items defined as standard specifications by the IPP, such as "paper size", "paper type", and "color mode", for example.
[0061] As a result, in step S311, the cloud print service 321 responds with the capability information of the cloud print-compatible printer 104 to the OS 313 of the client terminal 101.
[0062] In the first embodiment, the information registered in the cloud print service 321 in response to the registration request in S301 is transmitted to the client terminal 101 in S311. However, the capability information registered in the cloud print service 321 may be transmitted to the client terminal 101 at a timing other than the above. For example, the capability information registered in the cloud print service 321 may be transmitted to the client terminal 101 in response to a change in the capability information of the cloud print-compatible printer 104. In addition, when a user instructs the update of the capability information on a user interface provided by the cloud print service 321, the capability information updated in accordance with the instruction may be transmitted to the client terminal 101. In addition, the cloud print service 321 may acquire the capability information from the cloud print-compatible printer 104 at the timing of S310, and notify the client terminal 101 of the acquired capability information.
[0063] Thus, in S311, the cloud print service 321 responds with attribute values and default values corresponding to the setting items specified by the client terminal 101. Here, the attribute values responded to are all attribute values registered in the cloud print service 321, regardless of whether they are attribute values defined as standard. The default values are values that are initially set when the client terminal 101 displays the print setting screen. Note that if the cloud print service 321 does not store a response to an attribute inquired by the OS 313 of the client terminal 101, the cloud print service 321 does not respond to the inquiry from the OS 313. In this way, the OS 313 starts installation of the cloud printer driver 311 based on the device identification information and printer name of the printer selected by the user.
[0064] In S312, the OS 313 generates a print queue for the cloud printer driver 311 having basic device capability information included in the OS 313. The device capability information refers to definition information required to generate print setting capability information of the printer driver, for example, information written in XML such as PrintDeviceCapabilities.
[0065] FIG. 6A is a diagram showing an example of device capability information in the initial state included in the OS 313. As shown in FIG.
[0066] For example, as indicated by reference numeral 601, "Feature" indicates that "psk:PageMediaSize" indicating paper size is a setting item. "Option" indicates an option corresponding to "psk:PageMediaSize". In the initial values of the device capability information, as shown in FIG. 6A, there are only two options for paper size: "A4" (ISOA4) and "LETTER" (NorthAmericaLetter). This information is linked to the print queue when the print queue is generated and stored, and is managed by the OS 313. Note that the initial device capability information is fixed device capability information regardless of the information of the connected printer.
[0067] Thereafter, in step S312, the OS 313 updates the device capability information constituting the cloud printer driver 311 by using the capability information acquired from the cloud print service 321. FIG. 6B is a diagram showing an example of device capability information updated by using the capability information acquired from the cloud print service 321.
[0068] For example, as shown by reference numeral 602, "Option" other than "A4" and "LETTER" is added to "psk:PageMediaSize" indicating the paper size as a paper size printable by the cloud print-compatible printer 104. Specifically, "A3" (ISOA3), "A5 (ISOA5)", "B4" (JISB4), etc. are included.
[0069] In this way, the client terminal 101 first registers the cloud printer driver 311 and the device capability information included in the OS 313 in association with each other in the print queue. Then, the device capability information linked to the print queue is updated with the capability information acquired from the cloud print service 321. At this time, the OS 313 updates the device capability information using only attribute values defined in industry standard specifications from among the capability information acquired from the cloud print service 321. Therefore, for example, even if a vendor-specific attribute value is acquired as a paper type in acquiring the capability information, the vendor-specific attribute value is not added to the device capability information. In this way, it becomes possible to set print setting values defined in industry standard specifications that cannot be set in the device capability information included in the OS 313.
[0070] This completes the installation of the cloud printer driver 311. By performing the processes up to this point, it becomes possible to send print data from the client terminal 101 to the print queue for the cloud print-compatible printer 104 generated in the cloud print service 321.
[0071] Next, the OS 313 starts the process of installing an application that is linked to the registered printer and that extends the cloud print driver.
[0072] First, the OS 313 performs a process of adding additional identification information to the device identification information. This process is necessary when acquiring an extended setup information file 700 (FIG. 7) described later from the online support server 105, and this process may generate a character string different from normal device identification information. In the case of the first embodiment, in order to distinguish the application from applications of other devices, the OS 313 adds additional identification information "PrinterApp_" to the device identification information, which indicates that the application is compatible with the printer. Note that "PrinterApp_" is only an example, and other character strings, numbers, or symbols may be used. As a result of the above process, for example, if the device identification information of the cloud print-compatible printer 104 is "device001", the device identification information after the additional identification information is added becomes "PrinterApp_device001".
[0073] Next, in step S313, the OS 313 transmits a search request for the extended setup information file 700 including the target device identification information with additional information to the online support service 351. As a result, the online support service 351 is notified of “PrinterApp_device001” to which the additional identification information has been added.
[0074] The online support service 351 stores an extended setup information file 700 shown in FIG.
[0075] FIG. 7 is a diagram showing an example of an extended setup information file 700 according to the first embodiment.
[0076] This extended setup information file is a file that is created by the vendor of the cloud print-compatible printer 104 and registered in the online support service 351.
[0077] The extended setup information file 700 describes an application identifier for identifying a print setting extension application used to set print data sent to the cloud print-compatible printer 104. In the extended setup information file 700 shown in Fig. 7, an item "PackageFamilyName" 701 is identification information of the print setting extension application. Meanwhile, "PrinterHardwareId" 702 describes a character string in which additional identification information has been added to the identification information of the cloud print-compatible printer 104.
[0078] In addition to the extended setup information file in which the identification information of the print setting extension application is described, the online support service 351 stores extended setup information in which the identification information of the printer driver is described. In the extended setup information file in which the printer driver identifier is described, the printer driver identifier is described in "PackageFamilyName". Also, in "PrinterHardwareId" of the extended setup information file, device identification information without additional identification information is described.
[0079] In this way, both the extended setup information file describing the printer driver identifier and the extended setup information file describing the print setting application identifier are stored in the online support service 351. Therefore, the OS 313 adds additional identification information to the device identification information in order to appropriately acquire the necessary extended setup information file.
[0080] The online support service 351 that receives the search request identifies an extended setup information file in which the "PackageFamilyName" in the file matches the device identification information with the additional identification information specified in the request.
[0081] If the search result shows that the online support service 351 stores the extended setup information file 700 including the target device identification information, the extended setup information file 700 is returned to the OS 313 in S314. At this time, the contents of the extended setup information file 700 are written to the registry of the OS 313. Next, in S315, the OS 313 links the extended setup information written in the extended setup information file 700 acquired from the online support service 351 with the print queue generated in S312 and installs it. Next, in S316, the OS 313 extracts an application ID from the installed extended setup information. This application ID is an identifier specified by "PackageFamilyName" in the extended setup information file 700. The above is the process when an extended setup file corresponding to the cloud print-compatible printer 104 is stored in the online support service 351.
[0082] On the other hand, as a result of this search, there are cases where the extended setup information file 700 including the device identification information targeted by the online support service 351 is not detected. In this case, the OS 313 completes the installation of the cloud print driver and cancels the application installation process in S317. The OS 313 executes the cancellation process in S317 when it is unable to receive the extended setup file within a predetermined time from the search request in S313 or when it receives an error notification from the online support service 351.
[0083] Next, the process from S318 onwards will be described in the case where the OS 313 is able to acquire the extended setup file and extract the application ID in S316.
[0084] In step S318, the OS 313 requests the application management service 331 to search for an application that matches the extracted application ID. The application management service 331 stores the application running on the client terminal 101 in association with the application ID that is an identifier of the application. The application and the application ID are registered in the application management service 331 by the vendor that provides the cloud print-compatible printer 104.
[0085] If the application management service 331 holds a print setting extension application that matches the requested application ID, in S319, the application management service 331 returns the print setting extension application 312 to the client terminal 101. Here, the returned print setting extension application 312 is an application to which the same ID as the transmitted application ID is assigned. As a result, in S320, the OS 313 installs the acquired print setting extension application 312 in association with a print queue on the client side. At this time, the OS 313 stores the application ID in the registry as information on the print queue. In addition, the print setting extension application 312 sets the OS 313 so that the print queue associated with the application notifies the OS 313 of an event at the timing set on the print setting screen. The print setting extension application 312 installed in this way is started after the power of the client terminal 101 is turned on and the OS 313 is started, and after starting, it operates as a background task.
[0086] On the other hand, if the application management service 331 does not have a print setting extension application that matches the requested application ID, the OS 313 stops the application installation process in step S321. In this case, the generated print queue and the cloud printer driver 311 are linked and installed, and the print setting extension application 312 is not linked to the print queue and the process ends.
[0087] In the above description, the search for the extended setup file was performed by adding a specific character string to the device identification information of the cloud print-compatible printer 104. However, if the file for installing the printer driver can be distinguished, the search may be performed without adding a specific character string.
[0088] Next, an example of a user procedure and a sequence between each piece of software and the print service according to the first embodiment will be described with reference to FIG.
[0089] FIG. 8 is a diagram showing an example of a sequence for explaining a process of making print settings for the cloud print-compatible printer 104 in the print setting extending application 312 according to the first embodiment and transmitting print data.
[0090] The document generation application 315 is an application such as a document data creation application, a drawing data creation application, and a photo or image data display application. The document generation application 315 displays a print setting screen (FIG. 9) for selecting a print queue as an initial print setting screen. In the first embodiment, the document generation application 315 displays the initial print setting screen, but the OS 313 may display a similar screen.
[0091] FIG. 9 is a diagram showing an example of a print setting screen displayed by the document generation application 315 according to the first embodiment.
[0092] This initial print setting screen displays an object 901 for selecting a print queue, an object group 902 for making various print settings including an object 906 for setting a paper size, and a print preview image 903. Each object included in the object group 902 will be described later.
[0093] First, in step S801, the OS 313 selects a print queue associated with the printer set as the default printer. In the first embodiment, it is assumed that the cloud print-compatible printer 104 is selected as the default printer. Note that the processing from step S801 onward is also executed when the user operates the object 901 to change the printer to be used.
[0094] Next, in S802, the OS 313 inquires of the queue on the cloud of the cloud print service 321 corresponding to the cloud print-compatible printer 104 about the capability information of the cloud print-compatible printer 104. The specifications of the OS 313 predetermine which setting item the capability information is inquired about. Therefore, the capability information acquired at this timing is the same as that acquired in S311 in FIG. 3 described above. This inquiry is made to the cloud print-compatible printer 104 using a standard protocol command defined by IPP, such as Get-printer-Attributes. When Get-printer-Attributes is used, the capability information determined by the OS 313 is inquired in list format.
[0095] As a result, in S803, the cloud print service 321 responds to the OS 313 with the capability information of the cloud print-compatible printer 104 from the list of capability information sent in Get-printer-Attributes. For example, assume that a paper size attribute is specified in Get-printer-Attributes (IPP). If the cloud print service 321 has a paper size attribute, it responds with a value associated with that attribute (A4, B5, Letter, etc.). If the attribute specified in Get-printer-Attributes does not exist in the queue of the cloud print-compatible printer 104 of the cloud print service 321, the cloud print service 321 does not respond with the associated value. The capability information acquired in S803 is capability information that is inquired about regardless of the type or capability of the printer to which the OS 313 is connected.
[0096] Next, in S804, the OS 313 updates the device capability information using the capability information acquired from the cloud print service 321. At this time, the OS 313 adds the capability information acquired in S803 of Fig. 8 to the device capability information generated in S312 of Fig. 3. If there is an update to the device capability information, performing S803 makes it possible to update the device capability information managed by the client terminal 101. Note that when updating the device capability information in S804, only attribute values defined by industry standard specifications are updated in the device capability information.
[0097] Next, the process proceeds to step S805, and the OS 313 notifies the print setting extension application 312 of an API (Application Programming Interface) used to edit the event and device capability information. The timing of this event notification is registered when the print setting extension application 312 is installed in the OS 313 of the client terminal 101.
[0098] When the print setting extension application 312 receives this event, in S806, the print setting extension application 312 requests the cloud print service 321 to acquire capability information. The capability information acquired here is capability information for writing setting items and attribute values that are uniquely defined by the printer vendor to the device capability information. At this time, when the print setting extension application 312 receives the event from the OS 313 in S805, the print setting extension application 312 inquires about capability information of the cloud print-compatible printer 104 via the cloud print service 321 in S806. At this time, the print setting extension application 312 inquires about the cloud print service 321 about the capability information of the setting items unique to the printer vendor and the setting items including the attribute values unique to the printer vendor. This inquiry is performed using Get-printer-Attributes, as in S802 of FIG. 8, and the capability information is acquired by specifying the item name of the setting item to be inquired as the item name. Note that in the first embodiment, it is described that in S806, capability information is acquired about the setting items uniquely defined by the printer vendor and the setting items including the attribute values uniquely defined by the printer vendor. However, the OS 313 may also acquire capability information about setting items that have already been acquired through capability information acquisition.
[0099] When the cloud print service 321 receives an inquiry about unique capability information from the print setting extending application 312, in S807 the cloud print service 321 responds with capability information of the cloud print-compatible printer 104 to the print setting extending application 312. The response method here is the same as S803 in FIG. 8 described above. In the first embodiment, in S807 the cloud print service 321 responds with capability information of the cloud print-compatible printer 104 stored in the cloud print service 321. Note that, upon receiving the request in S806, the cloud print service 321 may reacquire capability information from the cloud print-compatible printer 104 and respond to the client terminal 101. In the first embodiment, in S806 and S807, the print setting extending application 312 can acquire capability information of "handle mixed paper printing in a single job", which is a setting item unique to the printer vendor.
[0100] Next, in step S808, the print setting extension application 312 acquires the capability information of the cloud print-compatible printer 104 and edits the device capability information managed by the OS 313 via the configuration information object. The configuration information object is a collection of data required to edit the device capability information. The print setting extension application 312 cannot directly edit the device capability information held by the OS 313. Therefore, the print setting extension application 312 uses this configuration information object to change the device capability information held by the OS 313.
[0101] For example, when capability information such as "handle mixed paper printing in a single job" is acquired in S807 of FIG. 8, the device capability information is converted into device capability information and added to the configuration information object to edit the device capability information. At this time, the print setting extension application 312 rewrites the content of "psk:PageMediaSize" indicating the paper size of the device capability information to information including a paper size that is not supported by the cloud print-compatible printer 104. This rewriting is to information predetermined by the print setting extension application 312, regardless of the information acquired in S807. Furthermore, the print setting extension application 312 adds "ns0000:PageOutputMediaSize" as a printer vendor-specific setting item. Then, as the attribute value, the print setting extension application 312 adds the paper size included in "psk:PageMediaSize" acquired in S807. By performing the processes up to S808 in this manner, the device capability information stores the printer vendor-specific setting items and attribute values in addition to the capability information related to the standard setting items acquired in response to the inquiry from the OS 313.
[0102] An example of the device capability information thus edited in S808 is shown in FIG. 10A and FIG. 10B.
[0103] 10A and 10B, reference number 1001 indicates a setting item of "psk:PageMediaSize". In addition to the paper sizes in FIG. 6B, A2, A1, A0, B5, and B3 have been added as setting values. Reference number 1002 indicates a setting item of "ns0000:PageOutputMediaSize". The setting value of this item is the paper size supported by the cloud print-compatible printer 104, and A5, A4, A3, B5, B4, and Letter are listed. In addition, a setting value of "same as original size" ("ns0000:MatchPageMediaSize") for performing mixed paper printing is also added. Reference number 1003 ("ns0000:SingleJobMixedPageMediaSizePrint") indicates a setting item of "handle mixed paper printing in a single job". This setting item is a setting item for controlling the handling of mixed paper printing, which is printing when different paper sizes are specified for different pages. In the example of FIG. 10B, there are two types of setting values, corresponding to on ("ns0000:Enable") and off ("ns0000:None"). When on can be set as the setting value in this item, the cloud print-compatible printer 104 can interpret the paper size setting on a page-by-page basis and print while switching the paper size. When this item does not exist or is set to off, the print setting extension application 312 generates print data by dividing the job by pages with changing paper sizes.
[0104] Next, in S809, the print setting extension application 312 passes the edited device capability information to the OS 313. As a result, the OS 313 stores the device capability information acquired from the print setting extension application 312 in association with the print queue. When the OS 313 updates the device capability information in this way, in S810, an object that triggers displaying the UI of the print setting extension application 312 is enabled. An example of the object that triggers displaying the UI of the print setting extension application 312 is the object (other settings) 904 in FIG. 9. Until the processing of S810 is completed, the object 904 is grayed out, and the print setting screen of the print setting extension application 312 is not displayed even if the user clicks it. When the processing of S810 is completed, the grayed-out state of the object 904 is released, and the user can select the object 904. In addition, in the object 906 for setting the paper size in FIG. 9, the paper size added to "psk:PageMediaSize" by the print setting extension application 312 in S808 can be selected.
[0105] Note that, even when the document generation application 315 sets the paper size of the document other than when printing, if the print queue selected by the document generation application 315 is linked to the print setting extending application 312, the processes of S801 to S809 are performed. At this time, the print queue to be selected may be a selection UI displayed by the document generation application 315 for the user to select, or may be the print queue that has already been selected on the screen of FIG. 9. Alternatively, if no selection has been made on the screen of FIG. 9, the print queue of the default printer set by the OS 313 may be used. As a result, even when the document generation application 315 sets the paper size of the document, the paper size added to "psk:PageMediaSize" by the print setting extending application 312 in S808 can be selected.
[0106] When the user selects the object 904 in this way, the print setting extension application 312 is started, and in step S811, a print setting screen such as that shown in Fig. 12 is displayed. This print setting screen does not depend on the type of document generation application 315 being used.
[0107] If the print setting extension application 312 is not linked to the selected print queue, a standard print setting screen preinstalled in the OS 313 is displayed, as shown in FIG. 11A, for example.
[0108] FIG. 11 is a diagram showing an example of the standard print setting screen when the print setting extending application 312 is not linked to the selected print queue.
[0109] In this standard print screen, pressing a detailed setting button 1101 displays a detailed print screen in FIG. 11(b), which displays a detailed print screen for setting setting items that cannot be displayed in FIG. 11(a). The detailed print screen shown in FIG. 11(b) can be scrolled by operating a scroll bar, and print settings can be made for multiple setting items supported by the OS 313, as shown in FIG. 11(c) and (d). By selecting an OK button 1102 in FIG. 11(b), the set print settings can be saved and the screen can be returned to FIG. 11(a). An apply button 1103 in FIG. 11(a) is a button for saving the print settings set on this screen, and a cancel button 1104 is a button for returning to the screen in FIG. 9 without saving the print settings. When an OK button 1105 in FIG. 11(a) is selected, the print settings are saved and the screen returns to FIG. 9. In FIG. 11(a) to (d), it is not possible to set print setting items and attribute values that are uniquely defined by the printer vendor. In addition, since the print setting extension application 312 is not linked, the paper size added to "psk:PageMediaSize" by the print setting extension application 312 cannot be set.
[0110] Let us return to the print setting extension application 312.
[0111] FIG. 12 is a diagram showing an example of the print setting screen when the print setting extending application 312 is linked to the selected print queue.
[0112] The print setting extension application 312 receives print setting information generated by the OS 313 based on print setting capability information generated from device capability information, and displays an extended print setting screen, for example, as shown in Fig. 12(a). This extended print setting screen can be scrolled by operating a scroll bar as shown in Figs. 12(a) to (d), and settings for various print setting items can be set.
[0113] For example, the "original size" of the setting item 1201 in FIG. 12 is the print setting information corresponding to "psk:PageMediaSize" in FIG. 10A. In the following description, the original size refers to the paper size specified by "psk:PageMediaSize" in the print setting information. Also, "A4", which is an option for the original size, is the print setting information corresponding to "psk:ISOA4" in FIG. 10A. Similarly, the "output paper size" of the setting item 1202 is the print setting information corresponding to "ns0000:PageOutputMediaSize" in FIG. 10B. In the following description, the output paper size refers to the paper size specified by "ns0000:PageOutputMediaSize" in the print setting information, and the paper size to be output is determined according to this setting. Also, "same as original size", which is an option for the output paper size, is the print setting information corresponding to "ns0000:MatchPageMediaSize" in FIG. 10B.
[0114] The paper size set in the document generation application 315 is specified as the manuscript size, but if the document generation application 315 does not specify a size, the print setting extension application 312 specifies a default size (e.g., A4). In the first embodiment, if the paper size differs depending on the page, the paper size of the first page is selected and displayed as the manuscript size. When the manuscript size is changed in the setting item 1201 and the setting is saved by pressing the object (OK) 1204 described later, the setting value of "psk:PageMediaSize" in the print setting information is changed. However, if the document generation application 315 specifies its own manuscript size as the print setting information again when issuing a print instruction in S813, the change in the setting item 1201 is not reflected in the print.
[0115] The output paper size is an item that specifies the size of the paper to be actually printed. The output paper size is a setting item unique to the printer vendor, and is not specified by the document generation application 315. Therefore, in the initial state, "same as manuscript size" is displayed as an option. When "same as manuscript size" is specified as the output paper size, the print setting extending application 312 generates print data according to the manuscript size of each page specified by the document generation application 315. For example, when the manuscript size of all pages is A4, print data is generated to print all pages on A4 paper. When the manuscript size of the first page is A4 and the manuscript size of the second page is A3, print data is generated to print the first page on A4 paper and the second page on A3 paper. Also, when a specific paper size other than "same as manuscript size", for example A5, is specified as the output paper size, the print setting extending application 312 generates print data to print all pages on the specified A5 paper. At this time, the print data is generated by enlarging or reducing as necessary. When the output paper size is changed in the setting item 1202 and the setting is saved by pressing an object (OK) 1204 described later, the setting value of "ns0000:PageOutputMediaSize" in the print setting information is changed. Since the output paper size setting is a setting item unique to the printer vendor, the value set in the print setting information by this is reflected in the print without being changed by the document generation application 315 when printing is executed, unlike the document size.
[0116] The setting item 1203 "Handle mixed paper printing in a single job" in Fig. 12(d) is print setting information corresponding to "ns0000:SingleJobMixedPageMediaSizePrint" in Fig. 10B. Also, "On" displayed as an option is print setting information corresponding to "ns0000:Enable" in Fig. 10B. The behavior of this setting will be explained in the print data generation flow of the print setting extension application 312 in Fig. 16.
[0117] In this way, the print setting extension application 312 can convert device capability information including printer vendor-specific setting items into setting values and display the extended print setting screen. The print setting extension application 312 can also display printer vendor-specific print setting items on the extended print setting screen according to its own implementation. Therefore, on the extended print setting screen shown in Fig. 12, it is possible to set setting items and setting values that cannot be set on the screen shown in Fig. 11 provided by the OS 313.
[0118] The user selects the object (OK) 1204 on the screen of FIG. 12 displayed by the print setting extension application 312. The object 1204 is an object for finalizing the print settings with the contents of that screen. The print setting extension application 312 provides a function for the user to change the print settings arbitrarily, and when changed, saves the setting value. For example, assume that the user changes the output paper size from A4 to A3 on the UI. In that case, the print setting information held by the print setting extension application 312 changes from A4 to A3. When the object 1204 is selected, the print setting extension application 312 obtains the print setting information processed within the control of the print setting screen from the print setting screen, and passes the print setting information to the OS 313.
[0119] In this way, the print setting expanding application 312 passes the print setting information to the OS 313, and then in S812 ends the display of the print setting screen shown in Fig. 12. When the processing of S812 is completed, the print setting screen shown in Fig. 9 is displayed. At this time, the displayed print setting screen is a screen on which the setting values set by the print setting expanding application 312 are set.
[0120] 9, the user selects an object (print) 905, and in step S813, a print instruction is input from the document generation application 315 to the OS 313. The OS 313 executes a process related to printing based on the print instruction input via the document generation application 315.
[0121] When an instruction to execute printing is issued, in step S814, the OS 313 generates intermediate data based on an instruction from the document generation application 315, and passes the generated intermediate data and the print setting information edited on the print setting screen to the print setting extension application 312. Here, intermediate data refers to data generated before being converted into print data such as PDL (Page Description Language), for example, XPS (XML Paper Specification) data. The print setting information is also included in this intermediate data.
[0122] When the print setting extension application 312 receives the intermediate data and print setting information from the OS 313, in S815, it generates print capability information and print data based on the intermediate data and print setting information. The print data refers to a PDL such as a PDF (Portable Document Format) file, and the print capability information is specifically information in which the print setting information is described using attribute values defined by IPP. Then, in S816, the print setting extension application 312 passes the generated print data and print capability information to the print queue of the OS 313.
[0123] Steps S814 to S816 are processes performed when the print setting extending application 312 associated with the print queue is installed in the client terminal 101. If print settings that can only be reflected by the print setting extending application 312 are not configured and it is determined that processing specific to the print setting extending application 312 is not required, the print setting extending application 312 may receive the intermediate data as a PDF. In this case, the received PDF may be passed directly to the OS as print data.
[0124] On the other hand, if the print setting extension application 312 is not installed in the client terminal 101, the client terminal 101 executes a process described later in S817. The OS 313 generates XPS data, edits the page layout, converts the XPS data into a predetermined format, and generates print data and print capability information in S817. The predetermined format is, for example, PDF or PWG-Raster. In S818, the OS 313 transmits the print data and print capability information passed from the print setting extension application 312, or the print data and print capability information generated by the OS 313, to the cloud print service 321 via the print queue. In S819, the cloud print service 321 transmits the print data and print capability information passed from the client terminal 101 to the cloud print-compatible printer 104. In the first embodiment, when the cloud print service 321 receives the print data and print capability information, it transmits the received print data and capability information to the cloud print-compatible printer 104. However, the cloud print-compatible printer 104 may periodically make an inquiry to the cloud print service 321 to acquire unprinted print data and printing capability information corresponding to the print data.
[0125] By doing as described above, print data reflecting the print settings made using the print setting extension application 312 can be transmitted to the cloud print-compatible printer 104 via the cloud print service 321.
[0126] 13 is a flowchart for explaining the processing of the OS 313 up to the installation of the print setting extension application 312 in the client terminal 101 in the first embodiment. Note that a program for executing the processing shown in this flowchart is stored in the storage unit 214 of the client terminal 101, and the processing is realized by the CPU 212 executing the program.
[0127] First, in S1301, the CPU 212 displays a screen shown in FIG. 4 and accepts a printer search instruction. When the user selects the object 401 in FIG. 4, the CPU 212 accepts the printer search instruction. Next, the process proceeds to S1302, where the CPU 212 determines whether or not an access token for the cloud print service 321 is stored. The client terminal 101 stores an access token for acquiring information from the cloud print service 321 for each user who logs in to the client terminal 101. The CPU 212 determines whether or not an access token associated with a user who logs in to the client terminal 101 is stored. If an access token is stored, the CPU 212 advances the process to S1306. On the other hand, if an access token is not stored, the process proceeds to S1303, where the CPU 212 transmits an authentication request to the cloud print service 321. Then, the CPU 212 receives a URL used to display a screen for inputting information required for authentication from the cloud print service 321. Then, in S1304, the CPU 212 accesses the received URL, displays a screen for inputting information used for authentication, and receives authentication information input via that screen. Here, authentication information is, for example, a user ID (user identifier) and a password. Then, in S1305, the CPU 212 transmits the input authentication information to the cloud print service 321, obtains an access token, and proceeds to S1306. Note that if authentication to the cloud print service 321 fails, the CPU 212 cannot obtain an access token, and ends the process shown in FIG. 13.
[0128] In S1306, the CPU 212 uses the access token to send to the cloud print service 321 a request to obtain information on the printer registered in the cloud print service 321. As a result, the cloud print service 321 selects information on the printer available to the user identified by the received access token, and sends it to the client terminal 101. Here, the printer name registered in association with the printer available to the user identified by the access token received from the client terminal 101 and the HWID of the printer are sent to the client terminal 101.
[0129] The process then proceeds to S1307, and the CPU 212 displays the printer information acquired from the cloud print service 321 on the display unit 216 of the client terminal 101. By performing the display in S1307, the printer information is displayed in a list, for example, as shown in the area 402 in FIG.
[0130] Next, in S1308, the CPU 212 determines whether or not printer information has been selected in the area 402 in Fig. 4. The CPU 212 repeats the process of S1308 until printer information is selected. When printer information is selected, the process proceeds to S1309, in which the CPU 212 transmits an acquisition request for capability information of the selected printer to the cloud print service 321. Here, an inquiry is made to the cloud print service 321 about setting items registered in advance in the OS 313.
[0131] Next, the process proceeds to S1310, where the CPU 212 updates the device capability information stored in the client terminal 101 based on the printer capability information acquired from the cloud print service 321, and generates a print queue. Then, the process proceeds to S1311, where the CPU 212 transmits an acquisition request for the extended setup information file 700 to the online support service 351. This acquisition request includes the printer's HWID. Then, the process proceeds to S1312, where the CPU 212 determines whether acquisition of the extended setup information file 700 was successful, and if acquisition of the extended setup information file 700 was successful, the CPU 212 advances the process to S1313. On the other hand, if acquisition of the extended setup information file 700 failed, the CPU 212 ends the process shown in FIG. 13.
[0132] In S1313, the CPU 212 transmits an acquisition request for the print setting extending application described in the acquired extended setup information file 700 to the application management service 331. The CPU 212 acquires the application identifier of the print setting extending application from the extended setup information file 700, and transmits an acquisition request for the print setting extending application to the application management service 331 by specifying the acquired application identifier. Then, the process proceeds to S1314, where the CPU 212 determines whether the acquisition of the print setting extending application has been successful. If the acquisition of the print setting extending application has failed, the CPU 212 ends the process described in FIG. 13. If the acquisition of the print setting extending application has been successful, the process proceeds to S1315, where the CPU 212 installs the acquired print setting extending application, and registers the application identifier of the print setting extending application in association with the print queue. Furthermore, an event registration is performed to indicate the timing of notification to the OS 313. Here, it is registered so that the print setting extending application is notified of the event when a print queue associated with the print setting extending application is selected on the print setting screen displayed by the document generation application 315. The above is the process up to registering the print setting extension application in the client terminal 101.
[0133] Next, a process in which the client terminal 101 performs print setting using the installed print setting extension application 312 and generates print data will be described with reference to FIG.
[0134] 14 is a flowchart for explaining a process in which the client terminal 101 according to the first embodiment performs print setting using the print setting extending application 312 and generates print data. Note that the program for executing this process is stored in the print setting extending application 312, and the program is deployed in the memory 213 of the client terminal 101 and executed by the CPU 212.
[0135] First, in S1401, the CPU 212 determines whether or not an event notification has been received. Here, the event is an event issued by the OS 313, and is an event that notifies the print setting extension application 312 that the timing registered in S1315 of FIG. 13 has occurred. In S1401, if the CPU 212 has not received the event notification, the CPU 212 repeats the process of S1401. If the CPU 212 receives the event notification in S1401, the CPU 212 proceeds to S1402 and transmits a capability information acquisition request to the cloud print service 321. Here, the CPU 212 transmits a capability information acquisition request to the cloud print service 321 for the setting items set in the print setting extension application 312. Here, capability information is also acquired for the setting items not acquired in S1306 of FIG. 13. Then, the CPU 212 proceeds to S1403 and determines whether or not the acquisition of capability information has been completed, and if the acquisition of capability information has not been completed, the CPU 212 repeats the process of S1403. If it is determined in S1403 that the acquisition of the capability information has been completed, the process proceeds to S1404, in which the CPU 212 updates the device capability information with the acquired capability information. By performing the process of S1404, capability information for setting items that are not acquired by the OS 313 is also stored in the client terminal 101. Details of the process of S1404 will be described later with reference to the flowchart in FIG.
[0136] Next, the process proceeds to S1405, where the CPU 212 determines whether or not an instruction to display a print setting screen by the print setting extending application 312 has been accepted. An instruction to display a print setting screen by the print setting extending application 312 is an instruction issued based on a user operation such as selection of the object (other settings) 904 in Fig. 9, for example. If it is determined in S1405 that an instruction to display a print setting screen has not been accepted, the process proceeds to S1412. On the other hand, if it is determined that an instruction to display a print setting screen has been accepted, the process proceeds to S1408.
[0137] In S1408, the CPU 212 displays a print setting screen, for example, as shown in FIG. 12, based on the device capability information updated in S1404. Then, the CPU 212 accepts a user operation to select a setting value via the displayed print setting screen. Then, the process proceeds to S1410, where the CPU 212 determines whether or not an instruction has been given by an OK object to end the display of the print setting screen by the print setting extension application 312. If it is determined that an instruction has not been given to end the display of the print setting screen, the process proceeds to S1410. If it is determined that an instruction has been given to end the display of the print setting screen, the process proceeds to S1411. In S1411, the CPU 212 edits the print setting information with the setting value selected on the print setting screen displayed by the print setting extension application 312. Then, the CPU 212 ends the display of the print setting screen by the print setting extension application 312, and proceeds to S1412.
[0138] In S1412, the CPU 212 determines whether the print setting extending application 312 has received intermediate data from the OS 313. If the intermediate data has not been received, the process proceeds to S1405. On the other hand, if the intermediate data has been received, the process proceeds to S1413. In S1413, the CPU 212 generates print data and printing capability information based on the intermediate data received by the print setting extending application 312. Here, the CPU 212 generates image data in a predetermined format based on the intermediate data and the print setting information. The CPU 212 also generates printing capability information described with attribute values defined by IPP based on the print setting information. In addition to the attribute values defined by IPP, the printing capability information can also be freely described. Therefore, setting items and attribute values uniquely defined by the printer vendor can also be described in the printing capability information. Details of the process of S1413 will be described later with reference to the flowchart of FIG. 16. Then, the process proceeds to S1414, where the CPU 212 provides the generated print data to the OS 313 and ends this process. This causes the OS 313 to transmit the data received via the print queue to the cloud print service 321 .
[0139] The above is a flowchart showing the process of making print settings using the print setting extending application 312 and generating print data and printing capability information.
[0140] Fig. 15 is a flowchart for explaining the process of updating the device capability information in S1404 of Fig. 14. A program for executing the process shown in Fig. 15 is stored in the print setting extension application 312, and the program is deployed in the memory 213 of the client terminal 101 and executed by the CPU 212.
[0141] In S1501, the CPU 212 adds a printer vendor-specific "ns0000:PageOutputMediaSize" item to the device capability information based on the paper size information of "psk:PageMediaSize" in the capability information acquired in S1402. At this time, if the device capability information already has the item, the content of the item is updated. If there is no difference in the content, it is not necessary to update it. At the time of addition or update, the setting value "same as original size" is included regardless of the acquired capability information. For example, assume that the paper size supported by the printer acquired from the printer is as shown in "psk:PageMediaSize" in FIG. 6B. In this case, the "ns0000:PageOutputMediaSize" item as shown by reference number 1002 in FIG. 10B is added as the device capability information. The PageOutputMediaSize added at this time has the same item as the PageMediaSize acquired from the printer. Furthermore, an Option is added to PageOutputMediaSize to enable the selection of "same paper size as original size". It should be noted that if PageOutputMediaSize has been added to the device capability information, the process in S1501 may not be performed.
[0142] Next, the process proceeds to S1502, and the CPU 212 updates the contents of "psk:PageMediaSize" with predetermined contents, regardless of the capability information acquired in S1402. This is to allow the document generation application 315 to handle paper sizes that the printer does not support. For example, assume that the paper sizes that the printer supports acquired from the printer are as shown in "psk:PageMediaSize" in FIG. 6B. However, the device capability information is updated with the contents of "psk:PageMediaSize" as shown in FIG. 10A and FIG. 10B, which are predetermined by the print setting extension application 312.
[0143] Next, the process proceeds to S1503, where the CPU 212 determines whether or not the capability information acquired in S1402 includes an item "ns0000:SingleJobMixedPageMediaSizePrint." This is an item for "handling mixed paper printing in a single job." If this item is included, the process proceeds to S1504, and if this item is not included, the process proceeds to S1505. In S1504, the CPU 212 adds or updates the item "ns0000:SingleJobMixedPageMediaSizePrint" together with the acquired attribute value to the device capability information. As a result, as shown by reference number 1003 in FIG. 10B, "ns0000:SingleJobMixedPageMediaSizePrint" is entered, and "ns0000:None" and "ns0000:Enable" are entered as its configurable values. In this way, the CPU 212 ends updating the device capability information.
[0144] Meanwhile, in S1505, the CPU 212 determines whether or not the device capability information includes an item "ns0000:SingleJobMixedPageMediaSizePrint." If the item is included, the process proceeds to S1506; if the item is not included, the process ends updating the device capability information. In S1506, the CPU 212 deletes the item "ns0000:SingleJobMixedPageMediaSizePrint" from the device capability information, and ends updating the device capability information. By performing S1506, it is possible to prevent a mixed paper setting object from being displayed even if the printer does not support mixed paper.
[0145] 16 is a flowchart for explaining the print data generation process of S1413 in Fig. 14 according to the first embodiment. A program for executing this process is stored in the print setting extension application 312, and this program is deployed in the memory 213 of the client terminal 101 and executed by the CPU 212.
[0146] In S1601, the CPU 212 refers to the print setting information of the intermediate data received from the OS 313, and determines whether the setting of the output paper size ("ns0000:PageOutputMediaSize") is "same as the original size." The setting value of the output paper size is the value set in the setting item (output paper size) 1202 in FIG. 12. If the setting value of the output paper size is "same as the original size," the process proceeds to S1602, and if the setting of the output paper size is other than "same as the original size," the process proceeds to S1611.
[0147] In S1602, the CPU 212 determines whether or not a setting for handling mixed paper printing in a single job ("ns0000:SingleJobMixedPageMediaSizePrint") is on, based on the print setting information of the intermediate data received from the OS 313. If this setting item is on, the process proceeds to S1613, and if the setting item is off or the item itself does not exist, the process proceeds to S1603.
[0148] In S1603, the CPU 212 references the intermediate data received from the OS 313, and stores the first page in the page printing order as the first page of the first job in the storage unit 214. The subsequent processing of S1603 to S1610 is processing for realizing mixed paper printing by having the print setting extension application 312 split the job when the printer does not have the ability to handle mixed paper printing in a single job or when the setting for handling in a single job is off.
[0149] In S1604, the CPU 212 associates the manuscript size of the page held in S1603 ("psk:PageMediaSize" of the print setting information of that page) with the job and holds it in the storage unit 214. The setting value of the manuscript size is the value set in the setting item (manuscript size) 1201 in FIG. 12 or the value specified by the document generation application 315 when a print instruction is issued. Next, the process proceeds to S1605, where the CPU 212 refers to the intermediate data received from the OS 313, and determines whether or not there is a next page according to the page printing order.
[0150] In S1606, CPU 212 acquires the document size of the next page. Next, the process proceeds to S1607, where CPU 212 refers to the document size of the next page acquired in S1606, and determines whether or not the document size is the same as the document size associated with the job of the previous page and stored. If the document sizes are the same, the process proceeds to S1608, and if the document sizes are different, the process proceeds to S1609. In S1608, CPU 212 stores the page whose document size was acquired in S1606 in storage unit 214 as the next page of the job of the previous page, and returns the process to S1605.
[0151] Meanwhile, in S1609, CPU 212 stores the page whose manuscript size was acquired in S1606 as the first page of a new job different from the job of the previous page in storage unit 214. Then, proceeding to S1610, CPU 212 associates the manuscript size of the page stored in S1609 (i.e., the manuscript size acquired in S1606) with the new job in S1609, stores it in storage unit 214, and proceeds to S1605.
[0152] FIG. 17 is a diagram illustrating an example of the intermediate data generated by the processes in S1603 to S1610 in FIG.
[0153] For example, suppose that the document to be printed is as shown in Fig. 17(a), and A4 is specified as the manuscript size for the first and fourth pages, and A3 is specified as the manuscript size for the second and third pages by the document generation application 315. In this case, the intermediate data that the print setting extending application 312 receives from the OS 313 is as shown in Fig. 17(b).
[0154] In FIG. 17B, the setting of the output paper size of the print setting information is set to "same as manuscript size", and the manuscript size of each page is set to the information specified by the document generation application 315. When the processes of S1603 to S1610 are performed on such intermediate data, the print setting extension application 312 holds data in which the jobs are divided as shown in FIG. 17C. That is, the print document is divided into three jobs according to manuscript size from the first page, and the first job 1 includes the first page of the print document, the second job 2 includes the second and third pages of the print document, and the third job 3 includes the fourth page of the print document. Then, A4 is associated with the manuscript size of jobs 1 and 3, and A3 is associated with the manuscript size of job 2 and held. Note that FIG. 17C is a schematic diagram, and the held data format may be the same as the data format of the received intermediate data, or may be a different data format.
[0155] In S1601, if the output paper size setting is other than "same as original size", the process proceeds to S1611, where the CPU 212 generates print data and printing capability information according to the intermediate data, and ends this process. At this time, if the original size of the print setting information for each page differs from the output paper size setting, the print setting expansion application 312 generates print data enlarged or reduced to the paper size set in the output paper size as necessary. Also, the information on the original size is changed as the printing capability information to the paper size set in the output paper size.
[0156] If it is determined in S1605 that there is no next page, the process proceeds to S1612, in which the CPU 212 generates print data and printing capability information for each job created in the processes of S1603 to S1610, and ends this process. At this time, the document size associated with each job is set as the document size in the printing capability information of each job.
[0157] Also, when it is determined in S1602 that handling mixed paper printing in a single job is ON, the process proceeds to S1613, where the CPU 212 generates print data and printing capability information for mixed paper printing in a single job according to the intermediate data received from the OS 313, and ends this process. At this time, the printing capability information includes a setting for mixed paper printing. Also, at least the print data generated at this time is in a format that can have a manuscript size on a page-by-page basis, such as PDF, and has the manuscript size set in the print setting information for each page. If the printing capability information includes a setting for mixed paper printing, the cloud print-compatible printer 104 interprets the manuscript size of each page of the print data and prints at that size. This realizes mixed paper printing in a single job.
[0158] The above is the details of the print data generation process including the case where mixed paper printing is performed.
[0159] The print data thus generated is then passed from the OS 313 to the cloud print-compatible printer 104 via the cloud service 321. At this time, even if the document size includes a size that the printer does not support, printing may be performed by specifying "same as document size" as the output paper size. In that case, if the cloud print-compatible printer 104 cannot process the received print data, the cloud print-compatible printer 104 will display a screen such as that shown in Fig. 18(a) on the display unit 246 and interrupt the process with an error.
[0160] FIG. 18 is a diagram showing an example of a screen displayed on the loud print-compatible printer 104 according to the first embodiment.
[0161] Note that even if a similar print is executed, if the cloud print-compatible printer 104 determines that printing is possible if the output paper size is changed to a compatible paper size, a screen such as that in Fig. 18(b) may be displayed to allow the user to select the paper size. Also, even if the cloud print-compatible printer 104 supports the paper size to be output, if paper of that size is not loaded in the printer's paper feed section, the screen in Fig. 18(b) may be displayed.
[0162] As described above, according to the first embodiment, when a print queue linked to a general-purpose cloud printer driver or a local printer driver is selected to generate a document, a paper size that is not supported by the printer can be selected to generate the document. In addition, by allowing the output paper size to be specified separately from the manuscript size when printing, printing on a paper size that is supported by the printer can be specified. Furthermore, when the output paper size is specified as "same as manuscript size," even if the printer cannot process mixed paper printing in a single job, the print setting extension app can split the job to enable mixed paper printing.
[0163] In the first embodiment, the pages and paper sizes used when dividing a job are stored in the storage unit 214 of the client terminal 101 in step S1603 and the like. However, they may be stored in the memory 213 of the control unit 211.
[0164] [Embodiment 2] Next, a second embodiment of the present invention will be described. In the second embodiment, even if the document size includes a size that the printer does not support, if "same as document size" is specified as the output paper size, the print setting expanding application 312 detects this when generating print data. Note that the difference between the second embodiment and the first embodiment is the print data generation process of the print setting expanding application 312, and this part will be described with reference to Figs. 19 and 20. Other parts common to the first embodiment will not be described.
[0165] 19 is a flowchart for explaining a print data generation process (corresponding to S1413 in FIG. 14) according to the second embodiment. A program for executing this process is stored in the print setting extension application 312, and the program is deployed in the memory 213 of the client terminal 101 and executed by the CPU 212.
[0166] First, in S1901, the CPU 212 refers to the print setting information of the intermediate data received from the OS 313, and determines whether the setting of the output paper size ("ns0000:PageOutputMediaSize") is "same as the original size." If the setting of the output paper size is "same as the original size," the process proceeds to S1902, and if the setting of the output paper size is other than "same as the original size," the process proceeds to S1919.
[0167] In S1902, the CPU 212 determines whether or not the setting for handling mixed paper printing in a single job ("ns0000:SingleJobMixedPageMediaSizePrint") is on, based on the print setting information of the intermediate data received from the OS 313. If this setting item is on, the process proceeds to S1918, and if it is off or the item itself does not exist, the process proceeds to S1903. In S1903, the CPU 212 refers to the intermediate data received from the OS 313, and stores the first page in the page printing order as the first page of the first job in the storage unit 214. The processes in S1903 to S1912 are processes for realizing mixed paper printing by having the print setting extension application 312 divide the job when the printer does not have the ability to handle mixed paper printing in a single job or when the setting for handling in a single job is off.
[0168] Next, the process proceeds to S1904, where the CPU 212 determines whether the document size of the page held in S1903 (the paper size specified in “psk:PageMediaSize” of the print setting information of the page) is a paper size supported by the cloud print-compatible printer 104. If it is determined that the paper size is supported by the cloud print-compatible printer 104, the process proceeds to S1905, and if it is determined that the paper size is not supported by the cloud print-compatible printer 104, the process proceeds to S1913. In S1905, the CPU 212 associates the document size of the page held in S1903 with the job and holds it in the storage unit 214. Then, the process proceeds to S1906, where the CPU 212 refers to the intermediate data received from the OS 313 and determines whether there is a next page according to the printing order of the pages. If there is a next page, the process proceeds to S1907, and if there is no next page, the process proceeds to S1920. In S1920, the CPU 212 generates print data and printing capability information for each job generated in the processes of S1903 to S1912. At this time, the document size associated with each job is set as the document size in the printing capability information of each job, and this process ends.
[0169] In S1907, CPU 212 acquires the document size of the next page. Next, the process proceeds to S1908, where CPU 212 refers to the document size acquired in S1907 and determines whether the document size is the same as the document size associated with the job of the previous page and stored. If it is determined that the document sizes are the same, the process proceeds to S1909, and if it is determined that the document sizes are different, the process proceeds to S1910. In S1909, CPU 212 stores the page whose document size was acquired in S1907 in storage unit 214 as the next page of the job of the previous page, and returns the process to S1906.
[0170] Meanwhile, in S1910, the CPU 212 determines whether or not the document size acquired in S1907 is a paper size supported by the cloud print-compatible printer 104. If it is determined that the document size is supported by the cloud print-compatible printer 104, the process proceeds to S1911, and if it is determined that the document size is not supported by the cloud print-compatible printer 104, the process proceeds to S1913. In S1911, the CPU 212 stores the page whose document size was acquired in S1907 in the storage unit 214 as the first page of a new job different from the job of the previous page. Next, the process proceeds to S1912, where the CPU 212 associates the document size of the page stored in S1911 (i.e., the document size acquired in S1907) with the new job in S1911 and stores it in the storage unit 214, and then proceeds to S1906.
[0171] Also, in S1904, if the manuscript size of the stored page (the paper size specified in “psk:PageMediaSize” of the print setting information of the page) is not a paper size supported by the cloud print-compatible printer 104, the process proceeds to S1913 and the CPU 212 displays a dialog box shown in FIG. 20 to allow the user to select the output paper size.
[0172] FIG. 20 is a diagram showing an example of a warning screen displayed by the print setting extending application 312 according to the second embodiment.
[0173] The setting item 2001 "Output paper size" is the same setting item as the setting item 1202 "Output paper size" in FIG. 12(a), but in FIG. 20, "Same as original size" is not displayed as an option. Therefore, the options in the setting item 2001 are only paper sizes supported by the cloud print-compatible printer 104. The initial value of the option may be any paper size supported by the cloud print-compatible printer 104, but may be, for example, a default value of a paper size previously determined in the printer capability information. The object (OK) 2002 is a button for accepting an instruction to confirm the output paper size selected by the user operating the setting item 2001. The object (Cancel printing) 2003 is a button for accepting an instruction to cancel printing.
[0174] In S1914, the CPU 212 determines whether or not an instruction to cancel printing of the object 2003 has been accepted in the dialog of Fig. 20. If an instruction to cancel printing has been accepted, the process proceeds to S1915, and if an instruction to cancel printing has not been accepted, the process proceeds to S1916. In S1915, the CPU 212 ends the print data generation process and cancels the printing execution. At this time, the print setting extension application 312 does not perform the process of S1414 in Fig. 14, and returns a message to the OS 313 that printing has been canceled.
[0175] On the other hand, if the instruction is not to cancel printing, the process proceeds to S1916, where the CPU 212 determines whether or not an instruction to confirm the output paper size (object 2002) has been received in the dialog of FIG. 20. If an instruction to confirm the output paper size has been received, the process proceeds to S1917, and if an instruction to confirm the output paper size has not been received, the process proceeds to S1914. In S1917, the CPU 212 discards the information on the page and its manuscript size held in S1903 or the like, changes the output paper size of the print setting information of the received intermediate data to the output paper size selected in the dialog of FIG. 20, and proceeds to S1919. In S1919, the CPU 212 generates print data and print capability information according to the intermediate data. At this time, if the manuscript size of the print setting information of each page is different from the setting of the output paper size, the print setting expansion application 312 generates print data enlarged or reduced to the paper size set in the output paper size as necessary. In addition, as the print capability information, the information on the manuscript size is changed to the paper size set in the output paper size, and this process ends.
[0176] Also, if the setting of handling mixed paper printing in a single job is ON in S1902, the process proceeds to S1918. In S1918, the CPU 212 determines whether the document size of all pages is a paper size supported by the cloud print-compatible printer 104 from the print setting information of the received intermediate data. If it is determined that the document size of all pages is a paper size supported by the cloud print-compatible printer 104, the process proceeds to S1921. On the other hand, if there is a page whose document size is a paper size that is not supported by the cloud print-compatible printer 104, the process proceeds to S1913, where a dialog box for selecting the output paper size shown in FIG. 20 is displayed, and the above-mentioned process is executed. In S1921, the CPU 212 generates print data and printing capability information for mixed paper printing in a single job according to the intermediate data received from the OS 313, as in S1613, and ends this process. The above is the details of the print data generation process of the print setting extension application 312 in the second embodiment.
[0177] In the second embodiment, when the document size includes a size that the printer does not support, but the output paper size is specified as "same as document size," the print setting extension application 312 detects this when generating print data. Then, the user is prompted to change the settings or cancel printing. This is expected to avoid the situation in the first embodiment where the user does not realize that the output cannot be printed unless the user performs an operation on the cloud print-compatible printer 104 side or goes to pick up the output paper.
[0178] In the second embodiment, the pages and paper sizes used when dividing a job are stored in the storage unit 214 of the client terminal 101 in step S1903 and the like. However, they may be stored in the memory 213 of the control unit 211.
[0179] Also, print data may be generated as is for the divided jobs that were held at the time when it was detected that the document size was incompatible (determined as No in S1910).In that case, print data may be generated to output the pages after the page where it was detected that the document size was incompatible on the output paper size specified in the dialog displayed in S1913.
[0180] [Embodiment 3] Next, a third embodiment of the present invention will be described. In the third embodiment, even if the document size includes a size that the printer does not support, when the output paper size is specified as "same as document size", the print setting expanding application 312 detects this when generating print data. Then, the print data is automatically changed to be output to a paper size that the printer supports. The difference between the third embodiment and the first embodiment is the print data generation process of the print setting expanding application 312, and this part will be described with reference to FIG. 21. Other parts in common with the first embodiment will not be described.
[0181] 21 is a flowchart for explaining a print data generation process (corresponding to S1413 in FIG. 14) according to the third embodiment. A program for executing the process shown in this flowchart is stored in the print setting extension application 312, and the program is deployed in the memory 213 of the client terminal 101 and executed by the CPU 212.
[0182] First, in S2101, the CPU 212 refers to the print setting information of the intermediate data received from the OS 313 and determines whether the setting of the output paper size ("ns0000:PageOutputMediaSize") is "same as the original size". If the setting of the output paper size is "same as the original size", the process proceeds to S2102, and if the setting of the output paper size is not "same as the original size", the process proceeds to S2117. In S2117, the CPU 212 generates print data and printing capability information according to the intermediate data. At this time, if the original size of the print setting information of each page is different from the setting of the output paper size, the print setting extension application 312 generates print data enlarged or reduced to the paper size set in the output paper size as necessary, and ends this process. In addition, as the printing capability information, the information of the original size is changed to the paper size set in the output paper size.
[0183] In S2102, the CPU 212 determines whether or not a setting for handling mixed paper printing in a single job ("ns0000:SingleJobMixedPageMediaSizePrint") is on, based on the print setting information of the intermediate data received from the OS 313. If this setting item is on, the process proceeds to S2115, and if the setting item is off or does not exist, the process proceeds to S2103. In S2103, the CPU 212 refers to the intermediate data received from the OS 313, and stores the first page in the page printing order as the first page of the first job in the storage unit 214. The processes in S2103 to S2114 are processes for realizing mixed paper printing by having the print setting extension application 312 divide the job when the printer does not have the ability to handle mixed paper printing in a single job or when the setting for handling in a single job is off.
[0184] In S2104, the CPU 212 determines whether the document size of the page held in S2103 (the paper size specified in "psk:PageMediaSize" of the print setting information of the page) is a paper size supported by the cloud print-compatible printer 104. If the paper size is supported by the cloud print-compatible printer 104, the process proceeds to S2105, and if the paper size is not supported by the cloud print-compatible printer 104, the process proceeds to S2113. In S2113, the CPU 212 changes the document size of the page held in S2103 to a paper size supported by the cloud print-compatible printer 104, and proceeds to S2105. Specifically, the paper size is changed to the supported paper size that has the smallest difference from the original document size.
[0185] In S2105, the CPU 212 stores the document size of the page stored in S2103 in the storage unit 214 in association with the job. Next, the process proceeds to S2106, where the CPU 212 refers to the intermediate data received from the OS 313 and determines whether or not there is a next page according to the page printing order. If there is a next page, the process proceeds to S2107, and if there is no next page, the process proceeds to S2118. In S2107, the CPU 212 acquires the document size of the next page and proceeds to S2108. In S2108, the CPU 212 refers to the document size acquired in S2107 and determines whether the document size is the same as the document size stored in association with the job of the previous page. If the document sizes are the same, the process proceeds to S2109, and if the document sizes are different, the process proceeds to S2110. In S2118, the CPU 212 generates print data and printing capability information for each job created in the processes of S2103 to S2114, and ends this process. At this time, the document size associated with each job is set as the document size in the printing capability information of each job. Also, if there are pages whose document size has been changed in S2113 or S2114, print data is generated in which those pages are enlarged or reduced to the document size associated with each job.
[0186] In S2110, the CPU 212 determines whether the document size acquired in S2107 is a paper size supported by the cloud print-compatible printer 104. If the document size is supported by the cloud print-compatible printer 104, the process proceeds to S2111. If the document size is not supported by the cloud print-compatible printer 104, the process proceeds to S2114. In S2111, the CPU 212 stores the page whose document size was acquired in S2107 in the storage unit 214 as the first page of a new job different from the job of the previous page. Next, the process proceeds to S2112, where the CPU 212 associates the document size of the page stored in S2111 with the new job in S2111 and stores it in the storage unit 214, and returns to S2106. In addition, in S2114, the CPU 212 changes the document size of the page whose document size was acquired in S2107 to a paper size supported by the cloud print-compatible printer 104, and proceeds to S2111. The method of changing the paper size here is the same as the process of S2113.
[0187] If the setting for handling mixed paper printing as a single job is on in S2102, the process proceeds to S2115, where the CPU 212 determines from the print setting information of the received intermediate data whether the document sizes of all pages are paper sizes supported by the cloud print-compatible printer 104. If the document sizes of all pages are paper sizes supported by the cloud print-compatible printer 104, the process proceeds to S2119, and if there is a page whose document size is a paper size that is not supported by the cloud print-compatible printer 104, the process proceeds to S2116. In S2116, the CPU 212 changes the document size of the page whose document size is not supported by the cloud print-compatible printer 104 to a paper size that is supported by the cloud print-compatible printer 104, and proceeds to S2119. The method of changing the paper size here is the same as the process of S2113. In S2119, if there is a page whose manuscript size has been changed in S2116, CPU 212 enlarges or reduces that page to the changed manuscript size, and generates print data and printing capability information for mixed paper printing in a single job, as in S1613, and then ends this process.
[0188] The above is the details of the print data generation process of the print setting extending application 312 in the third embodiment.
[0189] According to the third embodiment, when an instruction is given to output to a paper size that the printer does not support, the print setting extension application 312 detects this when generating print data and automatically changes the document size so that the output is to be output to a paper size that the printer supports. This reduces the effort of setting the output paper size after issuing a print instruction, as in the first and second embodiments. In the third embodiment, the page and paper size used when dividing a job are stored in the storage unit 214 of the client terminal 101 in S2103 and the like, but they may be stored in the memory 213.
[0190] There are various possible methods for changing the document size in S2113. For example, the print setting extension application 312 may identify whether the paper size specified as the original document size is A size (ISO A size) or B size (JIS B size). If A size paper size is specified, it may be changed to A size paper size that is compatible with the printer, and if B size paper size is specified, it may be changed to B size paper size that is compatible with the printer. Also, for example, it may be changed to a default value of the paper size that is predetermined in the printer's capability information.
[0191] [Embodiment 4] Next, a fourth embodiment of the present invention will be described. In the fourth embodiment, it is assumed that the print protocol can transmit print data to the printer, which allows the print settings to be switched for each document included in one job. If the printer has the ability to handle mixed paper printing in a single job, it is assumed that the printer can perform printing with the print settings switched for each document included in one job. Another difference from the first embodiment is the process in which the print setting extension application 312 receives intermediate data from the OS 313 and generates print data, and this part will be described with reference to FIG. 22.
[0192] 22 is a flowchart for explaining a print data generation process (corresponding to S1413 in FIG. 14) according to the fourth embodiment. A program for executing the process shown in this flowchart is stored in the print setting extension application 312, and the program is loaded into the memory 213 of the client terminal 101 and executed by the CPU 212.
[0193] In S2201, CPU 212 refers to the print setting information of the intermediate data received from OS 313, and determines whether the setting of the output paper size ("ns0000:PageOutputMediaSize") is "same as the original size." If the setting of the output paper size is "same as the original size," the process proceeds to S2202, and if the setting of the output paper size is other than "same as the original size," the process proceeds to S2219. In S2119, CPU 212 generates print data and printing capability information according to the intermediate data, similar to S1611, and ends this process.
[0194] In S2202, the CPU 212 determines whether or not the setting for handling mixed paper printing in a single job ("ns0000:SingleJobMixedPageMediaSizePrint") is ON, based on the print setting information of the intermediate data received from the OS 313. If this setting item is ON, the process proceeds to S2203, and if this setting item is OFF or does not exist, the process proceeds to S2211.
[0195] In S2203, the CPU 212 refers to the intermediate data received from the OS 313, acquires the manuscript size from the print setting information of the first page according to the page printing order, stores the acquired manuscript size in the memory 213, and proceeds to S2204. In S2204, the CPU 212 generates print data for the page whose manuscript size was acquired in S2203 as the first page of the first document in the job, and stores the print data in the storage unit 214. At this time, the manuscript size acquired in S2203 is set as the manuscript size in the printing capability information of the document. Next, the process proceeds to S2205, where the CPU 212 refers to the intermediate data received from the OS 313, and determines whether or not there is a next page according to the page printing order. If there is a next page, the process proceeds to S2206, and if there is no next page, the print data generation process ends.
[0196] In S2206, the CPU 212 acquires the manuscript size of the page determined to exist in S2205, and proceeds to S2207. In S2207, the CPU 212 determines whether the manuscript size acquired in S2206 is the same as the manuscript size stored. If it is determined that the manuscript sizes are the same, the process proceeds to S2208, and if it is determined that the manuscript sizes are different, the process proceeds to S2209. In S2208, the CPU 212 updates the print data stored so that the page whose manuscript size was acquired in S2206 becomes the next page of the document of the previous page, and returns to S2205. As a result, if the manuscript sizes are the same, print data of a document with consecutive pages is generated. On the other hand, in S2209, the CPU 212 updates the print data stored so that the page whose manuscript size was acquired in S2206 becomes the first page of a new document different from the document of the previous page. At this time, the manuscript size acquired in S2206 is set as the manuscript size of the printing capability information of the new document. Next, the process proceeds to S2210, and the CPU 212 resets the stored document size to the document size acquired in S2206 and stores it again, and the process returns to S2205.
[0197] Also, in S2202, if the setting for handling mixed paper printing in a single job is off or if the setting item itself does not exist, the process proceeds to S2211. In S2211, the CPU 212 refers to the intermediate data received from the OS 313, acquires the manuscript size from the print setting information of the first page according to the page printing order, and stores the acquired manuscript size in the memory 213. Next, the process proceeds to S2212, where the CPU 212 generates print data for the page whose manuscript size was acquired in S2211 as the first page of the document of the first job, and stores the print data in the storage unit 214. At this time, the manuscript size acquired in S2211 is set as the manuscript size of the printing capability information of the job. Next, the process proceeds to S2213, where the CPU 212 refers to the intermediate data received from the OS 313, and determines whether or not there is a next page according to the page printing order. If there is a next page, the process proceeds to S2214, and if there is no next page, the process ends the print data generation process. In S2214, CPU 212 acquires the manuscript size of the page determined to exist in S2213, and proceeds to S2215. In S2215, CPU 212 determines whether the manuscript size acquired in S2214 is the same as the manuscript size stored in advance. If it is determined that the manuscript sizes are the same, the process proceeds to S2216, and if it is determined that the manuscript sizes are different, the process proceeds to S2217. In S2216, CPU 212 updates the print data stored in order to make the page whose manuscript size was acquired in S2214 the next page of the document of the job in which the previous page is included, and returns to S2213.
[0198] Meanwhile, in S2217, CPU 212 updates the print data stored so that the page whose manuscript size was acquired in S2214 becomes the first page of a document of a new job different from the job including the previous page. At this time, the manuscript size acquired in S2214 is set as the manuscript size in the printing capability information of the new job. Next, the process proceeds to S2218, where CPU 212 newly stores the manuscript size acquired in S2214 as the manuscript size that was stored, and proceeds to S2213. The above is the details of the print data generation process related to the mixed paper printing function in the fourth embodiment.
[0199] According to the fourth embodiment, if the printer has the ability to handle mixed paper printing in a single job, the printer does not need to interpret the document size of each page from the print data as in the first embodiment, and the load on the printer can be reduced more than in the first embodiment. Also, as in the first embodiment, even if the printer does not have the ability to handle mixed paper printing in a single job, mixed paper printing can be realized by dividing the job. Note that in the fourth embodiment, the document size is stored in the memory 213 of the client terminal 101 in S2203 and the like, but it may be stored in the storage unit 214. Also, in S2204 and the like, the print data is stored in the storage unit 214 of the client terminal 101, but it may be stored in the memory 213.
[0200] (Other embodiments) The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.
[0201] The present invention is not limited to the above-described embodiments, and various modifications and variations can be made without departing from the spirit and scope of the present invention. Therefore, the following claims are appended to apprise the public of the scope of the present invention. [Explanation of symbols]
[0202] 101: client terminal, 104: cloud print compatible printer, 212: CPU (client terminal), 213: memory, 214: storage unit, 311: cloud printer driver, 312: print setting extension application, 313: OS, 315: document generation application, 321: cloud print service
Claims
1. An information processing device, The system accepts the user's selection of the original document size and the output paper size. If the selected original document size and the selected output paper size are different, the data to be printed will be enlarged or reduced to fit the selected output paper size before printing. The general-purpose printer driver pre-installed in the operating system (OS) of the aforementioned information processing device can accept the selection of paper size. An application program characterized in that the output paper size options include predetermined options that are not included in the paper size options.
2. The application program according to Claim 1, characterized in that the document size is a size relating to the size of the data to be printed, set by IPP (Internet Printing Protocol), the output paper size is the size of the paper to be printed on, and the paper size is the size of the paper included in the device capability information of the general-purpose printer driver.
3. The application program according to Claim 1, wherein the application program displays a print settings screen that includes a first option for selecting the document size and a second option for selecting the output paper size, and accepts the user's selection of the displayed options.
4. The application program according to claim 3, characterized in that the second option includes an option not set by IPP.
5. The application program according to claim 1, characterized in that when the selected original size and the selected output paper size are the same, the data to be printed is printed at 1:1 scale.
6. Furthermore, the operating system is instructed to request the acquisition of capability information, which is information on setting items and setting values that can be used by the image forming apparatus to which the print job is sent. The application program according to claim 3, characterized in that the operating system updates the print settings information by editing the device capability information included with the operating system based on the capability information acquired in response to the acquisition request, and displays the print settings screen based on the updated print settings information.
7. The application program according to claim 6, wherein the operating system adds the second option by updating the print settings information.
8. The application program according to claim 6, characterized in that the request for acquisition of capability information is made using a command defined by IPP.
9. The application program according to claim 8, characterized in that the command is Get-Printer-Attributes.
10. The application program according to claim 6, characterized in that the capability information includes information regarding the output paper size.
11. The application program is an application program that supports the general-purpose printer driver, Furthermore, the information processing device: Intermediate data is obtained from the aforementioned general-purpose printer driver. Print data is generated from the aforementioned intermediate data. The application program according to claim 1, characterized in that it performs the enlargement or reduction when generating the print data.
12. The application program according to claim 11, characterized in that the intermediate data is XPS data and the print data is PDF data.
13. The application program according to Claim 1, characterized in that, if the size of the data to be printed differs from page to page, and a specific paper size other than the original size is set as the output paper size setting, the data to be printed is enlarged or reduced and printed out so that all pages fit the size of the specific paper.
14. The application program according to Claim 1, characterized in that, if the size set in the original document size and the size indicated by the setting value set in the output paper size are the same, and the size set in the original document size is a size that cannot be used by the image forming apparatus to which the print job is sent, a screen for setting the output paper size is displayed, and the data to be printed is enlarged or reduced to the size indicated by the set output paper size and printed out.
15. The application program according to claim 6, characterized in that the general-purpose printer driver is capable of generating print jobs that can be printed on multiple image forming apparatuses of multiple vendors that are different from each other, and is capable of transmitting the print jobs to any of the multiple image forming apparatuses.
16. The application program according to claim 1, characterized in that the general-purpose printer driver is a general-purpose printer driver using IPP.
17. An information processing device having an application program that supports a general-purpose printer driver, A selection method that accepts the user's selection of document size and output paper size, If the original document size selected by the selection means differs from the selected output paper size, the means for printing the data to be printed is enlarged or reduced to the selected output paper size. The general-purpose printer driver is pre-installed in the operating system (OS) of the information processing device and includes means for accepting the selection of paper size via the general-purpose printer driver. The information processing device is characterized in that the options for selecting the output paper size include predetermined options that are not included in the paper size options.
18. A control method for controlling an information processing device having an application program that supports a general-purpose printer driver, A selection process that accepts the user's selection of document size and output paper size. If the original document size selected in the selection step differs from the selected output paper size, the data to be printed is enlarged or reduced to the selected output paper size before printing. The general-purpose printer driver is pre-installed in the operating system (OS) of the information processing device, and includes a step of accepting the selection of paper size using the general-purpose printer driver. A control method characterized in that the options for selecting the output paper size include predetermined options that are not included in the paper size options.
19. A computer-readable storage medium storing an application program according to any one of claims 1 to 16.