Information Processing Apparatus, Control Method Thereof, Application Program, and Storage Medium

The application program enhances general-purpose printer drivers by adding unsupported paper sizes to device capability information, allowing users to create documents in sizes not supported by the printer, thus overcoming limitations in existing printer drivers.

JP7701951B2Active Publication Date: 2025-07-02CANON KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023060441
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-04-03
Publication Date
2025-07-02
Estimated Expiration
2043-04-03

AI Technical Summary

Technical Problem

General-purpose printer drivers limit the paper sizes that can be selected in applications, preventing the creation of documents in sizes not supported by the printer, as they rely on printer capability information that does not include unsupported sizes.

Method used

An application program that collaborates with an operating system and a general-purpose printer driver to add unsupported paper sizes to the device capability information, allowing users to select and generate print data in these sizes by updating the device capability information based on predefined information and user input.

Benefits of technology

Enables the creation of documents in paper sizes not supported by the printer, providing flexibility and expanding the range of available paper sizes for printing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007701951000001
    Figure 0007701951000001
  • Figure 0007701951000002
    Figure 0007701951000002
  • Figure 0007701951000003
    Figure 0007701951000003
Patent Text Reader

Abstract

To solve such problems that a desired size is not displayed and the sheet size cannot be selected even if a user wants to create a document or drawing data in a size not available in the sheet size of capability information of a printer in an application that creates a document or drawing when using a general-purpose printer driver.SOLUTION: An information processing device updates device capability information stored in advance in an operating system with capability information acquired from a printer, sets printing setting information on the basis of the updated device capability information, acquires intermediate data generated by the operating system on the basis of the set printing setting information, generates printing data on the basis of the intermediate data, adds the capability of the output sheet size to the device capability information on the basis of the capability of the sheet size in the capability information acquired from the printer in the update of the device capability information, and updates the device capability information with predetermined information that includes the sheet size not available in the capability information acquired from the printer for the capability of the sheet size.SELECTED DRAWING: Figure 15
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, a control method thereof, an application program, and a storage medium.

Background Art

[0002] In recent years, general-purpose printer drivers using industry-standard protocols such as IPP (Internet Printing Protocol) have been considered. Such general-purpose printer drivers include local printer drivers that directly connect to printers and cloud printer drivers that transmit print data to cloud print services.

[0003] General-purpose printer drivers can communicate with printers of a plurality of different printer vendors. Therefore, by using a general-purpose printer driver, a user can transmit print data to a general image forming apparatus, a cloud print service, etc. without installing a vendor-specific printer driver.

[0004] Such general-purpose printer drivers handle print jobs printed by printers of various vendors, so the items and functions that can be set as print settings are limited. Also, in general-purpose printer drivers, the printer capability information that can be acquired is similarly limited.

[0005] Therefore, as in Patent Document 1, it has been considered to extend the print queue associated with the printer driver by using the identification information of the printer associated with the printer driver. Thereby, it is possible to realize a vendor-specific print setting UI and a print job editing function.

Prior Art Documents

Patent Documents

[0006]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0007] Conventionally, a general-purpose printer driver pre-installed in an operating system (OS) acquires printer capability information for setting items predetermined by the OS for the printer selected by the user for printing. Among the printer capability information, there is a paper size, and the general-purpose printer driver acquires the paper sizes supported by the printer.

[0008] By the way, among applications for creating documents, drawings, etc., when setting the paper size of the data to be created, some applications refer to the printer capability information of the printer associated with the print queue selected by the application and display the paper sizes in the printer capability information so that they can be selected. When using a general-purpose printer driver, such applications have a problem that even if the user wants to create a document or drawing data in a size not included in the paper sizes of 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 prior art.

[0010] An object of the present invention is to provide a technique that can create data in a paper size not supported by a printer even when using an application that acquires a paper size by referring to printer capability information associated with a print queue selected by the application using a general-purpose printer driver.

Means for Solving the Problems

[0011] In order to achieve the above object, one aspect of the present invention Application program has the following configuration. That is, An application program that collaborates with an operating system pre-installed with a general-purpose printer driver compliant with IPP (Internet Printing Protocol). When the application program is executed by an information processing device, the information processing device causes an image forming device to transmit print data. The operating system has device capability information. The application program has information predefined as a predetermined paper size. The information processing device has a data generation application program that generates data to be printed. The application program causes the information processing device to Based on the paper size capability information included in the capability information acquired from the image forming device, add information on the output paper size to the device capability information, and use the predefined information including paper sizes not included in the capability information acquired from the image forming device to set the paper size capability information in the device capability information. Update the update Step and A reception step of receiving, from a user, a selection of a first option or a second option as the output paper size based on the device capability information; Before Obtain the intermediate data generated by the operating system. Obtain Step and The selection received in the reception step and Based on the intermediate data And Generate print data. Generate The and Step are Cause to execute , The data to be printed includes pages with paper sizes different from that of the first page. In the reception step, when the first option is selected, in the generation step, generate the print data in the paper size specified in the data to be printed. , In the reception step, when the second option is selected, in the generation step, generate the print data to be printed with the paper size specified in the data to be printed set to the paper size of the second option. It is characterized by this.

Effect of the Invention

[0012] According to the present invention, in the case of using a general-purpose printer driver, in an application that obtains the paper size from the printer's capability information, there is an effect that data can be created by selecting a paper size not supported by the printer.

[0013] Other features and advantages of the present invention will become apparent from the following description with reference to the accompanying drawings. In the accompanying drawings, the same or similar configurations are assigned the same reference numerals.

Brief Description of the Drawings

[0014] The accompanying drawings are included in the specification, form a part thereof, show embodiments of the present invention, and are used to explain the principles of the present invention together with the description.

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6A

Figure 6B

Figure 7

Figure 8

Figure 9

Figure 10A

Figure 10B

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Best Mode for Carrying Out the Invention

[0015] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiments, not all of these plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the accompanying drawings, the same or similar configurations are denoted by the same reference numerals, and redundant descriptions are omitted.

[0016] [Embodiment 1] First, Embodiment 1 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 Embodiment 1.

[0018] In this printing system, a client terminal 101, a cloud printing server 102, an application management server 103, a cloud printing-compatible printer 104, and an online support server 105 are connected via a network 107. Note that in FIG. 1, one client terminal 101 and one cloud printing-compatible printer 104 are shown, but there may be a plurality of client terminals 101 and cloud printing-compatible printers 104.

[0019] Also, the cloud printing server 102, the application management server 103, and the online support server 105 may each be a server system composed of a plurality of information processing devices. By configuring each server as a server system composed of a plurality of information processing devices in this way, the load can be distributed among the plurality of information processing devices.

[0020] Also, the cloud printing server 102, the application management server 103, and the online support server 105 may be virtually configured inside a single physical information processing device. Also, although the network 107 assumes a WAN such as the Internet for connection to cloud services, all may be in a closed environment such as an in-house LAN.

[0021] The client terminal 101 is an information processing device such as a PC, a tablet, or a smartphone, and is an information terminal 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, and a document generation app 315, which will be described later.

[0022] The cloud print-compatible printer 104 is a device that actually performs printing on a recording medium such as paper, and is an image forming apparatus that converts print data received via the network 107 into image data and prints it. This cloud print-compatible printer 104 can receive print data from the client terminal 101 via the cloud print server 102. Also, it is 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 the print data generated by the cloud printer driver 311 of the client terminal 101 via the cloud print server 102. Also, the cloud print-compatible printer 104 receives the print data generated by the 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 the outside. Then, the cloud print server 102 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 the identification information of an application and a download request from the client terminal 101, it transmits the application specified based on the received identification information to the client terminal 101.

[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 for providing an extended setup information file in which information for expanding the functions of the client terminal 101 is described to the client terminal 101.

[0026] Next, referring to FIG. 2, the hardware configurations of the client terminal 101, servers 102, 103, 105, and cloud-compatible printer 104 included in the printing system according to Embodiment 1 will be described.

[0027] FIG. 2(a) is a block diagram for explaining the hardware configuration of the client terminal 101 according to Embodiment 1.

[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 an SSD, and can store and rewrite 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 expands the program stored in the storage unit 214 into the memory 213 and executes it. The memory 213 is the main memory of the CPU 212 and is used as a temporary storage area for expanding work areas and various programs. The network communication unit 215 communicates with an external network 107 and performs input / output of digital data with external servers, client terminals, etc. via the network 107. The display unit 216 displays visual information to the user, such as a liquid crystal display. The operation unit 217 receives input from the user by means of a keyboard, a pointing device, etc. A device having both functions of the display unit 216 and the operation unit 217, such as a touch panel, may be used.

[0029] FIG. 2(b) is a block diagram for explaining the hardware configuration of the cloud print server 102 according to Embodiment 1.

[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. Since the descriptions of the storage unit 224, the control unit 221, and the network communication unit 225 are basically equivalent to the corresponding parts of the client terminal 101, they are omitted here. Note that the cloud print server 102 is described as being composed of a single information processing device having the hardware configuration shown in Fig. 2(b), but the cloud print server 102 may also be composed of a plurality of information processing devices shown in Fig. 2(b).

[0031] Fig. 2(c) is a block diagram for explaining the hardware configuration of the application management server 103 according to Embodiment 1.

[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. Since the 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 basically equivalent to the corresponding parts of the client terminal 101, they are omitted here. Note that the application management server 103 is described as being composed of a single information processing device having the hardware configuration shown in Fig. 2(c), but the application management server 103 may also be composed of a plurality of information processing devices.

[0033] Fig. 2(d) is a block diagram for explaining the hardware configuration of the cloud print-compatible printer 104 according to Embodiment 1.

[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, such as a touch panel and an LED provided in the cloud print-compatible printer 104. The operation unit 247 receives input from the user and may include hard keys such as a numeric keypad in addition to the touch panel. The control unit 241 includes a CPU 242 and a memory 243. Since the storage unit 244 and the control unit 241 are basically equivalent to the corresponding parts of the client terminal 101, the description thereof is omitted. The network communication unit 245 communicates with an external network 107. The network communication unit 245 mainly has the role of receiving print data and transmitting information about the state of the cloud print-compatible printer 104, such as errors, to an external server or the like.

[0035] The printing unit 248 performs a printing process by performing a series of operations of feeding paper, printing, and discharging paper on the paper (sheet) prepared in the cassette or tray. The printing method here is not particularly limited, such as an electrophotographic method or an inkjet method. Finishing devices such as a duplex unit, stapler, and punching process used at the time of paper discharge are also included in the printing unit 248.

[0036] In addition, in the first embodiment, a single-function printer that only performs a printing function is described as an example of the cloud print-compatible printer 104, but a multifunction printer (MFP) that also has a scanner function and a FAX function may be used.

[0037] FIG. 2(e) is a block diagram for explaining the hardware configuration of the online support server 105 according to the first embodiment. In the first embodiment, the online support server 105 is described as being configured by a single information processing device, but it may be configured by a plurality of information processing devices.

[0038] The online support server 105 includes a display unit 256, an operation unit 257, a storage unit 254, a control unit 251, and a network communication unit 255. Since the functions of the display unit 256 and the operation unit 257 are the same as those of the display unit 216 and the operation unit 217 of the client terminal 101, the description thereof is omitted. The storage unit 254 is a memory device such as an HDD or an SSD. The storage unit 254 stores an extended setup information file which is a file in which information for expanding the functions provided by the client terminal 101 is described.

[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 the processes 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 for acquiring 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, with reference to FIG. 3, an example of the user procedure in Embodiment 1 and the sequence among each software and the print service will be described.

[0041] FIG. 3 is a diagram for explaining an example of a sequence in which the client terminal 101 installs a print setting extension application 312 for the cloud print-compatible printer 104 from the online support server 105 in the print system according to Embodiment 1.

[0042] First, the cloud print-compatible printer 104 accepts a printer registration operation from the user to register the cloud print-compatible printer 104 with the cloud print service 321. As a result, in S301, the cloud print-compatible printer 104 sends a registration request for the printer to the cloud print service 321 together with the device identification information of the printer 104. Here, the device identification information sent to the cloud print service 321 is, for example, the HWID (Hardware ID) assigned for 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 sends the URL of the cloud print service 321 for printer registration to the cloud print-compatible printer 104. When the user accesses that URL from the cloud print-compatible printer 104 or an information processing device, an input screen for entering the user ID and password is displayed on the display unit of the terminal that accessed the URL. Therefore, the user enters the 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 sends a request for obtaining information necessary for printer registration to the cloud print-compatible printer 104. As a result, the cloud print-compatible printer 104 sends the printer information to the cloud print service 321 in response to that request.

[0044] Next, the cloud print service 321 that has received the registration request for the printer registers the information of 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 the capability information of the cloud print-compatible printer 104 and associates the capability information with the generated print queue. Here, the capability information is information representing the functions installed in the printer 104, and refers to information necessary for the user to set as print settings during printing, such as double-sided printing available information, color printing available information, stapling available information, etc.

[0045] FIG. 5 is a diagram showing an example of the capability information of the printer in Embodiment 1.

[0046] The capability information is composed of an item name and an attribute value. The item name corresponds to a setting item of the print settings. The attribute value corresponds to a setting value, an option, or a value range that can be set for each setting item. The cloud print-compatible printer 104 stores not only the item names and attribute values defined as industry standard specifications by IPP, but also the item names and attribute values uniquely defined by the printer vendor. Examples of the item names defined as industry standard specifications by IPP include "paper size", "paper type", "color mode", etc.

[0047] On the one hand, among the item names described in FIG. 5, "Handling mixed-sheet printing as a single job" 501 according to Embodiment 1 and its associated attribute values are item names and attribute values defined independently by the printer vendor. In Embodiment 1, mixed-sheet printing refers to printing a document in which different paper sizes are specified for each page by the document generation application 315 according to the specified paper sizes. "Handling mixed-sheet printing as a single job" 501 is an item for setting whether to handle the process of mixed-sheet printing as a single job. In Embodiment 1, when the cloud-print-compatible printer 104 has this item, it is assumed that the printer has the ability to interpret the paper size of each page from the print data and perform printing in a single job according to the setting. Also, when the cloud-print-compatible printer 104 does not have this ability or this setting is off during printing, the process of mixed-sheet printing is assumed to be executed by being divided into multiple jobs. The details of this process will be described later.

[0048] In addition to "Handling mixed-sheet printing as a single job" 501, "Saving the job to the printer" 502, "Shortening the job name" 503, "No-needle binding" of the item "Staple", and its associated attribute values are item names and attribute values defined independently by the printer vendor.

[0049] In Embodiment 1, it is assumed that the cloud print-compatible printer 104 transmits capability information to the cloud print service 321 in accordance with the IPP as a communication protocol. The cloud print-compatible printer 104 registers the capability information using a command prepared for the cloud print-compatible printer 104 to register the capability information with 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 regardless of whether each item and attribute value is defined in the IPP. For example, for "handling mixed paper printing in a single job", "saving a job to the printer", "shortening the job name", and "stitching without needles" shown in FIG. 5, the item names and attribute values are also notified to the cloud print service 321. Also, "saddle stitch", which is an attribute value unique to the printer vendor among the attribute values of the item "folding setting", is registered with the cloud print service 321 as one of the attribute values of "folding setting".

[0050] Next, the installation of the print setting extension application 312 that is performed when the user performs a setup operation for printing with the cloud print-compatible printer 104 on the client terminal 101 will be described. When registering the cloud print-compatible printer 104 with the client terminal 101, the standard printing function, which is one of the functions of the OS 313 of the client terminal 101, is used.

[0051] The OS 313 of the client terminal 101 receives, in S302, an additional operation of the printer, which is a setup operation of the cloud print-compatible printer 104 by the user. Next, the setup operation of the cloud print-compatible printer 104 will be described.

[0052] FIG. 4 is a diagram showing an example of a screen related to the printers registered in the client terminal 101, which is displayed by the OS 313 of the client terminal 101 according to Embodiment 1.

[0053] When the user selects the object 401 on this screen, a printer search instruction is input to the OS 313. The OS 313 that has received this printer search instruction determines whether 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] Thereby, in S304, the cloud print service 321 performs an authentication process using the user information received from the client terminal 101. When the cloud print service 321 completes the authentication process, it notifies the client terminal 101 of the result of the authentication process. Here, 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. Thereby, the OS 313 of the client terminal 101 aborts the process in S307 based on the received authentication error information. If the access token could not be acquired in this way, the OS 313 of the client terminal 101 ends the process described in FIG. 3.

[0055] When the OS 313 holds an access token or when the token is acquired in S305, in S308, the OS 313 of the client terminal 101 searches for the printers registered in the cloud print service 321 and the printers connected to the network 107. At this time, the OS 313 of the client terminal 101 transmits a request for acquiring the information of the printers registered in the cloud print service 321 to perform a printer search. Specifically, the OS 313 of the client terminal 101 transmits a request for acquiring the information of the printers with the access token attached to the cloud print service 321.

[0056] As a result, in S309, the cloud printing service 321 transmits to the client terminal 101 information on printers that the user identified by the access token attached to the acquisition request is permitted to use. Here, the printer information transmitted to the client terminal 101 includes the printer name assigned to the printer registered in the cloud printing service 321 and the HWID of that printer.

[0057] In this way, the OS 313 of the client terminal 101 acquires the list of printers transmitted by the cloud printing service 321 and the device identification information of each printer. Incidentally, in parallel with the processing 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] OS313 displays a list of printers on the client terminal 101 based on the printer information obtained from the cloud printing service 321 and the printer information detected by searching the network 107. In the area 402 of FIG. 4, the printer information received from the cloud printing service 321 is displayed in a list. Among the information displayed in the area 402, "Cloud Printer 001 / 002 / 003" is the information of the printers registered in the cloud printing service 321. On the other hand, "Printer XX" with the icon 404 attached indicates the printer detected by the client terminal 101 searching the network 107. In this way, the printer information obtained from the cloud printing service 321 and the printer information detected by searching the network 107 are displayed in a list. In this list, an icon 403 is added and displayed for the printer information received from the cloud printing service 321, and an icon 404 is added and displayed for the printer information detected by searching the network 107. By doing so, the printer information received from the cloud printing service 321 and the printer information detected by searching the network 107 can be distinguished and displayed. Note that the client terminal 101 may be configured to display only the information of the printers registered in the cloud printing service 321.

[0059] Next, the user selects the printer information corresponding to the printer that the user wants to register on the client terminal 101 from the printer information displayed in the area 402.

[0060] As a result, the OS 313 of the client terminal 101 makes an inquiry to the cloud print service 321 about the printer capability information corresponding to the information of the selected printer at S310. Here, which setting items the OS 313 of the client terminal 101 inquires about the capability information is determined by the specification of the OS 313 and is set in the OS 313. The OS 313 of the client terminal 101 makes an inquiry about the capability information by specifying the setting items stored in advance. The setting items stored in advance in the OS 313 are the setting items defined as standard specifications by IPP, such as items like "paper size", "paper type", and "color mode".

[0061] As a result, the cloud print service 321 responds to the OS 313 of the client terminal 101 with the capability information of the cloud print-compatible printer 104 at S311.

[0062] Note that in Embodiment 1, it is described that the information registered in the cloud print service 321 in the registration request of S301 is transmitted to the client terminal 101 at S311. However, the capability information registered in the cloud print service 321 may be transmitted to the client terminal 101 at timing other than the above. For example, in response to a change in the capability information of the cloud print-compatible printer 104, the capability information registered in the cloud print service 321 may be transmitted to the client terminal 101. Also, when the user instructs an update of the capability information on the user interface provided by the cloud print service 321, the updated capability information may be transmitted to the client terminal 101 according to the instruction. Further, at the timing of S310, the cloud print service 321 may obtain the capability information from the cloud print-compatible printer 104 and notify the obtained capability information to the client terminal 101.

[0063] In this way, in S311, the cloud print service 321 responds with the attribute value and default value corresponding to the specified setting item from the client terminal 101 for the setting item. Here, the responded attribute value is all the attribute values registered in the cloud print service 321 regardless of whether it is an attribute value defined as a standard or not. The default value is the value initially set when the client terminal 101 displays the print settings screen. Note that if the cloud print service 321 does not remember the response to the attribute queried by the OS 313 of the client terminal 101, it does not respond to the query from the OS 313. In this way, the OS 313 starts the 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 of the cloud printer driver 311 having basic device capability information included in the OS 313. The device capability information refers to the definition information necessary for generating the print setting capability information of the printer driver, for example, that described in XML such as PrintDeviceCapabilities.

[0065] FIG. 6A is a diagram showing an example of the initial state device capability information included in the OS 313.

[0066] For example, as shown by reference numeral 601, "Feature" indicates that "psk:PageMediaSize" representing the paper size is a setting item. "Option" indicates the options corresponding to "psk:PageMediaSize". In the initial value of the device capability information, as shown in FIG. 6A, there are only two options, "A4" (ISOA4) and "LETTER" (NorthAmericaLetter), as the paper size. This information is stored in association with the print queue at the time of generating the print queue and is managed by the OS 313. Note that the initial state device capability information is fixed device capability information regardless of the information of the connected printer.

[0067] After that, in S312, the OS 313 updates the device capability information that constitutes 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 the 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, for "psk:PageMediaSize" representing the paper size, "Option" other than "A4" and "LETTER" is added as the paper sizes printable by the cloud print-compatible printer 104. Specifically, they are "A3" (ISO A3), "A5 (ISO A5)", "B4" (JIS B4), etc.

[0069] In this way, the client terminal 101 first associates the device capability information included in the cloud printer driver 311 and the OS 313 and registers it in the print queue. Then, thereafter, 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 by using only the attribute values defined by industry standard specifications among the capability information acquired from the cloud print service 321. Therefore, for example, even if a vendor-specific attribute value is acquired as the paper type in the acquisition of the capability information, the vendor-specific attribute value is not added to the device capability information. By doing so, it becomes possible to set print setting values defined by industry standard specifications that cannot be set with the device capability information included in the OS 313.

[0070] In this way, the installation of the cloud printer driver 311 is completed. By performing the processing up to this point, it becomes possible to transmit print data from the client terminal 101 to the print queue for the cloud print-compatible printer 104 generated by the cloud print service 321.

[0071] Next, the OS 313 starts the installation process of an application that is associated with the registered printer and extends the cloud print driver.

[0072] First, the OS 313 performs the process of adding identification additional information to the device identification information. This is a process necessary when obtaining the extended setup information file 700 (FIG. 7) described later from the online support server 105. By this process, a string different from the normal device identification information may be generated. In the case of Embodiment 1, in order to distinguish from applications of other devices, the OS 313 adds the identification additional information "PrinterApp_" indicating that it is an application corresponding to the printer to the device identification information. Note that "PrinterApp_" is an example, and other strings, numbers, or symbols may be used. As a result of the above process, for example, when the device identification information of the cloud print-compatible printer 104 is "device001", the device identification information after the identification additional information is added becomes "PrinterApp_device001".

[0073] Next, in S313, the OS 313 sends 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. Thereby, "PrinterApp_device001" with the identification additional information is notified to the online support service 351.

[0074] The extended setup information file 700 shown in FIG. 7 is stored in the online support service 351.

[0075] FIG. 7 is a diagram showing an example of the extended setup information file 700 according to Embodiment 1.

[0076] This extended setup information file is a file 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 app used for setting print data to be sent to the cloud print-compatible printer 104. Among the extended setup information files 700 shown in FIG. 7, an item named "PackageFamilyName" 701 is identification information of the print setting extension application. On the other hand, in "PrinterHardwareId" 702, a character string obtained by adding identification additional information to the identification information of the cloud print-compatible printer 104 is described.

[0078] In addition, the online support service 351 stores extended setup information in which identification information of a printer driver is described, in addition to the extended setup information file in which identification information of the print setting extension application is described. In the extended setup information file in which the identifier of the printer driver is described, the identifier of the printer driver is described in "PackageFamilyName". Also, in "PrinterHardwareId" of the extended setup information file, device identification information without the written identification additional information is described.

[0079] Thus, the online support service 351 stores both the extended setup information file in which the identifier of the printer driver is described and the extended setup information file in which the identifier of the print setting application is described. Therefore, the OS 313 adds identification additional information to the device identification information in order to appropriately acquire the necessary extended setup information file.

[0080] The online support service 351 that has received a search request identifies an extended setup information file in which the device identification information with the identification additional information specified in the request matches the "PackageFamilyName" in the file.

[0081] As a result of the search, if the extended setup information file 700 containing the device identification information targeted by the online support service 351 is stored, at S314, the extended setup information file 700 is returned to the OS 313. At this time, the content of the extended setup information file 700 is written to the registry of the OS 313. Next, at S315, the OS 313 associates and installs the extended setup information written in the extended setup information file 700 obtained from the online support service 351 with the print queue generated at S312. Next, at S316, the OS 313 extracts the application ID from the installed extended setup information. This application ID is the identifier defined by "PackageFamilyName" in the extended setup information file 700. The above is the processing when the 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 may be a case where the extended setup information file 700 containing the device identification information targeted by the online support service 351 is not detected. At this time, the OS 313 completes the installation of the cloud print driver and aborts the application installation process at S317. The OS 313 executes the abort process at S317 when the extended setup file cannot be received within a predetermined time from the search request at S313 or when an error notification is received from the online support service 351.

[0083] Next, the processing when the OS 313 can obtain the extended setup file and can extract the application ID at S316 will be described from S318 onwards.

[0084] OS313 requests the application management service 331 at S318 to search for an application whose extracted application ID matches. The application management service 331 stores in association and remembers an application operating on the client terminal 101 and an application ID which is an identifier of the application. The application and the application ID are registered in the application management service 331 by a vendor providing the cloud print-compatible printer 104.

[0085] When the application management service 331 holds a print setting extension application that matches the requested application ID, at 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 given the same ID as the transmitted application ID. Thereby, at S320, OS313 installs the acquired print setting extension application 312 in association with the client-side print queue. At this time, OS313 saves the application ID in the registry as information of the print queue. Also, the print setting extension application 312 is set in OS313 to notify an event at the timing set on the print setting screen for the print queue associated with the application. The print setting extension application 312 installed in this way is started after the power of the client terminal 101 is turned on and OS313 is started, and operates as a background task after startup.

[0086] On the other hand, when the application management service 331 does not hold a print setting extension application that matches the requested application ID, at S321, OS313 aborts the application installation process. In this case, the generated print queue and the cloud printer driver 311 are installed in association, and the print setting extension application 312 is not associated with the print queue and the process ends.

[0087] Further, in the above description, the search for the extended setup file was performed by adding a predetermined string to the device identification information of the cloud print-compatible printer 104. However, when the files for installing the printer driver can be distinguished, the search may be performed without adding the predetermined string.

[0088] Next, with reference to FIG. 8, an example of the user procedure according to Embodiment 1 and the sequence among each software and the print service will be described.

[0089] FIG. 8 is a diagram showing an example of a sequence for explaining the process until the print settings for the cloud print-compatible printer 104 are made by the print settings extension application 312 according to Embodiment 1 and the print data is transmitted.

[0090] The document generation application 315 is an application such as a document data creation application, a drawing data creation application, a photo or image data display application, etc. The document generation application 315 displays a print settings screen (FIG. 9) for selecting a print queue as the initial screen for print settings. In Embodiment 1, the document generation application 315 displays the initial screen for print settings, but the OS 313 may display a similar screen.

[0091] FIG. 9 is a diagram showing an example of the print settings screen displayed by the document generation application 315 according to Embodiment 1.

[0092] On this initial screen for print settings, an object 901 for selecting a print queue, an object group 902 for performing various print settings including an object 906 for setting the paper size, and a print preview image 903 are displayed. Note that the description of each object included in the object group 902 will be described later.

[0093] First, in S801, the OS 313 selects the print queue associated with the printer set as the default printer. Assume that in Embodiment 1, the cloud-print-compatible printer 104 is selected as the default printer. Note that the processing after S801 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 about the capability information of the cloud-print-compatible printer 104 to the cloud queue corresponding to the cloud-print-compatible printer 104 of the cloud print service 321. Here, which setting items to inquire about the capability information is determined in advance according to the specifications of the OS 313. Therefore, the capability information obtained at this timing is the same as that obtained in S311 of FIG. 3 described above. This inquiry is made to the cloud-print-compatible printer 104 using a command of a standard protocol defined by IPP, such as Get-printer-Attributes. When using Get-printer-Attributes, the OS 313 inquires about the capability information determined by it in a list format.

[0095] Thereby, 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 the capability information sent by Get-printer-Attributes. For example, assume that the paper size attribute is specified by Get-printer-Attributes (IPP). If the cloud print service 321 holds the paper size attribute, it responds with the value (A4, B5, Letter, etc.) associated with that attribute. If the attribute specified by Get-printer-Attributes does not exist in the queue of the cloud-print-compatible printer 104 of the cloud print service 321, no response of the associated value is made. The capability information obtained in S803 is merely the capability information to be inquired regardless of the type and capabilities 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 printing 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. When there is an update to the device capability information, by performing S803, the device capability information managed by the client terminal 101 can be updated. Note that in the update of the device capability information in S804, the device capability information is updated only for the attribute values defined by the industry standard specifications.

[0097] Next, the process proceeds to S805, and the OS 313 notifies the print setting extension application 312 of the API (Application Programming Interface) used for editing events and device capability information. The notification timing of this event is registered when the print setting extension application 312 is installed in the OS 313 of the client terminal 101.

[0098] When the Print Settings Extension App 312 receives this event, at S806, it sends a request to the Cloud Print Service 321 to obtain the capability information. The acquisition of the capability information performed here is for writing the setting items and attribute values defined independently by the printer vendor into the device capability information. At this time, when the Print Settings Extension App 312 receives an event from the OS 313 at S805, at S806, it inquires about the capability information of the Cloud Print-compatible Printer 104 via the Cloud Print Service 321. At this time, the Print Settings Extension App 312 inquires of 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 made using Get-printer-Attributes in the same way as S802 in FIG. 8, and the capability information is obtained by specifying the item name of the setting item to be inquired about as the item name. Note that in Embodiment 1, at S806, it will be described that the capability information of the setting items defined independently by the printer vendor and the setting items including the attribute values defined independently by the printer vendor is acquired. However, it may be possible to acquire the capability information for the setting items that have already been acquired in the acquisition of the capability information by the OS 313 as well.

[0099] When the Cloud Print Service 321 receives an inquiry about the unique capability information from the Print Settings Extension App 312, at S807, it responds to the Print Settings Extension App 312 with the capability information of the Cloud Print-compatible Printer 104. The response method here is the same as S803 in FIG. 8 described above. In Embodiment 1, at S807, the Cloud Print Service 321 responds with the capability information of the Cloud Print-compatible Printer 104 stored in the Cloud Print Service 321. Note that it may be possible that in response to the request at S806, the Cloud Print Service 321 re-acquires the capability information from the Cloud Print-compatible Printer 104 and responds to the client terminal 101. In Embodiment 1, by S806 and S807, the Print Settings Extension App 312 can acquire the capability information of "handling mixed paper printing in a single job", which is a setting item unique to the printer vendor.

[0100] Next, in S808, when the print settings extension app 312 acquires the capability information of the cloud print-compatible printer 104, it edits the device capability information managed by the OS 313 via the configuration information object. The configuration information object is a set of data groups necessary for editing the device capability information. The print settings extension app 312 cannot directly edit the device capability information held by the OS 313. Therefore, this configuration information object is used to change the device capability information held by the OS 313.

[0101] For example, in S807 of FIG. 8, when acquiring capability information such as "handling mixed paper printing in a single job", it is converted into device capability information and added to the configuration information object to edit the device capability information. Also, at this time, the print settings extension app 312 rewrites the content of "psk:PageMediaSize" representing the paper size of the device capability information to information including paper sizes not supported by the cloud print-compatible printer 104. This rewrite is a rewrite to the information predetermined by the print settings extension app 312 regardless of the information acquired in S807. Furthermore, the print settings extension app 312 adds "ns0000:PageOutputMediaSize" as a printer vendor-specific setting item. And as its attribute value, the paper sizes included in the "psk:PageMediaSize" acquired in S807 are added. By performing the processing up to S808 in this way, in addition to the capability information regarding the standard setting items acquired by the inquiry of the OS 313, the printer vendor-specific setting items and attribute values are stored in the device capability information.

[0102] An example of the device capability information edited in S808 in this way is shown in FIGS. 10A and 10B.

[0103] In FIGS. 10A and 10B, reference numeral 1001 represents the setting item of "psk:PageMediaSize". In addition to the paper sizes shown in FIG. 6B, A2, A1, A0, B5, and B3 are added as setting values. Further, reference numeral 1002 represents the 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 described. Also, a setting value of "the same as the original size" ("ns0000:MatchPageMediaSize") for performing mixed paper printing is to be added. Further, reference numeral 1003 ("ns0000:SingleJobMixedPageMediaSizePrint") represents the setting item of "handling mixed paper printing in a single job". This setting item is for controlling the handling of mixed paper printing, which is printing when different paper sizes are specified for each page. In the example of FIG. 10B, there are two types corresponding to on ("ns0000:Enable") and off ("ns0000:None") as setting values. When the setting value can be set to on in this item, the cloud print-compatible printer 104 can interpret the page-by-page paper size setting and print while switching the paper size. If this item does not exist or the off is set, the print setting extension application 312 is to generate print data with the job split at the page where the paper size changes.

[0104] Next, in S809, the print settings extension app 312 passes the edited device capability information to the OS 313. Thereby, the OS 313 associates the device capability information obtained from the print settings extension app 312 with the print queue and stores it. When the OS 313 updates the device capability information in this way, in S810, an object that triggers the display of the UI of the print settings extension app 312 becomes valid. The object that triggers the display of the UI of this print settings extension app 312 is, for example, the object (Other settings) 904 in FIG. 9. Until the process of S810 is completed, the object 904 is grayed out, and even if the user clicks, the print settings screen of the print settings extension app 312 is not displayed. When the process of S810 is completed, the graying out of the object 904 is released, and the user can select the object 904. Also, in the object 906 for setting the paper size in FIG. 9, the paper sizes added to "psk:PageMediaSize" by the print settings extension app 312 in S808 can be selected.

[0105] In addition, when setting the paper size of the original in the document generation app 315 other than during printing, if the print queue selected by the document generation app 315 is associated with the print settings extension app 312, it is assumed that the processes of S801 to S809 are performed. At this time, as the print queue to be selected, the document generation app 315 may display a selection UI for the user to select, or if it has already been selected on the screen in FIG. 9, that print queue may be used. Or, if no selection has been made on the screen in FIG. 9, the print queue of the default printer set in the OS 313 may be used. Thereby, even when the document generation app 315 sets the paper size of the original, the paper sizes added to "psk:PageMediaSize" by the print settings extension app 312 in S808 can be selected.

[0106] When the user selects the object 904 in this way, the print settings extension app 312 is launched, and in S811, a print settings screen as shown in, for example, FIG. 12 is displayed. This print settings screen does not depend on the type of document generation app 315 to be used.

[0107] In addition, when the print settings extension app 312 is not associated with the selected print queue, a standard print settings screen pre-installed in the OS 313 is displayed as shown in, for example, FIG. 11(a).

[0108] FIG. 11 is a diagram showing an example of a standard print settings screen when the print settings extension app 312 is not associated with the selected print queue.

[0109] On this standard print screen, by pressing the detailed settings button 1101, the detailed print screen in FIG. 11(b) is displayed, and a detailed print screen for setting setting items that cannot be fully displayed in FIG. 11(a) is displayed. Note that the detailed print screen shown in FIG. 11(b) can be scrolled by operating the scroll bar, and print settings can be made for a plurality of setting items supported by the OS 313 as shown in FIGS. 11(c) and (d). Also, by selecting the OK button 1102 in FIG. 11(b), the set print settings can be saved and returned to FIG. 11(a). The apply button 1103 in FIG. 11(a) is a button for saving the print settings set on this screen, and the cancel button 1104 is a button for returning to the screen in FIG. 9 without saving the print settings. When the OK button 1105 in FIG. 11(a) is selected, the print settings are saved and returned to the screen in FIG. 9. Note that in FIGS. 11(a) to (d), print setting items and attribute values uniquely defined by the printer vendor cannot be set. Also, since the print settings extension app 312 is not associated, the paper size added to "psk:PageMediaSize" by the print settings extension app 312 cannot be set either.

[0110] Let's get back to the print settings extension app 312.

[0111] FIG. 12 is a diagram showing an example of a print settings screen when a print settings extension app 312 is associated with the selected print queue.

[0112] The print settings extension app 312 receives print settings information generated based on the print settings capability information generated by the OS 313 from the device capability information, and displays an extended print settings screen as shown in FIG. 12(a), for example. This extended print settings screen can be scrolled by operating the scroll bar as shown in FIGS. 12(a) to (d), and the setting values of various print settings items can be set.

[0113] For example, the "Original Size" of setting item 1201 in FIG. 12 is print settings information corresponding to "psk:PageMediaSize" in FIG. 10A. In the following description, the original size shall represent the paper size specified by "psk:PageMediaSize" in the print settings information. Also, "A4", which is an option for the original size, is print settings information corresponding to "psk:ISOA4" in FIG. 10A. Similarly, the "Output Paper Size" of setting item 1202 is print settings information corresponding to "ns0000:PageOutputMediaSize" in FIG. 10B. In the following description, the output paper size shall represent the paper size specified by "ns0000:PageOutputMediaSize" in the print settings 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 print settings information corresponding to "ns0000:MatchPageMediaSize" in FIG. 10B.

[0114] The original size shall be the paper size set in the document generation application 315. However, if there is no size specification by the document generation application 315, the print setting extension application 312 shall specify the default size (for example, A4). In the first embodiment, if the paper size varies by page, the paper size of the first page shall be selected and displayed as the original size. When the original size is changed in the setting item 1201 and the object (OK) 1204 described later is pressed to save the setting, the setting value of "psk:PageMediaSize" in the print setting information is changed. However, if the document generation application 315 specifies the original size it has as the print setting information again at the time of the print instruction in S813, ultimately, the change in the setting item 1201 will not be reflected in the print.

[0115] The output paper size is an item for specifying 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 a setting item specified by the document generation application 315. Therefore, in the initial state, "the same as the original size" shall be displayed as an option. When "the same as the original size" is specified for the output paper size, the print setting extension application 312 generates print data according to the original size of each page specified by the document generation application 315. For example, if the original size of all pages is A4, print data for printing all pages on A4 paper is generated. When the original size of the first page is A4 and the original size of the second page is A3, print data for printing the first page on A4 paper and the second page on A3 paper is generated. Also, when a specific paper size other than "the same as the original size", for example, A5, is specified for the output paper size, the print setting extension application 312 generates print data for printing all pages on the specified A5 paper. At this time, enlargement or reduction is performed as necessary to generate the print data. When the output paper size is changed in the setting item 1202 and the object (OK) 1204 described later is pressed to save the setting, the setting value of "ns0000:PageOutputMediaSize" in the print setting information is changed. Since the setting of the output paper size is a setting item unique to the printer vendor, the value set in the print setting information by this is different from the original size and is reflected in the printing without being changed by the document generation application 315 at the time of printing execution.

[0116] "Treat mixed paper printing as a single job" in the setting item 1203 of 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 described in the print data generation flow of the print setting extension application 312 in FIG. 16.

[0117] In this way, the print settings extension app 312 can convert device capability information including printer vendor-specific setting items into set values and display an extended print settings screen. Also, the print settings extension app 312 can, according to its own implementation, display printer vendor-specific print setting items on the extended print settings screen. Therefore, on the extended print settings screen shown in FIG. 12, it is possible to set setting items and set 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 settings extension app 312. The object 1204 is an object for finalizing the print settings with the content of that screen. The print settings extension app 312 provides a function to arbitrarily change the print settings by the user, and saves the set value when changed. 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 settings extension app 312 changes from A4 to A3. When the object 1204 is selected, the print settings extension app 312 acquires the print setting information processed within the control of the print settings screen from the print settings screen, and passes that print setting information to the OS 313.

[0119] In this way, when the print settings extension app 312 passes the print setting information to the OS 313, at S812, it ends the display of the print settings screen shown in FIG. 12. When the process of S812 is completed, the print settings screen shown in FIG. 9 is displayed. At this time, the displayed print settings screen is the screen with the set values set by the print settings extension app 312.

[0120] Next, when the user selects the object (Print) 905 on the screen shown in FIG. 9, at S813, a print instruction is input from the document generation app 315 to the OS 313. The OS 313 executes print-related processing based on the print instruction input via the document generation app 315.

[0121] When the execution of printing is instructed in OS313, at S814, it 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 in the print setting screen section to the print setting extension application 312. Here, the intermediate data is data generated before being converted into print data such as PDL (Page Description Language), and for example, XPS (XML Paper Specification) data corresponds to this. The print setting information is also included in this intermediate data.

[0122] When the print setting extension application 312 receives the intermediate data and the print setting information from OS313, at S815, it generates print capability information and print data based on the intermediate data and the print setting information. The print data refers to PDL such as a PDF (Portable Document Format) file, for example, and specifically, the print capability information is information described with attribute values defined by IPP for the print setting information. Then, at S816, the print setting extension application 312 passes the generated print data and print capability information to the print queue of OS313.

[0123] S814 to S816 are processes when the print setting extension application 312 associated with the print queue is installed on the client terminal 101. Incidentally, there is no print setting that cannot be reflected without the print setting extension application 312, and when it can be determined that no processing specific to the print setting extension application 312 is required, the print setting extension application 312 may receive the intermediate data as PDF. In that case, the received PDF may be passed to the OS as print data as it is.

[0124] On the other hand, when the print setting extension app 312 is not installed on the client terminal 101, the client terminal 101 executes the 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. Here, the predetermined format is, for example, PDF, PWG-Raster, etc. Then, in S818, the OS 313 transmits the print data and print capability information passed from the print setting extension app 312, or the print data and print capability information generated by the OS 313, to the cloud print service 321 via the print queue. And 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. Note that, in Embodiment 1, when the cloud print service 321 receives the print data and print capability information, it is assumed that the received print data and capability information are transmitted to the cloud print-compatible printer 104. However, it is also possible that the cloud print-compatible printer 104 periodically makes an inquiry to the cloud print service 321 to obtain unprinted print data and the print capability information corresponding to the print data.

[0125] By doing the above, it is possible to transmit the print data reflecting the print settings made using the print setting extension app 312 to the cloud print-compatible printer 104 via the cloud print service 321.

[0126] FIG. 13 is a flowchart for explaining the processing of the OS 313 until the print setting extension app 312 is installed on the client terminal 101 in Embodiment 1. Note that the 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 the 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 it stores an access token for the cloud print service 321. The client terminal 101 stores an access token for obtaining information from the cloud print service 321 for each user who logs in to the client terminal 101. The CPU 212 determines whether an access token associated with the user logged in to the client terminal 101 is stored. If the access token is stored, the CPU 212 advances the process to S1306. On the other hand, if the access token is not stored, the process proceeds to S1303, where the CPU 212 sends 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. In S1304, the CPU 212 accesses the received URL, displays a screen for inputting information used for authentication, and receives the authentication information input via the screen. Here, the authentication information is, for example, a user ID (user identifier) or a password. In S1305, the CPU 212 sends the input authentication information to the cloud print service 321 to obtain an access token and proceeds to S1306. If the 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 a request to the cloud print service 321 to obtain information about the printers registered in the cloud print service 321. As a result, the cloud print service 321 selects the information about the printers available to the user identified by the received access token and sends it to the client terminal 101. Here, the printer name and the HWID of the printer registered in association with the printers available to the user identified by the access token received from the client terminal 101 are sent to the client terminal 101.

[0129] Then, it proceeds to S1307, and the CPU 212 displays the printer information obtained 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 as shown in, for example, area 402 of FIG. 4.

[0130] Next, in S1308, the CPU 212 determines whether printer information has been selected in area 402 of FIG. 4. The CPU 212 repeats the process of S1308 until printer information is selected. When printer information is selected, it proceeds to S1309, and the CPU 212 sends a request to the cloud print service 321 to obtain the capability information of the selected printer. Here, an inquiry is made to the cloud print service 321 about the setting items pre-registered in the OS 313.

[0131] Next, proceeding to S1310, the CPU 212 updates the device capability information stored in the client terminal 101 based on the printer capability information obtained from the cloud print service 321 and generates a print queue. Then, proceeding to S1311, the CPU 212 sends a request to the online support service 351 to obtain the extended setup information file 700. This acquisition request includes the HWID of the printer. Then, proceeding to S1312, the CPU 212 determines whether the acquisition of the extended setup information file 700 was successful. If the acquisition of the extended setup information file 700 was successful, the CPU 212 advances the process to S1313. On the other hand, if the acquisition of the extended setup information file 700 fails, the CPU 212 ends the process described in FIG. 13.

[0132] At S1313, the CPU 212 sends a request to the application management service 331 to obtain the print setting extension application described in the acquired extended setup information file 700. The CPU 212 obtains the application identifier of the print setting extension application from the extended setup information file 700 and specifies the obtained application identifier to send a request to the application management service 331 to obtain the print setting extension application. Then, proceeding to S1314, the CPU 212 determines whether the acquisition of the print setting extension application was successful. If the acquisition of the print setting extension application fails, the CPU 212 ends the process described in FIG. 13. If the acquisition of the print setting extension application is successful, the process advances to S1315, where the CPU 212 installs the acquired print setting extension application and registers the application identifier of the print setting extension application by associating it with the print queue. Furthermore, an event registration indicating the notification timing is performed for the OS 313. Here, when a print queue associated with the print setting extension application is selected on the print setting screen displayed by the document generation application 315, an event is registered to be notified to the print setting extension application. The above is the process until the print setting extension application is registered in the client terminal 101.

[0133] Next, with reference to FIG. 14, a process in which the client terminal 101 performs print settings using the installed print settings extension app 312 and generates print data will be described.

[0134] FIG. 14 is a flowchart for explaining a process in which the client terminal 101 according to Embodiment 1 performs print settings using the print settings extension app 312 and generates print data. Note that the program for executing this process is stored in the print settings extension app 312, and the program is expanded 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 it has received an event notification. Here, the event is an event issued by the OS 313, and is an event that notifies the print settings extension app 312 that it is the timing registered in S1315 of FIG. 13. If the CPU 212 has not received an event notification in S1401, the process of S1401 is repeated. When the CPU 212 receives an event notification in S1401, it proceeds to S1402 and sends a request for acquiring capability information to the cloud print service 321. Here, the CPU 212 sends a request for acquiring capability information to the cloud print service 321 regarding the setting items set in the print settings extension app 312. Here, capability information is also acquired for the setting items that were not acquired in S1306 of FIG. 13. Then, it proceeds to S1403, and the CPU 212 determines whether or not the acquisition of the capability information has been completed. If the acquisition of the capability information has not been completed in S1403, the process of S1403 is repeated. When it is determined in S1403 that the acquisition of the capability information has been completed, it proceeds to S140 4 where the CPU 212 updates the device capability information with the acquired capability information. By performing the process of S1404, the capability information for the setting items that the OS 313 does not acquire is also stored in the client terminal 101. Details of the process of S1404 will be described later with reference to the flowchart of FIG. 15.

[0136] Next, the process proceeds to S1405, where the CPU 212 determines whether it has received an instruction to display the print settings screen by the print settings extension app 312. The instruction to display the print settings screen by the print settings extension app 312 is an instruction issued based on a user operation such as the selection of the object (other settings) 904 in FIG. 9, for example. If it is determined in S1405 that the instruction to display the print settings screen has not been received, the process proceeds to S1412. On the other hand, if it is determined that the instruction to display the print settings screen has been received, the process proceeds to S1408.

[0137] In S1408, the CPU 212 displays a print settings screen as shown in FIG. 12, for example, based on the device capability information updated in S1404. Then, it receives a user operation to select a setting value via the displayed print settings screen. Then the process proceeds to S1410, where the CPU 212 determines whether an instruction has been given by the OK object to end the display of the print settings screen by the print settings extension app 312. If it is determined that the instruction to end the display of the print settings screen has not been given, the process of S1410 is performed. If it is determined that the instruction to end the display of the print settings screen has been given, the process proceeds to S1411. In S1411, the CPU 212 edits the print settings information with the setting value selected on the print settings screen displayed by the print settings extension app 312. Then the CPU 212 ends the display of the print settings screen by the print settings extension app 312 and proceeds to S1412.

[0138] In S1412, the CPU 212 determines whether the print setting extension app 312 has received intermediate data from the OS 313. If no intermediate data has been received here, the process proceeds to S1405. On the other hand, when it is determined in S1412 that intermediate data has been received, the process advances to S1413. In S1413, the CPU 212 causes the print setting extension app 312 to generate print data and print capability information based on the received intermediate data. Here, the CPU 212 generates image data in a predetermined format based on the intermediate data and the print setting information. Also, the CPU 212 generates print capability information described with attribute values defined in IPP based on the print setting information. In addition to the attribute values defined in IPP, this print 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 print capability information. Details of the process in S1413 will be described later with reference to the flowchart in FIG. 16. Then, the process advances to S1414 and the CPU 212 provides the generated print data to the OS 313 to end this process. Thereby, the OS 313 transmits the data received via the print queue to the cloud print service 321.

[0139] The above is a flowchart showing the process when performing print settings using the print setting extension app 312 and generating print data and print capability information.

[0140] FIG. 15 is a flowchart for explaining the process of updating the device capability information in S1404 of FIG. 14. The program for executing the process described in FIG. 15 is stored in the print setting extension app 312, and the program is expanded in the memory 213 of the client terminal 101 and executed by the CPU 212.

[0141] In S1501, based on the paper size information of "psk:PageMediaSize" in the capability information obtained in S1402, the CPU 212 adds an item of "ns0000:PageOutputMediaSize" unique to the printer vendor to the device capability information. At this time, if the item already exists in the device capability information, the content of the item is updated. If there is no difference in the content, there is no need to update. When adding or updating, regardless of the obtained capability information, a setting value of "the same as the original size" is included. For example, assume that the paper sizes supported by the printer obtained from the printer are as shown in "psk:PageMediaSize" in FIG. 6B. In this case, as the device capability information, an item of "ns0000:PageOutputMediaSize" as shown by reference numeral 1002 in FIG. 10B is added. At this time, the same items as the PageMediaSize obtained from the printer are added to the PageOutputMediaSize added. Furthermore, an Option is added to the PageOutputMediaSize so that "the same paper size as the original size" can be selected. If the PageOutputMediaSize has been added to the device capability information, the process described in S1501 may not be performed.

[0142] Next, proceed to S1502. Regardless of the capability information obtained in S1402, the CPU 212 updates the content of "psk:PageMediaSize" with predetermined content. This is to enable the document generation application 315 to handle paper sizes that the printer does not support. For example, assume that the paper sizes supported by the printer obtained from the printer are as shown in "psk:PageMediaSize" in FIG. 6B. However, as the device capability information, it is updated with the content of "psk:PageMediaSize" as shown by reference numeral 1001 in FIGS. 10A and 10B predetermined in the print setting extension application 312.

[0143] Next, the process proceeds to S1503, where the CPU 212 determines whether there is an item of "ns0000:SingleJobMixedPageMediaSizePrint" in the capability information obtained in S1402. This is an item for "handling mixed-page media size printing in a single job". If this item exists, the process proceeds to S1504; if this item does not exist, the process proceeds to S1505. In S1504, the CPU 212 adds and updates the device capability information together with the attribute value obtained for the item of "ns0000:SingleJobMixedPageMediaSizePrint". As a result, as shown by reference numeral 1003 in FIG. 10B, "ns0000:SingleJobMixedPageMediaSizePrint" is described, and "ns0000:None" and "ns0000:Enable" are described as its configurable values. In this way, the CPU 212 finishes updating the device capability information.

[0144] On the other hand, in S1505, the CPU 212 determines whether there is an item of "ns0000:SingleJobMixedPageMediaSizePrint" in the device capability information. If this item exists, the process proceeds to S1506; if this item does not exist, the update of this device capability information is finished. In S1506, the CPU 212 deletes the item of "ns0000:SingleJobMixedPageMediaSizePrint" existing in the device capability information and finishes the update of this device capability information. By doing so as in S1506, it is possible to suppress the display of a mixed-page setting object even though the printer does not support mixed-page printing.

[0145] FIG. 16 is a flowchart for explaining the print data generation process of S1413 in FIG. 14 according to Embodiment 1. The program for executing this process is stored in the print setting extension application 312, and this program is expanded 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 "the same as the original size". The set value of the output paper size is the value set in the setting item (output paper size) 1202 in FIG. 12. If the set value of the output paper size is "the same as the original size" here, the process proceeds to S1602; if the setting of the output paper size is other than "the same as the original size", the process proceeds to S1611.

[0147] In S1602, the CPU 212 determines whether the setting of handling mixed paper printing in a single job ("ns0000:SingleJobMixedPageMediaSizePrint") is on or off from the print setting information of the intermediate data received from the OS 313. If this setting item is on, the process proceeds to S1613; if this setting item is off or the item itself does not exist, the process proceeds to S1603.

[0148] In S1603, the CPU 212 refers to the intermediate data received from the OS 313, and holds the first page in the storage unit 214 as the first page of the first job according to the print order of the pages. The subsequent processing from S1603 to S1610 is the processing for realizing mixed paper printing by the print setting extension application 312 splitting the job when the printer does not have the ability to handle mixed paper printing in a single job or the setting for handling in a single job is off.

[0149] In S1604, the CPU 212 holds the original size of the page held in S1603 ("psk:PageMediaSize" of the print setting information of that page) in the storage unit 214 associated with that job. The set value of the original size is the value set in the setting item (original size) 1201 in FIG. 12 or the value specified by the document generation application 315 at the time of print instruction. Next, the process proceeds to S1605, and the CPU 212 refers to the intermediate data received from the OS 313 and determines whether there is a next page according to the print order of the pages.

[0150] At S1606, the CPU 212 acquires the manuscript size of the next page. Next, it proceeds to S1607 where the CPU 212 refers to the manuscript size of the next page acquired at S1606 and determines whether the manuscript size is the same as the manuscript size held in association with the job of the previous page. If the manuscript sizes are the same here, it proceeds to S1608; if the manuscript sizes are different, it proceeds to S1609. At S1608, the CPU 212 stores the page for which the manuscript size was acquired at S1606 in the storage unit 214 as the next page of the job of the previous page and returns the process to S1605.

[0151] On the other hand, at S1609, the CPU 212 stores the page for which the manuscript size was acquired at S1606 in the storage unit 214 as the first page of a new job different from the job of the previous page. Then it proceeds to S1610 where the CPU 212 stores the manuscript size of the page held at S1609 (i.e., the manuscript size acquired at S1606) in association with the new job in S1609 in the storage unit 214 and proceeds to S1605.

[0152] FIG. 17 is a diagram for explaining an example of intermediate data generated by the processes of S1603 to S1610 in FIG. 16.

[0153] For example, assume that the document to be printed is as shown in FIG. 17(a), and the manuscript sizes of the first page and the fourth page are A4, and the manuscript sizes of the second page and the third page are A3 as specified by the document generation application 315. At this time, the intermediate data received by the print setting extension application 312 from the OS 313 is as shown in FIG. 17(b).

[0154] In Fig. 17(b), the output paper size setting of the print setting information is set to "the same as the original size", and the original size of each page is set according to the information specified by the document generation application 315. When the processes of S1603 to S1610 are performed on such intermediate data, in the print setting extension application 312, data in which the job is split as shown in Fig. 17(c) is retained. That is, starting from the first page of the print document, it is divided into three jobs for each original size. The first job 1 includes the first page of the print document, the second job 2 includes the second to third pages of the print document, and the third job 3 includes the fourth page of the print document. And A4 is associated with and retained as the original size for job 1 and job 3, and A3 is associated with and retained as the original size for job 2. Note that Fig. 17(c) is a schematic diagram, and the data format to be retained may be the same data format as the received intermediate data or another data format.

[0155] In S1601, when the output paper size setting is other than "the same as the original size", the process proceeds to S1611, and the CPU 212 generates print data and print capability information according to the intermediate data, and ends this process. At this time, when the original size of the print setting information of each page is different from the output paper size setting, the print setting extension application 312 generates print data enlarged or reduced to the paper size set by the output paper size as necessary. Also, as the print capability information, the information of the original size is changed to the paper size set by the output paper size.

[0156] Also, when it is determined in S1605 that there is no next page, the process proceeds to S1612, and the CPU 212 generates the print data and print capability information of each job created in the processes of S1603 to S1610, and ends this process. At this time, the original size associated with each job is set as the original size of the print capability information of each job.

[0157] Also, when it is determined in S1602 that mixed - paper printing is to be handled as a single job and is on, the process proceeds to S1613. The CPU 212 generates print data and print - ability information for mixed - paper printing as a single job according to the intermediate data received from the OS 313, and ends this process. At this time, as the print - ability information, it shall include the setting for mixed - paper printing. Also, at least the print data generated at this time shall be in a format that can have the original - manuscript size in page units like PDF, and shall have the original - manuscript size set in the print - setting information for each page. When the cloud - print - compatible printer 104 has a setting for mixed - paper printing included in the print - ability information, it interprets the original - manuscript size of each page of the print data and prints in that size. Thereby, mixed - paper printing is realized as a single job.

[0158] The above is the detail of the print - data generation process including the case of performing mixed - paper printing.

[0159] Incidentally, the print data thus generated will then be passed from the OS 313 to the cloud - print - compatible printer 104 via the cloud service 321. At this time, there may be a case where, although the printer does not support the original - manuscript size included, printing is executed with "the same as the original - manuscript size" specified for the output - paper size. In that case, if the cloud - print - compatible printer 104 cannot process the received print data, for example, a screen as shown in Fig. 18(a) is displayed on the display unit 246 of the cloud - print - compatible printer 104, and the process is interrupted with an error.

[0160] Fig. 18 is a diagram showing an example of a screen displayed on the cloud - print - compatible printer 104 according to Embodiment 1.

[0161] Even if the same printing is executed, if it can be determined that printing is possible by changing the paper size to be output to a paper size supported by the cloud print-compatible printer 104, a screen as shown in FIG. 18(b) may be displayed to allow the paper size to be selected. Further, even if the cloud print-compatible printer 104 supports the paper size to be output, if the paper of that size is not set in the paper feed unit of the printer, the screen of FIG. 18(b) may be displayed.

[0162] As described above, according to the first embodiment, when generating a document by selecting a print queue associated with a general-purpose cloud printer driver or a local printer driver, it becomes possible to generate a document by selecting a paper size not supported by the printer. Also, at the time of printing, by enabling the specification of the output paper size separately from the original size, printing on a paper size supported by the printer can be specified. Further, when "the same as the original size" is specified for the output paper size, even if the printer cannot process mixed paper printing in a single job, the printing setting extension app can split the job to enable mixed paper printing.

[0163] In the first embodiment, at S1603 etc., the pages and paper sizes at the time of splitting the job are held in the storage unit 214 of the client terminal 101, but they may be held in the memory 213 of the control unit 211.

[0164] [Second Embodiment] Next, a second embodiment of the present invention will be described. In the second embodiment, even though the original size includes a size not supported by the printer, when "the same as the original size" is specified for the output paper size, the printing setting extension app 312 detects this when generating print data. The difference between the second embodiment and the first embodiment is the print data generation process of the printing setting extension app 312, and this part will be described with reference to FIGS. 19 and 20. Explanation of the common parts with the first embodiment other than that will be omitted.

[0165] FIG. 19 is a flowchart for explaining the print data generation process (corresponding to S1413 in FIG. 14) according to Embodiment 2. A program for executing this process is stored in the print setting extension application 312, and the program is expanded 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 “the same as the original size”. If the setting of the output paper size is “the same as the original size” here, the process proceeds to S1902, and if it is other than “the same as the original size”, the process proceeds to S1919.

[0167] In S1902, the CPU 212 determines whether the setting for handling mixed paper printing as a single job (“ns0000:SingleJobMixedPageMediaSizePrint”) is on or off 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 storage unit 214 as the first page of the first job in accordance with the print order of the pages. The processes from S1903 to S1912 are processes for the print setting extension application 312 to realize mixed paper printing by dividing jobs when the printer does not have the ability to handle mixed paper printing as a single job or the setting for handling it as a single job is off.

[0168] Next, it proceeds to S1904, and the CPU 212 determines whether the manuscript size of the page held in S1903 (the paper size specified in "psk:PageMediaSize" of the page print setting information) is the paper size supported by the cloud print-compatible printer 104. If it is determined that the paper size is the one supported by the cloud print-compatible printer 104, it proceeds to S1905; if it is determined that the paper size is not the one supported by the cloud print-compatible printer 104, it proceeds to S1913. In S1905, the CPU 212 holds the manuscript size of the page held in S1903 in the storage unit 214, associating it with the job. Then it proceeds to S1906, and the CPU 212 refers to the intermediate data received from the OS 313 and determines whether there is a next page according to the print order of the pages. If there is a next page, it proceeds to S1907; if there is no next page, it proceeds to S1920. In S1920, the CPU 212 generates the print data and print capability information of each job generated in the processes of S1903 to S1912. At this time, as the manuscript size of the print capability information of each job, the manuscript size associated with each job is set, and this process ends.

[0169] In S1907, the CPU 212 acquires the manuscript size of the next page. Next, it proceeds to S1908, and the CPU 212 refers to the manuscript size acquired in S1907 and determines whether the manuscript size is the same as the manuscript size held in association with the job of the previous page. If it is determined that the manuscript sizes are the same, it proceeds to S1909; if it is determined that the manuscript sizes are different, it proceeds to S1910. In S1909, the CPU 212 holds the page for which the manuscript size was acquired in S1907 in the storage unit 214 as the next page of the job of the previous page and returns the process to S1906.

[0170] On the other hand, in S1910, the CPU 212 determines whether the manuscript size acquired in S1907 is the paper size supported by the cloud print-compatible printer 104. If it is determined that the paper size is the one supported by the cloud print-compatible printer 104, the process proceeds to S1911. If it is determined that the paper size is not the one supported by the cloud print-compatible printer 104, the process proceeds to S1913. In S1911, the CPU 212 stores the page whose manuscript 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 manuscript size of the page stored in S1911 (i.e., the manuscript size acquired in S1907) with the new job in S1911 and stores it in the storage unit 214, and then the process proceeds to S1906.

[0171] Also in S1904, when the manuscript size of the page being held (the paper size specified in "psk:PageMediaSize" of the print setting information of the page) is not the paper size supported by the cloud print-compatible printer 104, the process proceeds to S1913, where the CPU 212 displays a dialog for selecting the output paper size shown in FIG. 20.

[0172] FIG. 20 is a diagram showing an example of a warning screen displayed by the print setting extension application 312 according to Embodiment 2.

[0173] "Output Paper Size" in the setting item 2001 is the same setting item as "Output Paper Size" in the setting item 1202 in FIG. 12(a), but in FIG. 20, "Same as Manuscript Size" is not displayed as an option. Therefore, the options in the setting item 2001 are only the paper sizes supported by the cloud print-compatible printer 104. The initial value of the option can be any paper size supported by the cloud print-compatible printer 104, but for example, it is set to the default value of the paper size predetermined in the printer's capability information. The object (OK) 2002 is a button for receiving an instruction to confirm the output paper size selected by the user operating the setting item 2001. The object (Print Cancel) 2003 is a button for receiving an instruction to cancel the printing.

[0174] In S1914, the CPU 212 determines whether or not it has received an instruction from the object 2003 to cancel printing in the dialog box of FIG. 20. If it has received an instruction to cancel printing, it proceeds to S1915; if not, it proceeds to S1916. In S1915, the CPU 212 ends the generation process of the print data and cancels the execution of printing. At this time, as for the print setting extension application 312, the process of S1414 in FIG. 14 is not performed, and the OS 313 is returned with a message indicating that printing has been cancelled.

[0175] On the other hand, when it is not an instruction to cancel printing, it proceeds to S1916, and the CPU 212 determines whether or not it has received an instruction (object 2002) to determine the output paper size in the dialog box of FIG. 20. If it has received an instruction to determine the output paper size, it proceeds to S1917; if not, it proceeds to S1914. In S1917, the CPU 212 discards the information on the pages and their original manuscript sizes held in S1903, etc., changes the output paper size of the print setting information of the received intermediate data to the output paper size selected in the dialog box 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 original manuscript size of the print setting information for 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 by the output paper size as necessary. Also, as the print capability information, the information on the original manuscript size is changed to the paper size set by the output paper size, and this process ends.

[0176] Also, if the setting to handle mixed - paper printing as a single job is on in S1902, proceed to S1918. In S1918, the CPU 212 determines from the print - setting information of the received intermediate data whether the original - size of all pages is the paper size supported by the cloud - print - compatible printer 104. If it is determined that the original - size of all pages is the paper size supported by the cloud - print - compatible printer 104, proceed to S1921. On the other hand, if there is a page with an original - size that is not the paper size supported by the cloud - print - compatible printer 104, proceed to S1913, display a dialog for selecting the output - paper size shown in FIG. 20, and execute the above - mentioned process. In S1921, the CPU 212 generates print data and print - capability information for mixed - paper printing in a single job according to the intermediate data received from the OS 313, similar to S1613, and ends this process. The above is the detailed generation process of the print data of the print - setting extension application 312 in Embodiment 2.

[0177] In Embodiment 2, even though the original - size includes a size that the printer does not support, when "the same as the original - size" is specified for the output - paper size, the print - setting extension application 312 detects this when generating the print data. Then, it prompts the user to change the setting or cancel the print. Therefore, it can be expected to avoid the situation where, as in Embodiment 1, the user is unaware that an operation needs to be performed on the cloud - print - compatible printer 104 side or that the output paper cannot be obtained without going to pick it up.

[0178] In addition, in Embodiment 2, in S1903 etc., when splitting the job, the page and paper size are held in the storage unit 214 of the client terminal 101, but they may be held in the memory 213 of the control unit 211.

[0179] Also, for the divided jobs held when it is detected that the manuscript size is not supported (determined as No in S1910), the print data may be generated as it is. In that case, for the pages after the page where it is detected that the manuscript size is not supported, print data may be generated to be output in the output paper size specified by the dialog displayed in S1913.

[0180] [Embodiment 3] Next, Embodiment 3 of the present invention will be described. In Embodiment 3, even though the manuscript size includes a size that the printer does not support, when "the same as the manuscript size" is specified as the output paper size, the print setting extension application 312 detects this when generating the print data. Then, it automatically changes to output in the paper size supported by the printer. Since the difference between Embodiment 3 and Embodiment 1 is the print data generation process of the print setting extension application 312, this part will be described with reference to FIG. 21. The description of the common parts with Embodiment 1 other than that will be omitted.

[0181] FIG. 21 is a flowchart for explaining the print data generation process (corresponding to S1413 in FIG. 14) according to Embodiment 3. The program for executing the process shown in this flowchart is stored in the print setting extension application 312, and this program is expanded 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 "the same as the original size". If the setting of the output paper size is "the same as the original size" here, it proceeds to S2102; if the setting of the output paper size is other than "the same as the original size", it proceeds to S2117. In S2117, the CPU 212 generates print data and print capability information according to the intermediate data. At this time, if the original size of the print setting information for 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 by the output paper size as necessary, and ends this process. Also, as the print capability information, the information of the original size is changed to the paper size set by the output paper size.

[0183] In S2102, the CPU 212 determines whether the setting of handling mixed paper printing in a single job ("ns0000:SingleJobMixedPageMediaSizePrint") is on from the print setting information of the intermediate data received from the OS 313. If this setting item is on, it proceeds to S2115; if this setting item is off or the item itself does not exist, it proceeds to S2103. In S2103, the CPU 212 refers to the intermediate data received from the OS 313 and holds the first page in the storage unit 214 as the first page of the first job according to the print order of the pages. The processing from S2103 to S2114 is a process for the print setting extension application 312 to split jobs to achieve mixed paper printing when the printer does not have the ability to handle mixed paper printing in a single job or the setting to handle it in a single job is off.

[0184] In S2104, the CPU 212 determines whether the original size of the page held in S2103 (the paper size specified in "psk:PageMediaSize" of the page print setting information) is the paper size supported by the cloud print-compatible printer 104. If it is the paper size supported by the cloud print-compatible printer 104, the process proceeds to S2105; if it is not the paper size supported by the cloud print-compatible printer 104, the process proceeds to S2113. In S2113, the CPU 212 changes the original size of the page held in S2103 to the paper size supported by the cloud print-compatible printer 104 and then proceeds to S2105. Specifically, it changes to the paper size with the smallest difference from the original size among the supported paper sizes.

[0185] In S2105, the CPU 212 holds the original size of the page held in S2103 in the storage unit 214 associated 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 there is a next page according to the print order of the pages. If there is a next page, the process proceeds to S2107; if there is no next page, the process proceeds to S2118. In S2107, the CPU 212 obtains the original size of the next page and then proceeds to S2108. In S2108, the CPU 212 refers to the original size obtained in S2107 and determines whether the original size is the same as the original size held in association with the job of the previous page. If the original sizes are the same, the process proceeds to S2109; if the original sizes are different, the process proceeds to S2110. In S2118, the CPU 212 generates the print data and print capacity information for each job created in the processes of S2103 to S2114 and ends this process. At this time, the original size of the print capacity information for each job is set to the original size associated with each job. Also, if there are pages whose original sizes are changed in S2113 or S2114, print data that enlarges or reduces those pages to the original size associated with each job shall be generated.

[0186] At S2110, the CPU 212 determines whether the manuscript size acquired at S2107 is the paper size supported by the cloud print-compatible printer 104. If it is the paper size supported by the cloud print-compatible printer 104, the process proceeds to S2111; if it is not the paper size supported by the cloud print-compatible printer 104, the process proceeds to S2114. At S2111, the CPU 212 stores the page for which the manuscript size was acquired at 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 stores the manuscript size of the page stored at S2111 in the storage unit 214 in association with the new job at S2111 and returns to S2106. At S2114, the CPU 212 changes the manuscript size of the page for which the manuscript size was acquired at S2107 to the paper size supported by the cloud print-compatible printer 104 and proceeds to S2111. The method for changing the paper size here is the same as the process of S2113.

[0187] Also, if the setting for handling mixed-paper printing as a single job is on at S2102, the process proceeds to S2115. The CPU 212 determines whether the manuscript size of all pages is the paper size supported by the cloud print-compatible printer 104 from the print setting information of the received intermediate data. If the manuscript size of all pages is the paper size supported by the cloud print-compatible printer 104, the process proceeds to S2119; if there is a page with a manuscript size that is not the paper size supported by the cloud print-compatible printer 104, the process proceeds to S2116. At S2116, the CPU 212 changes the manuscript size of the page with a manuscript size that is not the paper size supported by the cloud print-compatible printer 104 to the paper size supported by the cloud print-compatible printer 104 and proceeds to S2119. The method for changing the paper size here is the same as the process of S2113. At S2119, if there is a page whose manuscript size was changed at S2116, the CPU 212 enlarges or reduces that page to the changed manuscript size and, similar to S1613, generates print data and print capacity information for mixed-paper printing in a single job, and ends this process.

[0188] The above is the detail of the print data generation process of the print setting extension app 312 in Embodiment 3.

[0189] According to Embodiment 3, when an output to a paper size not supported by the printer is instructed, when the print setting extension app 312 generates print data, it detects this and automatically changes the original size so that it is output to a paper size supported by the printer. Thereby, like in Embodiment 1 and Embodiment 2, it is possible to reduce the labor of setting the output paper size after the print instruction. In Embodiment 3, in S2103 etc., the pages and paper sizes at the time of splitting the job are held in the storage unit 214 of the client terminal 101, but it may be held in the memory 213.

[0190] Also, as a method for changing the original size in S2113, various methods can be considered. For example, the print setting extension app 312 is made to identify whether the specified paper size is A size (ISO A size) or B size (JIS B size) as the original paper size. And when the A size paper size is specified, it may be changed to the A size paper size supported by the printer, and when the B size paper size is specified, it may be changed to the B size paper size supported by the printer. Also, for example, it may be changed to the default value of the paper size predetermined by the printer's capability information.

[0191] [Embodiment 4] Next, Embodiment 4 according to the present invention will be described. In Embodiment 4, as the print protocol, it is assumed that print data whose print settings can be switched for each document included in one job can be sent to the printer. And the printer is assumed to be able to perform printing with print settings switched for each document included in one job when it has the ability to handle mixed paper printing in a single job. Other than that, the difference from Embodiment 1 is the process in which the print setting extension app 312 receives intermediate data from the OS 313 and generates print data, so this part will be described with reference to FIG. 22.

[0192] FIG. 22 is a flowchart for explaining the generation process of print data (corresponding to S1413 in FIG. 14) according to Embodiment 4. A program for executing the process shown in this flowchart is stored in the print setting extension app 312, and the program is deployed in the memory 213 of the client terminal 101 and executed by the CPU 212.

[0193] In S2201, 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 "the same as the original size". If the setting of the output paper size is "the same as the original size" here, the process proceeds to S2202, and if the setting of the output paper size is other than "the same as the original size", the process proceeds to S2219. In S2119, the CPU 212 generates print data and print capability information according to the intermediate data in the same manner as in S1611, and ends this process.

[0194] In S2202, the CPU 212 determines whether the setting for handling mixed paper printing in a single job ("ns0000:SingleJobMixedPageMediaSizePrint") is on or off from 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 the item itself does not exist, the process proceeds to S2211.

[0195] In S2203, the CPU 212 refers to the intermediate data received from the OS 313, obtains the original manuscript size from the printing setting information of the first page according to the printing order of the pages, holds it in the memory 213, and proceeds to S2204. In S2204, the CPU 212 generates printing data with the page for which the original manuscript size was obtained in S2203 as the first page of the first document in the job, and holds it in the storage unit 214. At this time, the original manuscript size obtained in S2203 is set as the original manuscript size of the printing capability information of that document. Next, it proceeds to S2205, and 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 here, it proceeds to S2206, and if there is no next page, this printing data generation process ends.

[0196] In S2206, the CPU 212 obtains the original manuscript size of the page determined to exist in S2205 and proceeds to S2207. In S2207, the CPU 212 determines whether the original manuscript size obtained in S2206 is the same as the held original manuscript size. If it is determined that the original manuscript sizes are the same here, it proceeds to S2208, and if it is determined that the original manuscript sizes are different, it proceeds to S2209. In S2208, the CPU 212 updates the held printing data so that the page for which the original manuscript size was obtained in S2206 becomes the next page of the document of the previous page, and returns to S2205. Thereby, when the original manuscript sizes are the same, printing data for documents with consecutive pages is generated. On the other hand, in S2209, the CPU 212 updates the held printing data so that the page for which the original manuscript size was obtained in S2206 becomes the first page of a new document different from the document of the previous page. At this time, the original manuscript size obtained in S2206 is set as the original manuscript size of the printing capability information of the new document. Next, it proceeds to S2210, and the CPU 212 newly holds the held original manuscript size with the original manuscript size obtained in S2206 and returns to S2205.

[0197] If the setting to handle mixed - paper printing as a single job is off in S2202, or if there is no such setting item, the process proceeds to S2211. In S2211, the CPU 212 refers to the intermediate data received from the OS 313, and according to the printing order of the pages, obtains the original - manuscript size from the printing - setting information of the first page and holds it in the memory 213. Next, the process proceeds to S2212, where the CPU 212 generates printing data with the page for which the original - manuscript size was obtained in S2211 as the first page of the document of the first job and holds it in the storage unit 214. At this time, the original - manuscript size obtained in S2211 is set as the original - manuscript size of the printing - capacity information of that job. Next, the process proceeds to S2213, 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 here, the process proceeds to S2214; if there is no next page, the generation process of this printing data ends. S2 2 In S2214, the CPU 212 obtains the original - manuscript size of the page determined to exist in S2213 and proceeds to S2215. In S2215, the CPU 212 determines whether the original - manuscript size obtained in S2214 is the same as the held original - manuscript size. If it is determined that the original - manuscript sizes are the same, the process proceeds to S2216; if it is determined that the original - manuscript sizes are different, the process proceeds to S2217. In S2216, the CPU 212 updates the held printing data so that the page for which the original - manuscript size was obtained in S2214 becomes the next page of the document of the job containing the previous page and returns to S2213.

[0198] On the other hand, in S2217, the CPU 212 updates the held printing data so that the page for which the original - manuscript size was obtained in S2214 becomes the first page of the document of a new job different from the job containing the previous page. At this time, the original - manuscript size obtained in S2214 is set as the original - manuscript size of the printing - capacity information of the new job. Next, the process proceeds to S2218, where the CPU 212 newly holds the held original - manuscript size with the original - manuscript size obtained in S2214 and proceeds to S2213. The above is the detailed generation process of printing data regarding the mixed - paper printing function in Embodiment 4.

[0199] According to Embodiment 4, when the printer has the ability to handle mixed - paper printing as a single job, as in Embodiment 1, the printer does not need to interpret the original size of each page from the print data, and the load on the printer can be reduced more than in Embodiment 1. Also, as in Embodiment 1, even when the printer does not have the ability to handle mixed - paper printing as a single job, mixed - paper printing can be realized by dividing the job. In Embodiment 4, the original size is held in the memory 213 of the client terminal 101 in S2203 etc., but it may be held in the storage unit 214. Also, in S2204 etc., the print data is held in the storage unit 214 of the client terminal 101, but it may be held in the memory 213.

[0200] (Other Embodiments) The present invention can also be realized by supplying a program that realizes one or more functions of the above - described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program. Also, it can be realized by a circuit (for example, ASIC) that realizes one or more functions.

[0201] This specification and the drawings disclose the following information processing apparatus, its control method, application program, and storage medium.

[0202] [Item 1] Update means for updating device - capability information pre - stored in the operating system with the capability information acquired from the printer; Setting means for setting print - setting information based on the device - capability information updated by the update means; Acquisition means for acquiring intermediate data generated by the operating system based on the print - setting information; Generating means for generating print data based on the intermediate data, and having The updating means adds the ability of the output paper size to the device ability information based on the ability of the paper size among the ability information acquired from the printer, and updates the device ability information with predetermined information including paper sizes not included in the ability information acquired from the printer for the ability of the paper size. The information processing apparatus is characterized by this.

[0203] [Item 2] The information processing apparatus according to item 1, wherein the updating means is executed based on an event notification registered in the operating system of the information processing apparatus.

[0204] [Item 3] The information processing apparatus according to item 1 or 2, wherein the setting means displays a print setting screen based on the device ability information updated by the updating means, and causes the user to set the print setting information via the print setting screen.

[0205] [Item 4] The updating means further updates the device ability information to include options for printing with the paper size set for each page as the ability of the output paper size. The setting means enables the user to select the option on the print setting screen as the output paper size. The information processing apparatus according to item 3, wherein when the setting of the output paper size included in the intermediate data is the option, the generating means generates print data for printing each page of the intermediate data with the paper size set for that page, and when the setting of the output paper size included in the intermediate data is information indicating the size of the paper, the generating means generates print data for printing each page of the intermediate data with the size of the paper set as the output paper size.

[0206] [Item 5] The generating means has the option set as the output paper size, and When the setting for handling mixed - paper printing as a single job is not set, the paper size set for each page included in the intermediate data is used to divide the intermediate data at the page where the paper size changes in the printing order of the pages, and print data is generated based on the divided intermediate data. The information processing apparatus according to item 4, characterized in that.

[0207] [Item 6] The generation means has the option set as the output paper size, and When the setting for handling mixed - paper printing as a single job is set, print data including the paper size set for each page of the intermediate data and the setting for mixed - paper printing is generated. The information processing apparatus according to item 4, characterized in that.

[0208] [Item 7] When the capability information acquired from the printer does not include the setting for handling mixed - paper printing as a single job, the update means deletes the setting for handling mixed - paper printing as a single job included in the device capability information stored in the operating system. The information processing apparatus according to item 5 or 6, characterized in that.

[0209] [Item 8] The setting by the option includes the setting for making the output paper size the same as the original size of the page. The information processing apparatus according to any one of items 4 to 7, characterized in that.

[0210] [Item 9] When the generation means detects that the intermediate data acquired by the acquisition means is intermediate data for generating print data to be output in a paper size not supported by the printer, the generation means displays a screen for canceling printing or accepting a change in the output paper size. The information processing apparatus according to any one of items 4 to 6, characterized in that.

[0211] [Item 10] When the generation means detects that the intermediate data acquired by the acquisition means is intermediate data for generating print data to be output in a paper size not supported by the printer, the information processing apparatus according to any one of items 4 to 6, characterized in that it automatically changes the paper size to be output.

[0212] [Item 11] The information processing apparatus according to item 10, characterized in that the generation means changes the paper size to be output to a paper size supported by the printer.

[0213] [Item 12] When the generation means includes a setting for handling mixed-paper printing in a single job, if the paper size set for the page included in the intermediate data is the same as the paper size of the previous page, it generates print data with continuous pages, and if the paper size set for the page included in the intermediate data is different from the paper size of the previous page, it generates print data starting from one page. The information processing apparatus according to item 1.

[0214] [Item 13] A control method for controlling an information processing apparatus, comprising: An update step of updating device capability information pre-stored in an operating system with capability information acquired from a printer; A setting step of setting print setting information based on the device capability information updated by the update step; An acquisition step of acquiring intermediate data generated by the operating system based on the print setting information; A generation step of generating print data based on the intermediate data, and The update step adds the output paper size capability to the device capability information based on the paper size capability among the capability information acquired from the printer, and updates the device capability information with predetermined information including a paper size not included in the capability information acquired from the printer for the paper size capability. The control method is characterized in that.

[0215] [Item 14] An application program that is installed in an information processing device and expands device capability information set in an operating system according to the capability information of a target printer to generate print data, an update means for updating the device capability information set in the operating system with the 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, and a generation means for generating print data based on the intermediate data, and the update means adds the output paper size capability to the device capability information based on the paper size capability among the capability information acquired from the printer, and updates the device capability information with predetermined information including paper sizes not included in the capability information acquired from the printer for the paper size capability. An application program characterized by that.

[0216] [Item 15] A computer-readable storage medium storing the application program according to Item 14.

[0217] The present invention is not limited to the above embodiments, and various changes and modifications can be made without departing from the spirit and scope of the present invention. Therefore, the following claims are appended to disclose the scope of the present invention.

Explanation of Signs

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

An application program that collaborates with an operating system pre-installed with a general-purpose printer driver compliant with the Internet Printing Protocol (IPP), wherein when the application program is executed by an information processing device, the information processing device causes an image forming device to transmit print data, the operating system has device capability information, the application program has information predetermined as a predetermined paper size, the information processing device has a data generation application program that generates data to be printed, the application program causes the information processing device to add information on the output paper size to the device capability information based on the paper size capability information included in the capability information acquired from the image forming device, and update the paper size capability information in the device capability information using the predetermined information including a paper size not included in the capability information acquired from the image forming device; an update step; a reception step of receiving a selection of a first option or a second option as the output paper size from a user based on the device capability information; an acquisition step of acquiring intermediate data generated by the operating system; a generation step of generating the print data based on the selection received in the reception step and the intermediate data; and causes the information processing device to execute the steps, the data to be printed includes a page in which a paper size different from that of the first page is specified, in the reception step, when the first option is selected, in the generation step, the print data is generated in the paper size specified in the data to be printed, in the reception step, when the second option is selected, in the generation step, the print data is generated so that the paper size specified in the data to be printed is set to the paper size of the second option for printing. An application program characterized by that.

2. The application program according to claim 1, wherein the update step is executed based on an event notification registered in the operating system of the information processing device.

3. The application program according to claim 1, wherein the reception step further receives a selection of a manuscript size.

4. The first option is an option to set the output paper size to the same paper size as the paper size specified by the data to be printed, and the second option is an option in which a specific paper size is selected as the output paper size. The application program according to claim 1, characterized in that.

5. The receiving step further receives a setting from the user to handle mixed paper printing as a single job.

2. In the receiving step, when the first option is selected and the setting to handle mixed paper printing as a single job is not received, the paper sizes set for each page included in the intermediate data are changed at the page where the paper size changes in the printing order of the pages. The intermediate data is divided, and printing data is generated based on the divided intermediate data. The application program according to claim 1, characterized in that.

3. In the receiving step, when the first option is selected and the setting to handle mixed paper printing as a single job is received, printing data including the paper size specified for each page of the intermediate data and the setting for mixed paper printing is generated. The application program according to claim 5, characterized in that.

7.

5. The updating step deletes information regarding the setting to handle mixed paper printing as a single job included in the device capability information stored in the operating system when the capability information acquired from the image forming apparatus does not include information indicating that mixed paper printing can be handled as a single job. The application program according to claim 5 or 6, characterized in that.

8.

7. The generating step cancels printing or accepts a change in the output paper size when it is detected that the intermediate data acquired in the acquiring step is intermediate data for generating printing data to be output in a paper size not supported by the image forming apparatus. The application program according to any one of claims 4 to 6, characterized in that.

9.

9. The generating step automatically changes the paper size to be output when it is detected that the intermediate data acquired in the acquiring step is intermediate data for generating printing data to be output in a paper size not supported by the image forming apparatus. The application program according to any one of claims 4 to 6, characterized in that.

10. The application program according to claim 9, wherein the generation step changes the paper size to be output to a paper size supported by the image forming apparatus. **Claim 11**: When, in the reception step, a setting for handling the mixed-sheet printing as a single job is received, in the generation step, when the paper size set for the page included in the intermediate data is the same as the paper size of the previous page, print data with continuous pages is generated; when the paper size set for the page included in the intermediate data is different from the paper size of the previous page, print data is generated as a document different from the document including the previous page, and the print data including a plurality of documents in the same job is transmitted to the image forming apparatus. The application program according to claim 5, characterized in that. **Claim 12**: A control method for an information processing apparatus having an operating system pre-installed with a general-purpose printer driver compliant with IPP and an application program that cooperates with the operating system, wherein the operating system has device capability information, the application program has information predetermined as a predetermined paper size, the information processing apparatus has a data generation application program for generating data to be printed, by executing the application program, an update step of adding the capability information of the output paper size to the device capability information based on the capability information of the paper size included in the capability information acquired from the image forming apparatus, and updating the capability information of the paper size in the device capability information using the predetermined information including the paper size not included in the capability information acquired from the image forming apparatus; a reception step of receiving a selection of a first option or a second option as the output paper size from a user based on the device capability information; an acquisition step of acquiring intermediate data generated by the operating system; a generation step of generating print data based on the selection received in the reception step and the intermediate data; and the data to be printed is data in which pages with different specified paper sizes are mixed, when the first option is selected in the reception step, in the generation step, the print data is generated with the paper size specified in the data to be printed. When the second option is selected in the reception step, in the generation step, printing data is generated by setting the paper size specified in the data to be printed to the paper size of the second option. A control method characterized by this.

13. An information processing apparatus having an operating system pre-installed with a general-purpose printer driver compliant with IPP and an application program that cooperates with the operating system, The operating system has device capability information, The application program has information predetermined as a predetermined paper size, The information processing apparatus has a data generation application program that generates data to be printed, By executing the application program, An update step of adding the output paper size capability information to the device capability information based on the paper size capability information among the capability information acquired from the image forming apparatus, and updating the paper size capability information in the device capability information using the predetermined information including a paper size not included in the capability information acquired from the image forming apparatus; A reception step of receiving a selection of a first option or a second option as the output paper size from a user based on the device capability information; An acquisition step of acquiring intermediate data generated by the operating system; A generation step of generating print data based on the selection received in the reception step and the intermediate data, and The data to be printed is data in which pages with different specified paper sizes are mixed, When the first option is selected in the reception step, in the generation step, the print data is generated with the paper size specified in the data to be printed remaining as it is, An information processing apparatus characterized in that when the second option is selected in the reception step, in the generation step, the print data is generated by setting the paper size specified in the data to be printed to the paper size of the second option.

14. A computer-readable storage medium storing the application program according to claim 1.

Citation Information

Patent Citations

  • Print system

    JP2018147217A

  • Program and control method

    JP2021108001A

  • Information processing device, control method for printing device and information processing device, and program

    JP2021124791A

  • Server, control method, program, and printing system

    JP2021170258A