Patent ID: 12229454

DESCRIPTION OF THE EMBODIMENTS

Some exemplary embodiments of the present disclosure are described below with reference to drawings. The following exemplary embodiments should not be seen as limiting, and all of combinations of features described in the exemplary embodiments are not necessarily deemed to be essential.

First, a configuration of a printing system according to a first exemplary embodiment will be described with reference toFIG.1.FIG.1is a diagram illustrating an example of the printing system according to the present exemplary embodiment. The printing system according to the present exemplary embodiment includes a client computer101and a cloud server102that are examples of an information processing apparatus, and printers103that receive print data in a page description language (PDL) format and perform printing. A plurality of printers103aand103bis connected to a network104. The apparatuses can communicate with each other via the network104including a wide area network (WAN). Further, information processing apparatuses such as a tablet terminal106aand a smartphone terminal106bare connected to the network104via an access point (AP)105. Communication via the AP105is, for example, wireless communication conforming to Institute of Electrical and Electronics Engineers (IEEE) 802.11 series. The terminals106are not limited to the tablet terminal and the smartphone terminal, and may be any other information processing apparatuses.

Further, each of the printer103aand the printer103bmay be a single-function printer including only a print function, or a multifunction printer including the print function, a scan function, and a copy function. The number of client computers101connected to the network104is not limited to one, and a plurality of client computers101may be connected to the network104. The client computer101, the terminal106a, and the terminal106bcan transmit print data to the printers103. InFIG.1, the cloud server102is illustrated as a single apparatus, however, the cloud server102may be a server system in which a plurality of server apparatuses cooperates with one another to provide a service.

FIG.2is a block diagram illustrating a hardware configuration of the client computer101inFIG.1. The client computer101includes a central processing unit (CPU)201, a random access memory (RAM)202, an external memory209, and a read only memory (ROM)203.

A control unit200including the CPU201controls operation of the whole of the client computer101. The CPU201loads programs stored in the ROM203or the external memory209to the RAM202, and executes the programs to perform various kinds of control such as control of a user interface (UI) screen, generation of print data, and transfer of the print data. The ROM203stores control programs, a boot program, etc. executable by the CPU201. The RAM202is a main storage memory of the CPU201, and is used as a work area or a temporary storage area for loading the various kinds of programs. The external memory209that is connected to the control unit200via an external memory interface (I/F)208stores applications, an operating system (OS), etc. In the present exemplary embodiment, an auxiliary storage device such as a hard disk drive (HDD) is assumed as the external memory209, however, a nonvolatile memory such as a solid state drive (SSD) may be used in place of the HDD. As described above, the hardware such as the CPU201, the RAM202, the ROM203, and the external memory209forms a computer.

An operation input device OF204is an interface that controls an operation input device205including a keyboard, a pointing device (mouse), and a touch input device. The operation input device205functions as a reception unit receiving operation from a user. A display OF206controls display of a screen on a display207. The display207functions as a display unit displaying information to the user.

The control unit200is connected to the network104via a network I/F212. The network I/F212transmits print data to a printer on the network104, and receives an application, a printer driver, etc. from a server on the network104. Data communication with an external terminal on the network104is, for example, wireless communication conforming to IEEE 802.11 series, mobile communication using long term evolution (LTE) and fifth generation mobile communications system (5G), or communication via a wired cable such as a local area network (LAN) cable.

In a case where the cloud server102includes a single apparatus, the hardware configuration of the cloud server102is the same as the hardware configuration of the client computer101. In a case where the cloud server102is a cloud system including a plurality of apparatuses, the hardware configuration of each of the apparatuses configuring the cloud system is the same as the hardware configuration of the client computer101. In the case of the terminal106, the operation input device205, the display207, and the external memory209are incorporated in the terminal106, however, the configuration of the other part is the same as the configuration of the client computer101.

FIG.3is a block diagram illustrating a hardware configuration of the printer103a. The printer103aincludes a read function to read an image on a sheet, and a print function to print an image on a sheet. The printer103further includes a file transmission function to transmit an image to an external information processing apparatus.

In the present exemplary embodiment, the printer103ais described as an example of a printing apparatus, however, the printing apparatus is not limited thereto. For example, the printing apparatus may be a single function peripheral (SFP) not including the read function. Further, the printer103bhas the same configuration as the configuration of the printer103a. Therefore, description of the configuration of the printer103bwill be omitted.

A control unit300including a CPU301controls operation of the whole of the printer103a. The CPU301reads out control programs stored in a ROM302and a storage304, and performs various kinds of control such as print control and read control. The ROM302stores control programs executable by the CPU301. A RAM303is a main storage memory of the CPU301, and is used as a work area or a temporary storage area for loading the various kinds of control programs. The storage304stores print data, image data, various kinds of programs, and various kinds of setting information. In the present exemplary embodiment, an auxiliary storage device such as an HDD is assumed as the storage304, however, a nonvolatile memory such as an SSD may be used in place of the HDD. As described above, the hardware such as the CPU301, the ROM302, and the RAM303form a computer.

In the printer103aaccording to the present exemplary embodiment, one CPU301performs each processing described below using one memory (RAM303), however, each processing may be performed in any other mode. For example, a plurality of CPUs, RAMs, ROMs, and storages can cooperate with one another to perform each processing described below. Further, a part of processing may be performed by a hardware circuit such as an application specific integrated circuit (ASIC) and a field-programmable gate array (FPGA).

An operation unit OF305connects an operation unit306and the control unit300. The operation unit306includes a liquid crystal display unit having a touch panel function and various kinds of hardware keys. The operation unit306functions as a display unit displaying information and a reception unit receiving an instruction by the user.

A reading unit OF307connects a reading unit308and the control unit300. The reading unit308reads a document to generate a read image. The generated read image is stored in the storage304or the RAM303. The read image generated by the reading unit308is transmitted to a communication apparatus, and is used in printing of an image on a sheet.

An image processing unit314has a function of a raster image processor (RIP) to develop print data received via a network and to generate a print image. Further, the image processing unit314can perform resolution conversion and correction processing of an image. In the present exemplary embodiment, it is assumed that the image processing unit314is implemented by a hardware circuit (ASIC or FPGA), however, the image processing unit is not limited thereto. For example, the printer103may include a processor for image processing, and the processor for image processing may perform an image processing program to implement image processing and development processing of print data. In this case, the processor for image processing and the CPU301cooperate with each other to realize each processing described below. Furthermore, the CPU301may execute a program for image processing to perform the image processing and the development processing of the print data. Alternatively, the image processing may be performed by a combination of any thereof.

A printing unit OF309connects a printing unit310and the control unit300. A print image generated as a result of analysis of print data by the image processing unit314is transferred from the control unit300to the printing unit310via the printing unit OF309. The printing unit310receives a control command and the print image via the control unit300, and prints an image on a sheet fed from a sheet feeding cassette (not illustrated) based on the print image. A printing method of the printing unit310may be an electrophotographic method or an inkjet method. In addition, other printing method such as a thermal transfer method may be adopted. A sheet processing unit OF311connects the control unit300and a sheet processing unit312. The sheet processing unit312receives a control command from the CPU301, and performs postprocessing on sheets printed by the printing unit310based on the control command. The sheet processing unit312performs the postprocessing such as alignment of a plurality of sheets, punching of the plurality of sheets, and binding of the plurality of sheets. Functions and capabilities of the postprocessing of the sheet processing unit312are notified to the control unit300via the sheet processing unit OF311in advance (e.g., at activation of printer103), and are stored in the storage304or the RAM303.

Further, the control unit300is connected to the network104via a communication unit OF313. The communication unit OF313transmits images and information to a communication apparatus on the network104, and receives print data and information from the communication apparatus on the network104.

Subsequently, an example of a software configuration of the terminal106will be described with reference toFIG.4. An OS405includes a system404for basic operation of the OS. The system404includes a driver406that controls a device connected to the terminal106, and a communication module407to enable the terminal106to communicate with outside via the network104.

Further, inFIG.4, as external applications, applications401, a print extension application402, a document creation application403are installed.

The applications401are applications represented by a web browser. The plurality of applications401is installable in the OS405. The applications401operate by any of foreground execution and background execution. In the foreground execution, the applications401are executed while UIs of the applications401are displayed on a display. In the background execution, the applications401are executed while the UIs are not displayed. The applications401are installed from an external cloud service (not illustrated) via the network104. Alternatively, the applications401are previously installed in the OS405through a management system such as mobile device management (MDM) system.

The OS405is installed with the applications401, the print extension application402performing operation dedicated for printing in cooperation with the cloud service, and the document creation application403that can create document data and image data such as spreadsheet data. The print extension application402may be a dedicated application, or a web application that includes a web browser displaying a web page.

The OS405is software that executes applications and manages overall resources. The OS405includes the system404that performs basic operation of the OS405, and the system404includes the driver406that controls the display, the memories, etc., and the communication module407. The communication module407is a module used when the applications401perform communication. The applications401, the print extension application402, and the document creation application403communicate with an external apparatus such as the cloud server102via the communication module407.

Next, a software configuration of the cloud server102will be described with reference toFIGS.5A and5B.FIG.5Ais a relational diagram of databases in a cloud service500operating in the cloud server102. As the databases, an account database5000, a job database5100, and a printer database5200are provided.

The account database5000is a database that has an identifier of a username5001as a main key for utilization, and manages users using the cloud service500. Further, the account database5000stores the username5001and a password5002in association with each other. The account database5000further stores a print extension application device token5003corresponding to the username5001. The print extension application device token5003is used to notify the print extension application402installed in the user terminal106and the client computer101, of registration of a print job with the cloud service500. Further, a document creation application device token5004that notifies the document creation application403of registration of the print job with the cloud service500is stored in association with the username5001. Moreover, the account database5000stores a plurality of printer identifications (IDs)5201representing printers usable by the user, and a default printer ID5005representing a printer set by default. The default printer ID5005represents an optional printer among a plurality of printers corresponding to the printer IDs5201.

These tokens function as identifiers different for each device. Values of device tokens5003and5004may be updated every time the print extension application402and the document creation application403in the terminal106are activated.

The printer database5200is a database that has the printer ID5201as a main key, and manages printers registered with the cloud service500. The printer database5200stores a printer name5202and capability information5203of the printer in association with the printer ID5201. The capability information5203of the printer is, for example, information indicating whether the printer supports color printing or only monochrome printing, and information about supported sheet sizes. The capability information5203further includes information indicating whether the printer can perform bookbinding printing, poster printing, and postprocessing after printing such as sheet folding and stapler punching. The printer database5200can notify the document creation application403and the print extension application402of functions executable by a printer selected by the user, by storing the printer ID5201and the capability information5203in association with each other. The printer database5200further stores a uniform resource locator (URL)5204to provide a web service, and an application identifier5205that is an identifier of an application extending a function of print setting, in association with the printer ID5201.

Note that the information in the account database5000and the printer database5200necessary for printing are registered as a presetting before printing.

The job database5100is a database in which a print job is registered. The print job is registered with the job database5100every time the user performs printing. The job database5100includes a job ID5101as a main key. The job database5100further includes, as attributes, a job name5102, data5103for printing, print setting5104set to a job, a status5105representing a status of the job, the printer ID5201, and the username5001. The username5001and the printer ID5201are external keys connecting the job database5100to the account database5000and the printer database5200, respectively.

FIG.5Bis a block diagram illustrating a software configuration of the cloud service500operating in the cloud server102. The configuration and an overall flow of the cloud service500will be described with reference toFIG.5B. Individual services and the databases are connected via a network50inside the cloud, and can communicate with one another.

An authentication service501receives authentication information from the terminal106and the client computer101, and collates the authentication information with the account database5000to perform authentication. In a case where the authentication succeeds, the authentication service501returns a response notifying success and an access token to a transmission source of an authentication request. In a case where the authentication fails, the authentication service501returns a response of authentication error to the transmission source of the authentication request.

A data reception unit502receives print data and print setting information in a Hypertext Transfer Protocol (HTTP) format via the network104. The data reception unit502receives the print data and the print setting information in a format such as extensible markup language (XML) paper specification (XPS) and portable document format (PDF). Further, the data reception unit502can receive files such as a Word® file, a PowerPoint® file, and an Excel® file as the print data and the print setting.

A PDL conversion unit503converts data received from the data reception unit502into PDL data such as PDF data and PWGRaster data, and passes the PDL data and the print setting information to a job management unit504.

The job management unit504queues the PDL data and the print setting information, imparts a job ID to each piece of print data, and registers the print data as a print job with the job database5100together with the other information such as the username5001.

Based on registration of the print job with the job database5100, a notification transmission service505requests an external notification service507to notify the print extension application402or the document creation application403of the registration. To notify the print extension application402of the registration, the notification transmission service505requests the external notification service507to perform notification using the print extension application device token5003. To notify the document creation application403of the registration, the notification transmission service505requests the external notification service507to perform notification using the document creation application device token5004. The notification transmission service505can request the external notification service507to notify the application as a notification destination of data in a format such as JavaScript® Object Notation (JSON). At this time, the notification includes information such as the job ID5101in the job database5100, an optional message indicating registration of the job, the URL5204of the web service506, and the application identifier5205of the print extension application402.

The web service506is a service that performs print setting to the registered job. When the terminal106accesses the URL5204after the job is registered, the web service506acquires the data5103from the job management unit504. Further, the web service506acquires the capability information5203of the printer from the printer database5200. Thereafter, the web service506returns information on a detailed print setting screen to the caller. Further, the web service506receives a print instruction from the print extension application402, and transmits edited print data to the printer103.

The web service506is a web service that enables the service relating to printing to be used from outside. The web service506receives the print job, and receives change of the print setting. Further, the web service506can return the list of printers registered with the printer database5200, and a web application programming interface (API) of the capability information on each of the printers. The web service506may return information on hypertext transfer protocol (HTML) of the web page for the print setting, etc. to the caller.

The external notification service507is a service represented by Apple Push Notification service (APNs). The external notification service507transmits notification to the terminal106based on a request. The external notification service507can communicate with the cloud service500, the terminal106illustrated inFIG.2, etc. via the network104.

FIG.6is a diagram illustrating an example of a software configuration of the printer103according to the present exemplary embodiment.

A data acquisition unit604acquires the job in the job database5100of the cloud service500, and passes the data5103and the print setting5104of the acquired job to a print job generation unit605.

The print job generation unit605requests a job control unit608to register a new job inside the printer103and to start print processing, based on the data5103and the print setting5104of the job acquired by the data acquisition unit604. In addition, the print job generation unit605transfers the received data5103and the received print setting5104to a data reception control unit606.

After the print job generation unit605generates the print job to be managed inside a multifunctional peripheral, the attributes of the print job are stored in a job attribute storage unit609.

The data reception control unit606serves as a buffer area for the data5103and the print setting5104received by the print job generation unit605, and temporarily stores the reception data for each print job in the storage304. The job control unit608instructs a PDL analysis unit607to perform PDL analysis processing of a specific print job based on completion of execution preparation of the specific print job. The PDL analysis unit607requests the data5103and the print setting5104corresponding to the specific print job, to the data reception control unit606. The data reception control unit606transfers the data5103and the print setting5104corresponding to the specific print job, to the PDL analysis unit607.

The PDL analysis unit607generates intermediate data based on the attribute information (e.g., number of copies, Nup, color mode, and setting of postprocessing) on the specific print job stored in the job attribute storage unit609, and the print data corresponding to the specific print job. The generated intermediate data is transferred to a RIP control unit610. The RIP control unit610cooperates with the RIP of the image processing unit314to convert the intermediate data into a raster image. A print control unit611acquires the raster image generated by the RIP control unit610, and transfers CMYK print images obtained by color separation to an engine control unit612. The engine control unit612forms an image on a sheet based on the CMYK print images and performs postprocessing such as stapler punching on the sheet on which the image has been formed, in cooperation with the printing unit310and the sheet processing unit312.

A flow of operations on the terminal106up to the point where printing is performed will be described with reference toFIGS.7A,7B,7C, and7D. Here, it is assumed that registration of the printer103with the cloud server102is already completed.FIG.7Aillustrates a state where the document creation application403is activated. InFIG.7A, the document creation application403is described, however, the other application401may be used. In a menu bar701, buttons as selection options of menus, for example, a button to share a document with the other terminal and a button to perform print setting are displayed side by side. A print button702in the selection options is a button to display a screen for print setting of opened document data and execution instruction of printing. When the print button702is pressed, an authentication popup screen703illustrated inFIG.7Bis displayed. The authentication popup screen703is a screen for logging into the cloud service500. When the user enters the username and the password, and then presses an OK button704, the terminal106transmits an authentication request to the cloud service500. After the cloud server102completes authentication, the user can log into the cloud service500. After login, the screen displayed on the terminal106makes transition to a print screen illustrated inFIG.7C.

FIG.7Cillustrates a print setting screen provided by the document creation application403and is a screen for setting items used in printing. A printer selection button711is a button to select a printer to be used for printing. When the printer selection button711is pressed, a printer selection screen inFIG.7Dis displayed on the display unit of the terminal106. InFIG.7D, the printer103aset by default is selected. A button712is a button to perform setting of double-side printing. When the user presses the button712, the setting is changed from single-side printing to double-side printing. When the user presses the button712again, the setting is changed from the double-side printing to the single-side printing. In this example, control of the double-side printing that is one of the functions held by the printer103is displayed, however, simple functions used in common by a plurality of printer vendors conforming to internet printing protocol (IPP), for example, color-monochrome conversion that is a function held by the other printer may be displayed. An area715is an area where the number of copies is set. In the area715, the number of copies currently set is displayed. When the user presses a “plus (+)” button, the number of copies is incremented by one. When the user presses a “minus (−)” button, the number of copies is decremented by one.

A button713is a detailed setting button. When the user presses the detailed setting button713, the print extension application402is activated, and a detailed print setting screen illustrated inFIG.10Ais displayed. The detailed print setting screen will be described below. In a case where the print extension application402is not installed, the document creation application403displays a detailed print setting screen. In the detail print setting screen displayed by the document creation application403, a vendor-specific function such as poster printing is not displayed.

A button714is a print start button. When the user presses the print start button714, the document creation application403transmits the print data and the print setting information to the cloud server102via the web service506of the cloud service500, and requests printing.

FIG.7Dillustrates the printer selection screen. When the user selects the printer selection button711, the terminal106requests information on printers registered with the printer database5200via the web service506. The terminal106displays a list of the printers acquired via the web service506. An icon722indicates a printer currently selected. A link723is a back link. When the user presses the back link723, the print screen inFIG.7Cis displayed on the display unit of the terminal106.

A flow for registering the applications and the printer103awith the cloud service500will be described with reference toFIG.8. It is assumed that the username5001and the password5002of a necessary account have already been registered with the account database5000.

In step S801, the document creation application403requests the external notification service507, which is used by the cloud service500to notify the document creation application403, to issue the document creation application device token5004.

In step S802, the external notification service507generates a universally unique identifier (UUID), and returns the generated UUID as the document creation application device token5004to the document creation application403. The document creation application device token5004is an identifier for identification of the terminal106and the document creation application403, and any other identifier may be used as long as the identifier enables identification of the application.

In step S803, the document creation application403transmits, to the cloud service500, authentication information for the user using the document creation application403to use the cloud service500. In step S804, the cloud service500returns an access token for the document creation application403to access the cloud service500.

In step S805, the document creation application403accesses the cloud service500by using the acquired access token, and registers the document creation application device token5004with the account database5000. The document creation application device token5004registered with the cloud service500at this time is the token issued in step S802.

In step S806, the cloud service500notifies the document creation application403of registration completion of the document creation application device token5004. Steps S801to S806are performed at the time of installation or initial activation of the document creation application403.

Next, in step S807, the print extension application402requests the external notification service507to issue the print extension application device token5003. In step S808, the external notification service507generates a UUID, and returns the UUID as the print extension application device token5003to the print extension application402.

In step S809, the print extension application402receives the authentication information for the print extension application402to access the cloud service500, and transmits the authentication information to the cloud service500. In step S810, the cloud service500returns an access token. In step S811, the print extension application402accesses the cloud service500by using the acquired access token, and registers the print extension application device token5003with the account database5000. In step S812, the cloud service500notifies the print extension application402of registration completion of the device token5003. The print extension application device token5003is an identifier for identification of the terminal106and the print extension application402, and any other identifier may be used as long as the identifier enables identification. Steps S807to S812are performed at the time of installation or initial activation of the print extension application402.

Subsequently, in step S813, the printer103areceives authentication and transmits the authentication information to the cloud service500. In step S814, the cloud service500performs authentication and returns an access token. In step S815, the printer103aaccesses the cloud service500by using the access token, and registers the printer information with the printer database5200. At the same time, the cloud service500registers the printer ID5201of the account database5000to the authenticated account. In a case where the default printer ID5005is not registered, the cloud service500registers the default printer ID5005. In step S816, the cloud service500notifies the printer103aof registration completion of the printer information. Steps S813to S816are performed when the printer103ais registered with the cloud service500. As described above, in the present exemplary embodiment, the access token is issued when the printer103arequests registration with the cloud service500. Thereafter, the cloud service500acquires the information on the printer103a.

A flow of printing will be described with reference toFIGS.9A and9B.FIG.9Aillustrates a flow up to the point where the document creation application403instructs the cloud service500to perform printing.

First, in step S901, the document creation application403of the terminal106described inFIG.7Btransmits the authentication information to the cloud service500. The cloud service500inquires of the authentication service501about the authentication information. In step S902after authentication, the cloud service500returns, to the document creation application403, a token for access to the other service including the web service506of the cloud service500. After the document creation application403acquires the token, in step S903, the document creation application403transmits a request to acquire information on the list of the printers, to the web service506of the cloud service500.

In step S904, in response to the request, the cloud service500returns the information on the list of the printers usable by the user, to the document creation application403, based on the printer ID5201of the account database5000.

Next, in step S905, the document creation application403requests the capability information of the printer selected by default to the cloud service500based on the default printer ID5005. In step S906, the cloud service500accesses the printer database5200, and returns the capability information5203of the corresponding printer to the document creation application403. As a result, the document creation application403can know the functions usable by the printer selected in the print setting screen and the print extension application402corresponding to the selected printer.

The printer name selected by default is displayed on the printer selection button711of the print screen. In a case where the printer selection button is pressed after display, the printer selection screen is displayed and selection of a printer is received in step S907. In a case where the user selects the printer selection button711and changes the printer to be used, the document creation application403acquires the capability information of the changed printer from the cloud service500.

When the detailed setting button713of the printer is pressed in the print screen, the document creation application403activates the print extension application402associated with the printer, based on the application identifier5205registered with the printer database5200in step S908. In step S908, the document creation application403accesses the printer database5200of the cloud service500, and acquires the application identifier corresponding to the selected printer. Thereafter, the document creation application403activates the application corresponding to the application identifier. At the time of activation, the document creation application403passes information about print setting already set, to the print extension application402. In other words, the document creation application403passes set values set in the screen ofFIG.7Cto the print extension application402. Alternatively, the document creation application403may pass the job ID of the print job to the print extension application402. Further, in step S908, there is a case where the application corresponding to the application identifier acquired by the document creation application403from the cloud service500is not installed in the terminal106. At this time, the document creation application403may display a URL of the web page where the application extension application is distributed, or may display a screen to activate the other application for downloading the print extension application. This makes it possible to encourage the user to download the print extension application.

In the present exemplary embodiment, in step S908, the document creation application403acquires the application identifier from the cloud service500. Alternatively, in step S905, the document creation application403may transmit a request to acquire the application identifier together with the capability information to the cloud service500, and may receive the application identifier together with the capability information from the cloud service500.

In step S909, the activated print extension application402requests functions such as double-side printing and bookbinding and the capability information of the printer such as a device configuration, to the cloud service500via the web service506. The necessary information may be information in a format such as JSON, HTML, cascading style sheets (CSS), and JavaScript®. In a case where the print extension application402is a web application including a web browser, the print extension application402transmits a request to acquire information indicating a screen configuration of the detailed print setting screen to be displayed in addition to the capability information of the printer, to the cloud service500.

In step S910, the cloud service500returns the information on the requested detailed print setting screen to the print extension application402. In step S910, the capability information acquired by the print extension application402from the cloud service500may be capability information similar to or different from the capability information acquired by the document creation application403from the cloud service500in step S906.

In step S911after acquisition of the capability information, the print extension application402displays the detailed print setting screen illustrated inFIG.10A. The print extension application402displays the detailed print setting screen by using the capability information on the printer103acquired from the cloud service500and the screen information held by the print extension application402. In the case where the print extension application402is a web application, the detailed print setting screen is configured based on the information received from the cloud service500.

In step S912after the print extension application402displays the detailed print setting screen, the print extension application402receives change of print setting. In step S913after the print setting is changed, the print extension application402returns the information on the set print setting to the document creation application403. The information on the print setting returned at this time includes, for example, setting regarding color printing, poster printing, and bookbinding printing. The document creation application403displays the print screen again based on the information on the print setting returned from the print extension application402. At this time, the document creation application403performs display while ignoring information on vendor-specific print setting that cannot be identified by the document creation application403.

In step S914, when the print start button714is pressed in the print screen, the document creation application403passes the print data to the cloud service500and requests the cloud service500to generate a job via the web service506. The cloud service500passes the print data to the data reception unit502.

The data reception unit502passes the print data to the PDL conversion unit503. After the print data is converted into the PDL print data, the data reception unit502passes the PDL print data to the job management unit504. In step S915, the job management unit504imparts the job ID5101to the print data, and registers the print data with the job database5100. In step S916after the print data is registered with the job database5100, the cloud service500notifies the document creation application403of success of generation of the print job. In step S917, the document creation application403transmits the print setting information to the cloud service500. The cloud service500passes the print setting information to the job management unit504. In step S918, the job management unit504registers the received print setting information to the corresponding job ID of the job database5100. In step S919after the print setting information is registered, the cloud service500notifies the document creation application403of success of registration of the print setting information. In step S920, upon receiving notification of success of registration of the print setting information, the document creation application403transmits a print request to the cloud service500. In step S921, upon receiving the request, the cloud service500notifies the document creation application403of success of reception of the print request.

The cloud service500analyzes the print setting information. At this time, in a case where preview in printing is set, the cloud service500requests the external notification service507to perform notification via the notification transmission service505of the cloud service500. When requesting the notification, the cloud service500notifies the document creation application403based on the print extension application device token5003of the account database5000in step S922. Notification includes the job ID5101and a text message indicating that the print data have been registered with the job database5100. In step S922, the cloud service500transmits notification to the print extension application device token5003registered with the account database5000. In a case where the user of a certain username has a plurality of terminals106, a plurality of print extension application device tokens may be associated with one username. In this case, the cloud service500may perform notification to each of the print extension application device tokens. Further, the cloud service500may perform notification to the print extension application device token of the print extension application installed in the same terminal as the terminal of the document creation application that has transmitted the image data.

As the condition to perform the notification, ON/OFF of the preview function has been described as an example, however, the notification may be performed based on any other condition. For example, the cloud service500may be previously set so as to inevitably perform the notification, or the notification may be inevitably performed in a case where specific print setting is set.

In step S923, the print extension application402receives the notification from the cloud service500, and displays the notification on the terminal106. In the present exemplary embodiment, the print extension application402receives the notification from the cloud service500, and displays the notification. Alternatively, in step S922, the OS of the terminal106may receive the notification from the cloud service500, and may display the notification on the display. Still alternatively, the cloud service500may transmit the notification to the document creation application403based on the document creation application device token5004. In this case, the document creation application403may display the notification, and may activate the print extension application402in response to user operation.

In step S924, the terminal106receives an event such as click and tap, and the document creation application403activates the print extension application402. At the time of performing the notification, the cloud service500may notify the print extension application402based on the print extension application device token5003.

In step S925, the print extension application402accesses the web service506of the cloud service500, and requests the job information by using the job ID included in the notification. In step S926, the cloud service500reads out the job ID and the job information registered with the job database5100, and returns the job ID and the job information to the print extension application402. Next, in step S927, the print extension application402requests the printer capability information to the cloud service500via the web service506. The cloud service500acquires the printer ID associated with the job in the job database5100, and acquires the printer capability information from the printer database5200. In step S928after acquisition of the printer capability information, the cloud service500returns the printer capability information to the print extension application402. In step S929, the print extension application402generates the detailed print setting screen including print preview, from the acquired job and the acquired printer capability information, and displays the detailed print setting screen. In step S930after display of the detailed print setting screen, the print extension application402receives change of the print setting. In step S931after reception of change of the print setting, the print extension application402transmits the changed print setting5104and the job ID of the job to the cloud service500. In step S932, the cloud service500updates the job database5100by overwriting the print setting5104of the job specified by the job ID with the print setting received from the print extension application402. In step S933after registration, the cloud service500notifies the print extension application402of reception of change of the print setting. In step S934, the print extension application402instructs printing of the print job. In step S935, the cloud service500changes the status5105of the job in the job database5100to “under printing”. In step S936after change of the status, the cloud service500notifies success of reception of the print request.

InFIG.9A, the processing in and after step S922is performed after the print request is registered with the cloud service500in step S921. Alternatively, the processing in and after step S922may not be performed. Still alternatively, the processing in steps S908to S913may not be performed, and the processing in and after step S914may be performed after step S907.

FIG.9Bis a sequence diagram illustrating a flow up to the point where the printer103aperforms printing. In step S937, the printer103aperforms polling every predetermined time to inquire of the cloud service500, and requests the job the status5105of which is “under printing”. In a case where the job “under printing” is present, the cloud service500returns the job in step S938. In step S939after the printer103aacquires the job, the printer103aperforms printing. In step S940after printing, the printer103anotifies the cloud service500of completion of the printing. In step S941, the cloud service500notifies the printer103aof reception of print completion.

Next, in step S942, the cloud service500deletes the print data, notification of print completion of which has been received, from the job database5100. In a case where the job the status5105of which is “under printing” is absent, notification indicating that a job “under printing” is absent is transmitted in step S943.

InFIGS.9A and9B, the print extension application402is described as an application operating in local of the terminal106, however, the print extension application402may be a web application. In a case where the print extension application402is a web application, the print extension application402acquires not only the capability information on the printer103but also the information on the screen displayed on the terminal1036in HTML format from the cloud service500in steps S910and S928.

The detailed print setting screen will be described with reference toFIGS.10A, and10C. A page1000inFIG.10Ais a top page of the detailed print setting screen of the print extension application402activated in step S908and step S924. The detailed print setting screen may include a plurality of pages. In this case, the page may make transition to the other page in response to user operation such as sliding of a finger. The detailed print setting screen includes a print setting section1001, and enables more detailed print setting than the setting inFIG.7Cby receiving user operation. The printer vendor-specific print setting can be set when such setting is registered with the printer database5200. In the top page of the detailed print setting screen, for example, page aggregation setting for setting the number of pages to be printed in one sheet and a print direction that are not settable in the screen inFIG.7Care settable. A control1002is a control for a preview function. When the control1002is turned on, setting will be made to provide a preview at the time of printing. Note that, in the case where the print extension application402is activated in step S922, the control1002is disabled by being grayed out or hidden. A preview area1003displays a print preview of a document to be printed. Note that, in the case where the print extension application402is activated in step S908, an alternative virtual print preview is displayed because the document to be printed cannot be acquired. When an OK button1004is pressed after the print setting is changed, printing is determined. The processing then proceeds to step S913.

FIG.10Billustrates an advanced function screen of the detailed print setting screen provided by the print extension application402.FIG.10Billustrates the screen displayed in response to operation such as sliding of a finger inFIG.10A. In the advanced function screen, printer vendor-specific functions are listed, and items not settable in the print setting screen illustrated inFIG.7Care settable. In a bookbinding function1011, a toggle1012is slid to turn on the bookbinding function in the print setting. In a poster function1013, a toggle1014is slid to turn on the poster function in the print setting. Further, a combo box1015is changed to set information such as detailed layout. In this example, printing of a poster consisting of two sheets is set. The vendor-specific functions are not limited to the poster printing, and examples of the vendor-specific functions include stapler setting for binding sheets, folding setting for folding and outputting sheets, punch setting for punching sheets, setting of a discharge destination, and setting of a sheet discharge method when printing is performed on a plurality of sheets. As described above, using the print extension application402makes it possible to set items that are not settable in the generic print setting screen.

FIG.10Cillustrates a menu screen of the terminal106a. In the menu screen, icons representing the installed applications401are arranged. In this example, a button1021displays the notification received from the external notification service507. When the button1021is pressed, the print extension application402is activated.

An icon1022represents the print extension application402. When the icon1022is pressed, the print extension application402is activated as described in step S924. After the print extension application402is activated, the print extension application402accesses the URL5204described in the notification, and acquires information on the detailed print setting screen necessary for generation of the print setting from the web service506of the cloud service500. The information to be acquired is not limited to the print setting and the information on the print job, and may include layout in the format such as HTML, CSS, and JavaScript®. Therefore, in place of activation of the print extension application402, a web browser may be activated in order to display the detailed print setting screen, and the web browser may be used as an alternative.

As described above, in the present exemplary embodiment, even in a case where the document creation application403does not provide a screen for vendor-specific print setting, using the print extension application402makes it possible to perform printing with more detailed setting.

In addition, even in a case where the document creation application403does not pass the information about the printer103acquired from the cloud service500, to the print extension application402, the print extension application402can display the print setting screen corresponding to the capability information of the selected printer.

In the first exemplary embodiment, when the user selects the detailed setting button713inFIG.7C, the document creation application403activates the print extension application402. In the case where the document creation application403does not have a function to activate the print extension application402, the document creation application403cannot activate the print extension application402at the above-described timing.

In a second exemplary embodiment, the cloud service500activates the print extension application402in response to selection of the detailed setting button713.

Description ofFIG.1toFIG.8,FIG.9B, andFIGS.10A and10Bwill be omitted because the drawings are similar to the first exemplary embodiment.

Processing when image data created by the document creation application403is printed in the second exemplary embodiment will be described with reference toFIG.11.

Processing that is described inFIG.11and is same as the processing inFIG.9Ais denoted by the same reference numeral inFIG.9A, and description of the processing will be omitted.

The processing described inFIG.11is started in response to print setting being performed in the document creation application403. The processing described inFIG.11is implemented when the CPU of the terminal106or the CPU of the cloud server102executes a program.

The processing in steps S901to S907is similar to the processing in the first exemplary embodiment. In step S1101, the user selects the detailed setting button713in the print setting screen illustrated inFIG.7C. In step S914, the document creation application403requests the cloud service500to create a print job in response to selection of the detailed setting button713. The processing in steps S914to S919and S922to S936is similar to the processing inFIG.9B. In the second exemplary embodiment, the cloud service500transmits notification to activate the print extension application402in response to the user instructing the detailed setting in the print setting screen of the document creation application403. In the present exemplary embodiment, the user does not instruct printing. Therefore, the processing in steps S920and S921is not performed. The processing in steps S920and S921may be performed even in the case where the user selects the detailed setting.

In the first exemplary embodiment, in step S923, the message indicating that the print job has been registered with the cloud server102is displayed. In the second exemplary embodiment, in step S923, a message inquiring of the user whether to activate the print extension application402is displayed. Further, in step S923, a message prompting the user to perform operation for activation of the print extension application402may be displayed. The print extension application402is activated in response to the user performing the operation for activation of the print extension application402in the screen.

As a result, even in the case where the document creation application403cannot activate the print extension application402, the print extension application402can be activated when the user attempts to perform the detailed setting of printing. Further, even when the document creation application403cannot transmit the print setting set in the document creation application403to the print extension application402, the print extension application402can take over the set values set by the user in the document creation application403and can perform setting.

Other Exemplary Embodiments

In the above-described exemplary embodiments, the print extension application402is previously installed in the terminal106. In the case where the print extension application402is not installed, the print setting is performed in the print setting screen provided by the document creation application403. The terminal106may display a screen for installation of the print extension application402based on pressing of the detailed setting button713illustrated inFIG.7Cin the state where the print extension application402is not installed in the terminal106. This makes it possible to install the print extension application402before performing the detailed setting even in the case where the print extension application402is not previously installed in the terminal106.

In the above-described exemplary embodiments, both the document creation application device token and the print extension application device token are registered with the account database5000in order to enable the cloud service500to give notification to the document creation application403and the print extension application402. In a case where the application to be notified by the cloud service500is either the document creation application403or the print extension application402, the token of only the application to be notified may be registered with the account database5000. For example, in a case where the cloud service500notifies only the print extension application402, the processing in and after step S807inFIG.8may be performed without performing the processing in steps S801to S806. In this case, only the print extension application device token5003is registered with the account database5000.

Exemplary embodiments of the present disclosure are implemented by supplying software (program) realizing the functions of the above-described exemplary embodiments to a system or an apparatus via a network or various kinds of storage media, and causing a computer (or CPU, microprocessor unit (MPU), etc.) of the system or the apparatus to read out and execute the program. In this case, the computer program and the storage medium storing the computer program configure exemplary embodiments of the present disclosure.

A server device according to some embodiments can provide a print setting screen adapted to an image forming apparatus to be used for printing in a print service that is generally usable irrespective of a model and a vendor of the image forming apparatus.

Embodiment(s) of the present disclosure can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.

While the present disclosure includes exemplary embodiments, it is to be understood that the disclosure is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.