Terminal device and printer capable of using print intermediation server in which printer related information including print condition information is registered

A terminal device may register printer related information including virtual print condition information indicating a virtual print condition in a print intermediation server, obtain authentication information from the print intermediation server, receive print condition related information being related to an actual print condition from an actual printer after the printer related information was registered in the print intermediation server, and changing, by using the authentication information and the print condition related information, contents of the printer related information being registered in the print intermediation server, from a state including the virtual print condition information to a state including actual print condition information indicating the actual print condition.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to Japanese Patent Application No. 2013-159536, filed on Jul. 31, 2013, the contents of which are hereby incorporated by reference into the present application.

TECHNICAL FIELD

The present specification discloses a technique in which a terminal device causes a printer to perform a print using a print intermediation server.

DESCRIPTION OF RELATED ART

A technique of causing a printer to perform a print, by sending data from a terminal device to a server, and receiving at the printer the data from the server is known. For example, a service on the Internet called Google (registered trademark) Cloud Print (referred to as “GCP” below) is known. For example, a user accesses a printer by using a terminal device, and causes the printer to perform a communication with a server which provides the GCP (referred to as a “GCP server” below). By this means, the printer can register printer related information being related to the printer in the GCP server. The printer related information includes actual print condition information indicating an actual print condition (e.g., paper size, number of colors etc.) which is capable of being used actually in the printer. Consequently, an XMPP (abbreviation of eXtensible Messaging and Presence Protocol) connection is established between the printer and the GCP server. Subsequently, when an image file which represents an image of a print target is to be submitted to the GCP server, the terminal device obtains the actual print condition information from the GCP server, and displays a print setting selection screen for causing the user to select a print setting from the actual print condition. Then, the terminal device submits to the GCP server the image file and print setting information indicating the print setting selected by the user. In this case, by using the XMPP connection, the GCP server supplies a submit notification to the printer. When obtaining the submit notification from the GCP server, the printer obtains from the GCP server print data created from the image file in accordance with the print setting, and performs a print of an image represented by the print data.

SUMMARY

According to the above technique, the user needs to cause the printer to perform a communication with the server to register the printer related information in the server. The present specification provides a technique that may improve a user convenience.

A terminal device may comprise a processor; and a memory storing computer-readable instructions therein. The computer-readable instructions, when executed by the processor, may cause the terminal device to perform: registering printer related information in a print intermediation server, the printer related information including virtual print condition information indicating a virtual print condition, the virtual print condition being a print condition which is capable of being used virtually in a virtual printer; obtaining authentication information from the print intermediation server, the authentication information being to be registered in the print intermediation server in association with the printer related information; receiving print condition related information from an actual printer after the printer related information was registered in the print intermediation server, the print condition related information being related to an actual print condition, the actual print condition being a print condition which is capable of being used actually in the actual printer; and changing, by using the authentication information and the print condition related information, contents of the printer related information being registered in the print intermediation server, from a state including the virtual print condition information to a state including actual print condition information indicating the actual print condition.

A printer may comprise: a print performing unit; a processor; and a memory storing computer-readable instructions therein. The computer-readable instructions, when executed by the processor, may cause the printer to perform: receiving authentication information from a terminal device after the authentication information and printer related information were registered in association in a print intermediation server by the terminal device, the printer related information including virtual print condition information indicating a virtual print condition, the virtual print condition being a print condition which is capable of being used virtually in a virtual printer; establishing a specific connection with the print intermediation server by using the authentication information; sending, to the terminal device, print condition related information related to an actual print condition, the actual print condition being a print condition which is capable of being used actually in the printer, the print condition related information being used by the terminal device to change contents of the printer related information being registered in the print intermediation server from a state including the virtual print condition information to a state including actual print condition information indicating the actual print condition; obtaining, from the print intermediation server by using the specific connection, a notification indicating that file related information and print setting information were registered in the print intermediation server, in a case where the file related information and the print setting information are registered in the print intermediation server in association with the authentication information and the printer related information by the terminal device, the file related information being related to a target file which represents an image of a print target, the print setting information indicating a print setting selected from among the actual print condition by a user of the terminal device; obtaining, from the print intermediation server, print data created from the target file in accordance with the print setting in a case where the notification is obtained; and controlling the print performing unit to perform a print by using the print data.

A control method, computer-readable instructions, and a non-transitory computer-readable medium storing the computer-readable instructions, for achieving any one of the above devices (that is, the terminal device or the printer), are also new and useful. Further, a communication system which has the above terminal device and printer (i.e. the actual printer) is also new and useful.

EMBODIMENT

As illustrated inFIG. 1, a communication system2has a printer10, a portable terminal70and a print intermediation server100. Each of the devices10,70and100can perform a communication with each other via the Internet.

The printer10is a peripheral apparatus (i.e. peripheral apparatus of a PC or the like) which can perform a printing function. The printer10comprises an operation unit12, a display unit14, an NFC (abbreviation of Near Field Communication) interface16, a wireless LAN (abbreviation of Local Area Network) interface18, a print performing unit20, and a controller30. Each of the units12to30is connected to a bus line (a reference numeral is not illustrated). Hereinafter, the interface will be described as an “I/F”.

The operation unit12comprises a plurality of keys. A user can give various instructions to the printer10by operating the operation unit12. The display unit14is a display for displaying various pieces of information. The print performing unit20is a printing mechanism such as an ink jet printing or a laser printing.

The NFC I/F16is an I/F (i.e. an IC chip or a communication circuit) for performing a wireless communication in accordance with an NFC scheme for a so-called short distance wireless communication (referred to as an “NFC communication” below). The NFC scheme, for example, is a wireless communication scheme based on an international standard of ISO/IEC21481 or 18092.

The wireless LAN I/F18is an I/F (i.e. an IC chip or a communication circuit) for performing a wireless communication in accordance with the Wi-Fi scheme defined by the Wi-Fi Alliance (referred to as a “Wi-Fi communication” below). The Wi-Fi scheme, for example, is a wireless communication scheme based on the standard of 802.11 of IEEE (abbreviation of The Institute of Electrical and Electronics Engineers, Inc.) and a standard (e.g. 802.11a, 11b, 11g or 11n) equivalent to this standard. The wireless LAN I/F18may be an I/F for performing a wireless communication via an access point (e.g. a wireless communication of an infrastructure scheme), or may be an I/F for performing a wireless communication not via an access point (e.g. a wireless communication of an ad-hoc scheme or a Wi-Fi Direct scheme).

Here, a difference between the NFC I/F16and the wireless LAN I/F18will be described. A communication speed (e.g. a maximum communication speed is 11 to 600 Mbps) of a wireless communication via the wireless LAN I/F18is faster than a communication speed (e.g. a maximum communication speed is 100 to 424 Kbps) of a wireless communication via the NFC I/F16. Further, a frequency of a carrier wave (e.g. a 2.4 GHz band or a 5.0 GHz band) upon a wireless communication via the wireless LAN I/F18is different from a frequency of a carrier wave (e.g. a 13.56 MHz band) upon a wireless communication via the NFC I/F16. Furthermore, for example, when a distance between the NFC I/F16of the printer10and an NFC I/F of another apparatus (e.g. the portable terminal70) is about 10 cm or less, the controller30can perform an NFC communication with said apparatus via the NFC I/F16. However, a distance between the NFC I/F16of the printer10and an NFC I/F of another apparatus is more than 10 cm, the controller30can not perform an NFC communication with said apparatus via the NFC I/F16. Meanwhile, even when a distance between the wireless LAN I/F18of the printer10and the wireless LAN I/F of another apparatus (e.g. the portable terminal70, an access point) is 10 cm or less or 10 cm or more (e.g. about 100 m at maximum), the controller30can perform a Wi-Fi communication with the apparatus via the wireless LAN I/F18. That is, a maximum distance at which the printer10can perform a wireless communication with another apparatus via the wireless LAN I/F18is longer than a maximum distance at which the printer10can perform a wireless communication with another apparatus via the NFC I/F16.

The controller30comprises a CPU32and a memory34. The CPU32is a processor which performs various processes in accordance with a program stored in the memory34. The memory34is configured by a RAM, a ROM and the like.

When a printer ID “xxx” and first AT (abbreviation of Authentication (or Access) Token) are obtained from the portable terminal70, the memory34further stores the printer ID “xxx” and the first AT. The printer ID “xxx” is ID registered in the print intermediation server100for identifying the printer, and is created by the print intermediation server100. The first AT is authentication information for the print intermediation server100to perform authentication, and is created by the print intermediation server100.

(Configuration of Portable Terminal70)

The portable terminal70is a portable terminal device such as a mobile telephone (e.g. a smartphone), a PDA, a notebook PC, a tablet PC, a portable music playback device or a mobile movie playback device. The portable terminal70comprises an operation unit72, a display unit74, an NFC I/F76, a wireless LAN I/F78and a controller80. Each of the units72to80is connected to a bus line (a reference numeral is not illustrated).

The operation unit72comprises a plurality of keys. A user can give various instructions to the portable terminal70by operating the operation unit72. The display unit74is a display for displaying various pieces of information. The NFC I/F76and the wireless LAN I/F78are the same as the NFC I/F16and the wireless LAN I/F18of the printer10, respectively. Hence, the difference between the NFC I/F76and the wireless LAN I/F78is the same as the difference between the NFC I/F16and the wireless LAN I/F18.

The controller80comprises a CPU82and a memory84. The CPU82is a processor which performs various processes in accordance with an OS program stored in the memory84. The memory84is configured by a RAM, a ROM and the like. The memory84stores further stores a proxy ID for identifying the portable terminal70, an image file F, and an application for printer (referred to as a “printer appl.” below).

The image file F is a file which represents an image captured by, e.g., the portable terminal70. The image file F may be a file in any file format, e.g., may be a file in bitmap format such as JPEG (abbreviation of Joint Photographic Experts Group), may be a file in vector format, or may be a file in text format.

The printer appl. is an application for causing the printer10to perform a print by using the print intermediation server100. The printer appl. is an application provided by a vendor of the printer10. The printer appl. may be installed to the portable terminal70from a server on the Internet, or may be installed to the portable terminal70from a medium shipped together with the printer10.

The printer appl. includes virtual print condition information indicating a virtual print condition which is capable of being used virtually in a virtual printer, not an actual printer (e.g., the printer10). The virtual print condition information indicates a print condition determined in advance by the vendor of the printer10, and includes sheet size information and number of colors information. The sheet size information included in the virtual print condition information indicates “A4”. The number of colors information included in the virtual print condition information indicates “color print” and “monochrome print”. Consequently, the virtual print condition indicated by the virtual print condition information is different from the actual print condition of the printer10.

When the actual print condition information is obtained from the printer10, the memory84further stores the actual print condition information. When the printer ID “xxx” and the first AT are obtained from the print intermediation server100, the memory84further stores the printer ID “xxx” and the first AT.

(Configuration of Print Intermediation Server100)

The print intermediation server100is a server which is located on the Internet, and is, for example, a GCP server provided by Google (registered trademark). In this regard, in modified embodiments, the print intermediation server100may be a server provided by the vendor of the printer10or may be a server provided by a business operator different from the vendor of the printer10.

The print intermediation server100is a server for performing an intermediation of a print between an external apparatus (e.g. the portable terminal70) and a printer (e.g. the printer10). That is, the print intermediation server100converts image file submitted from the external apparatus, creates print data in a data format which can be interpreted by the printer, and supplies the print data to the printer. Therefore, even when the external apparatus does not comprise a printer driver for converting the image data into the print data, the external apparatus can cause the printer to perform a print by submitting the image file to the print intermediation server100.

The user of the portable terminal70performs the following advance preparation in order to cause the printer10to perform a print via the print intermediation server100.

That is, the user of the portable terminal70registers account information AC in the print intermediation server100by using, for example, the portable terminal70. The account information AC includes, for example, a user ID, a password and the like. It should be noted that, the user may register the account information AC in the print intermediation server100by using another apparatus (e.g. a PC) instead of using the portable terminal70. When the account information AC of the user is registered in the print intermediation server100, the user can cause the printer10to perform a print by using the print intermediation server100.

Subsequently, a registration process for the portable terminal70to register various pieces of information in the print intermediation server100will be described with reference toFIG. 2. In the present embodiment, the registration process using OAuth is performed.

In the registration process, the user of the portable terminal70may not be present near the printer10. That is, for example, in a situation that the printer10is located at home and the user goes out carrying the portable terminal70, the user can register various pieces of information in the print intermediation server100by using the portable terminal70.

The user of the portable terminal70first activates the printer appl. being installed in the portable terminal70, and performs a registration operation. The registration operation includes selecting a button indicating “registration” on a screen which is displayed in accordance with the printer appl. The CPU82of the portable terminal70performs each process illustrated inFIG. 2in accordance with the printer appl. when the registration operation is performed.

The CPU82of the portable terminal70first obtains the virtual print condition information included in the printer appl., and a proxy ID “aaa” of the portable terminal70from the memory84. Next, the CPU82supplies the print intermediation server100with a registration request200including the virtual print condition information and the proxy ID “aaa” via the wireless LAN I/F78(i.e., performs a Wi-Fi communication). Moreover, a URL of the print intermediation server100, which is a supply destination of the registration request200, is registered in advance in the printer appl. Below, unless described in particular, the URL of the request supply destination is registered in advance in the printer appl.

When obtaining the registration request200from the portable terminal70, the print intermediation server100creates the printer ID “xxx” for identifying a registration target printer by using the proxy ID “aaa” included in the registration request200. Since the proxy ID “aaa” is the proxy ID of the portable terminal70and is not the proxy ID of an actual printer (e.g., the printer10), the printer ID “xxx” created from the proxy ID “aaa” is not an ID for identifying the actual printer, but can be said to be an ID for identifying a virtual printer.

The print intermediation server100associates the printer ID “xxx” of the virtual printer with the virtual print condition information included in the registration request200and stores them. InFIG. 2, boxes on the right of the broken line corresponding to the print intermediation server100indicate that each piece of information in the boxes is associated with each other. The same also applies forFIG. 3and subsequent figures.

Next, the print intermediation server100supplies to the portable terminal70a response202including the printer ID “xxx” and a login URL which indicates a location of login screen data212described below.

When obtaining the response202from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70stores in the memory84the printer ID “xxx” included in the response202(seeFIG. 1). Next, the CPU82supplies an access request210to the print intermediation server100via the wireless LAN I/F78with the login URL included in the response202as the supply destination.

When obtaining the access request210from the portable terminal70, the print intermediation server100supplies the login screen data212to the portable terminal70. The login screen data212is data which represents a login screen for inputting account information AC (i.e., a user ID, password etc.).

When obtaining the login screen data212from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70displays on the display unit74a login screen represented by the login screen data212. The user inputs, in the portable terminal70by using the operation unit72, the account information AC registered in the print intermediation server100upon the above advance preparation. In this case, the CPU82supplies a login request214including the account information AC to the print intermediation server100via the wireless LAN I/F78.

Moreover, the account information AC is inputted to the portable terminal70by the user in the present embodiment. Instead, when for example the above advance preparation is performed by using the portable terminal70, the memory84of the portable terminal70may store the account information AC. In this case, the CPU82of the portable terminal70may obtain the account information AC from the memory84without having the user input the account information AC, and supply the login request214including the account information AC to the print intermediation server100.

When obtaining the login request214from the portable terminal70, the print intermediation server100performs authentication of the account information AC included in the login request214. Specifically, the print intermediation server100judges whether or not the account information AC included in the login request214is already registered in the print intermediation server100. When judging that the account information AC is not yet registered, that is, when failing to authenticate the account information AC, the print intermediation server100supplies a login failure notification to the portable terminal70although not illustrated. In this case, the registration process is finished without performing subsequent processes.

When judging that the account information AC is already registered, that is, when succeeding to authenticate the account information AC, the print intermediation server100creates the first AT which is a unique token (i.e., character string). Then, the print intermediation server100associates the successfully authenticated account information AC, the printer ID “xxx”, the virtual print condition information, and the first AT with each other and stores them. Next, the print intermediation server100supplies a login success notification216including the first AT to the portable terminal70.

When obtaining the login success notification216from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70stores the first AT included in the login success notification216in the memory84(seeFIG. 1). By this means, the registration process is finished.

Next, a change process for the portable terminal70to change the virtual print condition information registered in the print intermediation server100into the actual print condition information of the actual printer (in the present embodiment the printer10) will be described with reference toFIG. 3. The fat arrows and the thin arrows inFIG. 3respectively indicate NFC communication and Wi-Fi communication. The same also applies for subsequent figures.

When desiring to cause the portable terminal70to perform the change process, the user of the portable terminal70needs to be present near the printer10. As described below, this is because the portable terminal70and the printer10need to perform an NFC communication.

The user of the portable terminal70first activates the printer appl., and performs a change operation. The change operation includes selecting a button indicating “change” on the screen displayed in accordance with the printer appl. When the change operation is performed, the CPU82of the portable terminal70performs each process illustrated inFIG. 3in accordance with the printer appl.

When the NFC link is established, the CPU82of the portable terminal70obtains the first AT and the printer ID “xxx” (i.e., the information stored in the registration process ofFIG. 2) from the memory84. Then, by using the NFC link, the CPU82sends a print condition request220including the first AT and the printer ID “xxx” to the printer10. The print condition request220is a command for requesting the printer10to send the actual print condition information. Here, due to performing an NFC communication, the CPU82can send the print condition request220to the printer10without using the IP addresses of the sending destination and sending source, the URLs of the sending destination and sending source, etc. Below, when NFC communication is performed, the IP addresses of the sending destination and sending source, the URLs of the sending destination and sending source, etc. are not used.

When receiving the print condition request220from the portable terminal70by using the NFC link, the CPU32of the printer10stores the first AT and the printer ID “xxx” included in the print condition request220in the memory34(seeFIG. 1).

Next, the CPU32of the printer10obtains the actual print condition information from the memory34. Then, the CPU32sends the actual print condition information to the portable terminal70by using the NFC link which is the same as the NFC link for receiving the print condition request220.

When receiving the actual print condition information from the printer10by using the NFC link, the CPU82of the portable terminal70stores the actual print condition information in the memory84(seeFIG. 1).

As described above, the print condition request220and the actual print condition information are communicated by using the same NFC link. In other words, both the print condition request220and the actual print condition information are communicated during a period after the device distance has reached a state equal to or less than the predetermined distance (e.g., 10 cm) from being in a state larger than the predetermined distance, and before the device distance returns to the state larger than the predetermined distance. Consequently, in order to perform the communication of the print condition request220and the actual print condition information, the user may perform the single operation of placing the portable terminal70close to the printer10. Consequently, user convenience is high.

When sending of the actual print condition information to the portable terminal70has ended, the CPU32of the printer10controls the display unit14to display a message indicating that the NFC communication has ended. By this means, the user of the portable terminal70can learn that the NFC communication has ended, and can move the portable terminal70away from the printer10. Consequently, when the device distance reaches a state larger than the predetermined distance, the NFC link is disconnected.

Next, the CPU32of the printer10establishes an XMPP connection between the printer10and the print intermediation server100by using the first AT included in the print condition request220. Specifically, the CPU32supplies an XMPP connection request including the first AT to the print intermediation server100via the wireless LAN I/F18(i.e., performs a Wi-Fi communication).

When obtaining the XMPP connection request from the printer10, the print intermediation server100performs authentication of the first AT included in the XMPP connection request. Then, when succeeding to authenticate the first AT, the print intermediation server100creates a connection ID for identifying the XMPP connection, and supplies a response including the connection ID to the printer10.

The print intermediation server100further stores the connection ID in association with the first AT included in the XMPP connection request. By this means, the account information AC, the printer ID “xxx”, the virtual print condition information, the first AT, and the connection ID are associated with each other in the print intermediation server100.

The CPU32of the printer10obtains the response including the connection ID from the print intermediation server100via the wireless LAN I/F18. Consequently, the XMPP connection between the printer10and the print intermediation server100is established. By this means, so-called always-on connection is established between the printer10and the print intermediation server100, so that it is possible to supply a submit notification described below (seeFIG. 4) from the print intermediation server100located on a WAN side to the printer10located on a LAN side.

After the actual print condition information has been stored in the memory84, the CPU82of the portable terminal70supplies a change request230including the first AT and the actual print condition information to the print intermediation server100via the wireless LAN I/F78. The change request230is a command for requesting the print intermediation server100to change the virtual print condition information being registered in the print intermediation server100to the actual print condition information included in the change request230.

When obtaining the change request230from the portable terminal70, the print intermediation server100performs authentication of the first AT included in the change request230. Then, when succeeding to authenticate the first AT, the print intermediation server100stores the actual print condition information included in the change request230instead of the virtual print condition information associated with the first AT. By this means, the account information AC, the printer ID “xxx”, the actual print condition information, the first AT, and the connection ID are associated with each other in the print intermediation server100.

As described above, the virtual print condition indicated by the virtual print condition information is different from the actual print condition of the printer10. Consequently, it may not be possible to cause the printer10to properly perform a print using the print intermediation server100in the state of the virtual print condition information registered in the print intermediation server100. This is because the print intermediation server100can create print data in accordance with a print setting (e.g., number of colors “color”) which the printer10cannot perform. In the present embodiment, as illustrated inFIG. 3, the portable terminal70can change the virtual print condition information being registered in the print intermediation server100to the actual print condition information of the printer10. By this means, it is possible to cause the printer10to properly perform a print using the print intermediation server100(seeFIG. 4described below).

Moreover, in the registration process ofFIG. 2, the printer ID “xxx” is registered in the print intermediation server100as the ID for identifying the virtual printer. Subsequently, in the change process ofFIG. 3, the printer ID “xxx” is not itself changed, but the actual print condition information of the printer10is registered in the print intermediation server100in association with the printer ID “xxx”. Consequently, after the change process ofFIG. 3, the printer ID “xxx” can be said to be an ID for identifying the printer10which is an actual printer.

Next, a print process in which the portable terminal70submits (i.e., registers) an image file which represents an image of a print target to the print intermediation server100, and causes the printer10to perform a print by using the print intermediation server100will be described with reference toFIG. 4.

The print process is performed after the change process ofFIG. 3. Consequently, the XMPP connection between the printer10and the print intermediation server100is established, and the account information AC, the printer ID “xxx”, the actual print condition information, the first AT, and the connection ID are associated with each other in the print intermediation server100(seeFIG. 3).

When desiring to cause the portable terminal70to perform the print process, the user may not be present near the printer10. For example, the user can submit to the print intermediation server100an image file which represents an image captured by the portable terminal70at a visiting place, and cause the printer10to perform a print of the image.

The user of the portable terminal70first activates the printer appl., and performs a print operation. The print operation includes selecting a button indicating “print” displayed on the screen in accordance with the printer appl., and specifying the image file F in the memory84(i.e., the image file F1representing an image which the user desires to print). When the print operation is performed, the CPU82of the portable terminal70performs each process ofFIG. 4in accordance with the printer appl.

The CPU82of the portable terminal70first supplies an access request250to the print intermediation server100via the wireless LAN I/F78.

When obtaining the access request250from the portable terminal70, the print intermediation server100supplies login screen data252to the portable terminal70.

When obtaining the login screen data252from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70controls the display unit74to display a login screen represented by the login screen data252. By using the operation unit72, the user inputs the account information AC to the portable terminal70. In this case, the CPU82supplies a login request254including the account information AC to the print intermediation server100via the wireless LAN I/F78.

When obtaining the login request254from the portable terminal70, the print intermediation server100performs authentication of the account information AC included in the login request254. When succeeding to authenticate the account information AC, the print intermediation server100creates a second AT which is a token different from the first AT. Next, the print intermediation server100associates the successfully authenticated account information AC with the second AT, and stores them. Consequently, in the print intermediation server100, the account information AC, the printer ID “xxx”, the actual print condition information, the first AT, the second AT, and the connection ID are associated with each other. Then, the print intermediation server100supplies a login success notification256including the second AT to the portable terminal70.

When obtaining the login success notification256from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70obtains the actual print condition information from the memory84. Then, the CPU82controls the display unit74to display a print setting selection screen by using the actual print condition information. The print setting selection screen is a screen for causing the user to select a print setting from the actual print condition indicated by the actual print condition information. As described above, the actual print condition information includes “A4” and “B5” as the sheet size information, and “monochrome print” as the number of colors information. Consequently, the print setting selection screen has a manner which enables a selection of “A4” or “B5” as the sheet size. The user selects the print setting by selecting the sheet size (e.g., “A4”) by using the operation unit72while looking at the print setting selection screen. The number of colors (i.e., “monochrome print”) has no option, and therefore is automatically implemented in the print setting.

When the user selects a print setting, the CPU82of the portable terminal70creates a submit request260. The submit request260includes the second AT included in the login success notification256, the printer ID “xxx” in the memory84, the image file F specified by the user, and print setting information PS indicating the print setting selected by the user. Then, the CPU82supplies the submit request260to the print intermediation server100via the wireless LAN I/F78.

When obtaining the submit request260from the portable terminal70, the print intermediation server100performs authentication of the second AT and the printer ID “xxx” included in the submit request260. When succeeding to authenticate the second AT and the printer ID “xxx”, the print intermediation server100associates the image file F and the print setting information PS included in the submit request260with the second AT and the printer ID “xxx”, and stores them. Consequently, in the print intermediation server100, the account information AC, the printer ID “xxx”, the actual print condition information, the first AT, the second AT, the connection ID, the image file F, and the print setting information PS are associated with each other. Then, the print intermediation server100supplies an OK notification262indicating that submission succeeded to the portable terminal70.

The CPU82of the portable terminal70obtains the OK notification262from the print intermediation server100via the wireless LAN I/F78.

The print intermediation server100further supplies to the printer10a submit notification270indicating that the image file F and the print setting information PS were registered. Specifically, the print intermediation server100extracts the connection ID associated with the successfully authenticated second AT and the printer ID “xxx” from each piece of information stored in the print intermediation server100. Then, the print intermediation server100supplies the submit notification270to the printer10by using the XMPP connection identified by the connection ID. By this means, the print intermediation server100located on the WAN side can properly supply the submit notification270to the printer10located on the LAN side.

When obtaining the submit notification270from the print intermediation server100via the wireless LAN I/F18by using the XMPP connection, the CPU32of the printer10creates a print data request272. The print data request272includes the first AT in the memory34, the printer ID “xxx” in the memory34, and data format information indicating data format which can be interpreted by the printer10. In the present embodiment, the data format is “PDF (abbreviation of Portable Document Format)”, but in a modified embodiment the data format may be “PWG-Raster”, “XPS (abbreviation of XML Paper Specification)”, etc.

Next, the CPU32of the printer10supplies the print data request272to the print intermediation server100via the wireless LAN I/F18. Moreover, the CPU32does not supply the print data request272by using the XMPP connection, but supplies the print data request272in accordance with e.g., HTTP (abbreviation of Hyper Text Transfer Protocol), with the URL of the print intermediation server100as the supply destination.

When obtaining the print data request272from the printer10, the print intermediation server100performs authentication of the first AT and the printer ID “xxx” included in the print data request272. When succeeding to authenticate the first AT and the printer ID “xxx”, the print intermediation server100performs the following conversion process.

That is, in accordance with the data format information “PDF” included in the print data request272, and the print setting information PS associated with the first AT and the printer ID “xxx”, the print intermediation server100performs a conversion process on the image file F associated with the first AT and the printer ID “xxx”, in order to create print data D. For example, when the print setting information PS indicates that sheet size is “A4” and that the number of colors is “monochrome print”, the print intermediation server100creates the print data D having the PDF format for performing a print of a monochrome image on A4 print sheets. Next, the print intermediation server100supplies the print data D to the printer10.

When obtaining the print data D from the print intermediation server100via the wireless LAN I/F18, the CPU32of the printer10supplies the print data D to the print performing unit20. Consequently, the print performing unit20prints an image represented by the print data D onto the print sheet. By this means, the user of the portable terminal70can obtain the printed print sheet.

A process according to a comparison embodiment will be described with reference toFIG. 5before an effect according to the present embodiment will be described. A system according to the comparison embodiment includes a printer110, a PC170and the print intermediation server100. The printer110and the PC170can perform a Wi-Fi communication, but cannot perform an NFC communication. Hence, all communications illustrated inFIG. 5are Wi-Fi communications.

A user of the PC170first operates the PC170to access a web server function of the printer110. By this means, the PC170accesses the web server function of the printer110, and sends a registration instruction to the printer110.

When receiving the registration instruction from the PC170, the printer110supplies to the print intermediation server100a registration request including actual print condition information indicating an actual print condition of the printer110and a proxy ID of the printer110.

When obtaining the registration request from the printer110, the print intermediation server100creates printer ID for identifying the printer110by using the proxy ID of the printer110included in the registration request. Next, the print intermediation server100associates the printer ID with the actual print condition information included in the registration request, and stores them. Then, the print intermediation server100supplies a response including the printer ID and a login URL to the printer110.

When receiving the response from the intermediation server100, the printer110sends the login URL included in the response to the PC170. Further, the printer110stores the printer ID included in the response, and performs polling with respect to the print intermediation server100although not illustrated. The polling is performed to establish an XMPP connection between the printer110and the print intermediation server100when the print intermediation server100successfully authenticates the account information.

When receiving the login URL from the printer110, the PC170sends an access request to the print intermediation server100with the login URL as the supply destination. Consequently, the PC170obtains login screen data from the print intermediation server100and displays a login screen. Then, the user inputs the account information to the PC170. In this case, the PC170supplies a login request including the account information to the print intermediation server100.

When obtaining the login request from the PC170, the print intermediation server100performs authentication of the account information, and establishes the XMPP connection between the print intermediation server100and the printer110in response to the polling from the printer110when succeeding to authenticate the account information. Then, the print intermediation server100stores the account information and the connection ID for identifying the XMPP connection. By this means, in the print intermediation server100, the account information, the printer ID, the actual print condition information, and the connection ID are associated with each other.

Next, when a process to submit the image file is performed, the PC170obtains the actual print condition information stored in the print intermediation server100from the print intermediation server100. Then, by using the actual print condition information, the PC170displays a print setting selection screen. When the print setting is selected by the user, the PC170supplies to the print intermediation server100a submit request including the image file and the print setting information indicating the print setting.

When obtaining the submit request from the PC170, the print intermediation server100stores the image file and the print setting information. By this means, in the print intermediation server100, the account information, the printer ID, the actual print condition information, the connection ID, the image file, and the print setting information are associated with each other. Next, the print intermediation server100supplies a submit notification to the printer110by using the XMPP connection.

When obtaining the submit notification from the print intermediation server100, the printer110sends a print data request to the print intermediation server100.

When obtaining the print data request from the printer110, the print intermediation server100performs the conversion process on the image file in accordance with the print setting information, in order to create print data. Then, the print intermediation server100supplies the print data to the printer110.

When obtaining the print data from the print intermediation server100, the printer110performs a print of an image represented by the print data.

(Effect of First Embodiment)

As described above, in the comparison embodiment inFIG. 5, the user must access the web server function of the printer110, cause the printer110to perform a communication of the registration request with the print intermediation server100, and register the actual print condition information of the printer110in the print intermediation server100. Since it is difficult for a user with poor knowledge of the printer110to access the web server function of the printer110, it is difficult for the user to perform the operation for registering the actual print condition information.

In the present embodiment, as illustrated inFIG. 2, a method is employed in which the print condition information of the actual printer is not registered in the print intermediation server100, but instead the virtual print condition information of the virtual printer is registered in the print intermediation server100. Therefore, the user of the portable terminal70does not need to cause the printer10to perform a communication with the print intermediation server100in order to register the virtual print condition information in the print intermediation server100. Consequently, the user70does not need to perform the operation for accessing the web server function of the printer10, and can easily register the virtual print condition information in the print intermediation server100.

As illustrated inFIG. 3, if the user places the portable terminal70near the printer10, the portable terminal70receives the actual print condition information from the printer10. Then, the portable terminal70supplies the change request230including the first AT and the actual print condition information to the print intermediation server100, and registration contents of the print intermediation server100can change from the virtual print condition information to the actual print condition information. Consequently, if the user performs the one-touch operation of placing the portable terminal70close to the printer10, the actual print condition information of the printer10instead of the virtual print condition information can be registered in the print intermediation server100. Consequently, user convenience is high.

Further, as illustrated inFIG. 4, the portable terminal70displays the print setting selection screen by using the actual print condition information. For this reason, the user can select the desired print setting from the actual print condition of the printer10while looking at the print setting selection screen. Then, the portable terminal70registers the image file F and the print setting information PS in the print intermediation server100in association with the account information AC, the printer ID “xxx”, the actual print condition information, etc. Consequently, the user can register the desired image file F and the print setting information PS indicating the desired print setting in the print intermediation server100. Consequently, the user can obtain a print sheet on which the desired image has been printed in accordance with the desired print setting.

Further, in the comparison embodiment inFIG. 5, when the image file is to be submitted to the print intermediation server100, the PC170obtains the actual print condition information of the printer110from the print intermediation server100, and displays the print setting selection screen. Therefore, in order to submit the image file, a communication of the actual print condition information must be performed between the PC170and the print intermediation server100, and the load on the network between the PC170and the print intermediation server100is high.

In the present embodiment, as illustrated inFIG. 3, the portable terminal70stores the actual print condition information of the printer10in the memory84. Therefore, as illustrated inFIG. 4, when the image file F is to be submitted, the portable terminal70can display the print setting selection screen by using the actual print condition information in the memory84. Consequently, since the portable terminal70does not need to obtain the actual print condition information from the print intermediation server100, the communication of the actual print condition information does not need to be performed between the portable terminal70and the print intermediation server100in order to submit the image file F. Therefore, the load on the network between the portable terminal70and the print intermediation server100can be reduced.

The virtual print condition information and the actual print condition information of the printer10are examples of “printer related information” and “print condition related information”, respectively. The first AT is an example of “authentication information”. The image file F is an example of “target file” and “file related information”. The print setting selection screen is an example of “selection screen”. The XMPP connection and the submit notification270are examples of “specific connection” and “notification”, respectively. The NFC scheme and Wi-Fi scheme are examples of “short distance communication scheme” and “predetermined communication scheme”, respectively.

Although the registration process is performed by using the method of OAuth in the first embodiment (seeFIG. 2), the registration process using the method of Client Login is performed in the present embodiment.

As illustrated inFIG. 6, when a registration operation is performed, the CPU82of the portable terminal70controls the display unit74to display a login screen registered in advance in the printer appl. The user inputs the account information AC to the portable terminal70by using the operation unit72. In this case, the CPU82supplies a login request214including the account information AC to the print intermediation server100via the wireless LAN I/F78.

When obtaining the login request214from the portable terminal70, the print intermediation server100performs authentication of the account information AC included in the login request214, and creates the first AT when succeeding to authenticate the account information AC. Next, the print intermediation server100associates the successfully authenticated account information AC with the first AT, and stores them. The print intermediation server100supplies a login success notification216including the first AT to the portable terminal70.

When obtaining the login success notification216from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70stores in the memory84the first AT included in the login success notification216. Next, the CPU82supplies a registration request200including the virtual print condition information and a proxy ID “aaa” to the print intermediation server100via the wireless LAN I/F78.

When obtaining the registration request200from the portable terminal70, the print intermediation server100creates a printer ID “xxx” by using the proxy ID “aaa” included in the registration request200. Then, the print intermediation server100stores the printer ID “xxx” and the virtual print condition information. As a result, in the print intermediation server100, the account information AC, the printer ID “xxx”, the virtual print condition information, and the first AT are associated with each other. Then, the print intermediation server100supplies a registration success notification201including the printer ID “xxx” to the portable terminal70.

When obtaining the registration success notification201from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70stores in the memory84the printer ID “xxx” included in the registration success notification201. By this means, the registration process is finished. The change process and the print process are the same as those in the first embodiment (seeFIG. 3,FIG. 4).

Also in the present embodiment, the portable terminal70can register the virtual print condition information, the printer ID “xxx” and the like in the print intermediation server100, and can provide the same effect as that of the first embodiment. In the present embodiment also, the first AT is an example of “authentication information”.

As illustrated inFIG. 3, in the change process of the first embodiment, the print condition request220includes the first AT and the printer ID “xxx”, whereas in the change process of the present embodiment, the print condition request220does not include the first AT and the printer ID “xxx”. Consequently, since the first AT is not received from the portable terminal70, the printer10does not establish an XMPP connection with the print intermediation server100by using the first AT. Other points are the same as those of the change process of the first embodiment.

In the present embodiment, further, the contents of the print process are different from the first embodiment. As illustrated inFIG. 7, an XMPP connection is not established between the printer10and the print intermediation server100. Consequently, in the print intermediation server100, the account information AC, the printer ID “xxx”, the actual print condition information, and the first AT are associated with each other, but the connection ID is not associated.

In the present embodiment, when desiring to cause the printer10to perform a print, the user of the portable terminal70needs to be present near the printer10. As described below, this is because the portable terminal70and the printer10need to perform an NFC communication.

After the print operation has been performed in the portable terminal70, the communication of each piece of information250,252,254,256,260,262between the portable terminal70and the print intermediation server100is the same as in the first embodiment (seeFIG. 4).

When obtaining the submit request260from the printer10, the print intermediation server100stores the image file F and the print setting information PS, but does not supply a submit notification to the printer10. This is because a submit notification cannot be supplied to the printer10because an XMPP connection is not established between the printer10and the print intermediation server100.

When obtaining the OK notification262from the print intermediation server100via the wireless LAN I/F78, the CPU82of the portable terminal70controls the display unit74to display a message prompting the portable terminal70to be placed close to the printer10. Consequently, the user of the portable terminal70places the portable terminal70close to the printer10. By this means, the device distance changes from a state of being larger than the predetermined distance (e.g., 10 cm) to a state of being less than or equal to the predetermined distance. Consequently, an NFC link between the two NFC I/Fs16,76is established.

When the NFC link is established, the CPU82of the portable terminal70obtains the first AT and the printer ID “xxx” from the memory84. Then, the CPU82sends a print instruction300including the first AT and the printer ID “xxx” to the printer10by using the NFC link.

When receiving the print instruction300from the portable terminal70by using the NFC link, the CPU32of the printer10controls the display unit14to display a message indicating that the NFC communication has ended. By this means, the user of the portable terminal70moves the portable terminal70away from the printer10, and consequently the NFC link is disconnected.

Next, the CPU32of the printer10supplies a print data request302to the print intermediation server100in accordance with the print instruction300. The print data request302includes the first AT included in the print instruction300, the printer ID “xxx” included in the print instruction300, and the data format information “PDF”.

The subsequent point of the print intermediation server100performing the conversion process and supplying the print data D to the printer10, and the point of the printer10performing a print by using the print data D are the same as in the first embodiment.

(Effect of Third Embodiment)

In the present embodiment also, as in the first embodiment, the user of the portable terminal70does not need to cause the printer10to perform a communication with the print intermediation server100in order to register the virtual print condition information in the print intermediation server100. Then, if the user performs the one-touch operation of placing the portable terminal70close to the printer10, the actual print condition information of the printer10can be registered in the print intermediation server100. Consequently, user convenience is high.

Further, in the present embodiment, as illustrated inFIG. 7, the portable terminal70performs the NFC communication to send the print instruction300including the first AT and the printer ID “xxx” to the printer10. Consequently, the printer10can supply the print data request302including the first AT and the printer ID “xxx” to the print intermediation server100, obtain the print data D from the print intermediation server100, and perform a print. Thus, a configuration is adopted in which the print instruction300is sent to the printer10from the portable terminal70instead of a configuration in which a submit notification is sent to the printer10from the print intermediation server100, and consequently an XMPP connection between the printer10and the print intermediation server100does not need to be established. Therefore, the load on the network between the printer10and the print intermediation server100can be reduced.

The vendor of the printer10may install an information providing server on the Internet. For each of a plurality of types of printer sold by the vendor, the information providing server associates a model name of the printer with the actual print condition information of the printer, and stores them. In the change process ofFIG. 3, the portable terminal70receives the actual print condition information from the printer10, however, instead, the portable terminal70may receive the model name of the printer10from the printer10. In this case, the portable terminal70supplies the model name of the printer10to the information providing server, and obtains the actual print condition information of the printer10from the information providing server. Then, the portable terminal70supplies the change request230including the actual print condition information to the print intermediation server100. In this modified embodiment, the model name of the printer10is an example of “print condition related information”.

The printer application may include, for each of the plurality of types of printer, information in which the model name of the printer is associated with the actual print condition information of the printer. Then, as in the modified embodiment 1 described above, the portable terminal70may receive the model name of the printer10from the printer10. In this case, the portable terminal70obtains the actual print condition information of the printer10associated with the model name of the printer10from the printer application, and supplies the change request230including the actual print condition information to the print intermediation server100. In this modified embodiment, the model name of the printer10is an example of “print condition related information”.

In the change process ofFIG. 3, the portable terminal70may not store the actual print condition information of the printer10in the memory84. In this case, in the print process ofFIG. 4, the portable terminal70may obtain the actual print condition information of the printer10from the print intermediation server100, and display the print setting selection screen. Generally speaking, the “controlling a display unit to display a selection screen” may be performed by using actual print condition information.

In the print process ofFIG. 4, the user registers the image file F and the print setting information PS in the print intermediation server100by using the portable terminal70. Instead, the portable terminal70may supply the printer ID “xxx” to a specific device (e.g., PC). Then, as with the portable terminal70ofFIG. 4, the specific device may register the image file F and the print setting information PS in the print intermediation server100by using the printer ID “xxx”. Generally speaking, file related information and print setting information to be registered in a print intermediation server may be registered by a terminal device, or may be registered by a device different from the terminal device. That is, “controlling a display unit to display a selection screen” and “registering . . . file related information . . . and print setting information” can be omitted.

In the print process ofFIG. 4, the portable terminal70supplies the submit request260including the image file F to the print intermediation server100. Instead, when e.g., the image file F is stored on a data server on the Internet, the portable terminal70may supply the submit request260including a URL of the image file F to the print intermediation server100. In this case, the print intermediation server100stores the URL of the image file F. Then, when obtaining the print data request272from the printer10, the print intermediation server100may obtain the image file F from the data server by using the URL of the image file F, convert the image file F, and create the print data D. In this modified embodiment, the URL of the image file F is an example of “file related information”.

The first AT created in the registration process inFIG. 2is registered in the print intermediation server100in a situation that the change process inFIG. 3is performed. In this regard, when the change process inFIG. 3is performed, an expiration period of the first AT may end. Hence, in the registration process inFIG. 2, the print intermediation server100may create not only the first AT but also a so-called refresh token, and associate the refresh token with the account information AC and the like and store the refresh token. In this case, the print intermediation server100can create a new token by using the refresh token when the expiration period of the first AT ends, and store the new token instead of the first AT. Then, the portable terminal70receives the login success notification216including not only the first AT but also the refresh token from the print intermediation server100. In the change process inFIG. 3, the portable terminal70creates a new token by using the refresh token, and supplies the change request230including the new token to the print intermediation server100when the expiration period of the first AT ends. In this modified embodiment, the first AT and refresh token is an example of “authentication information”.

In the registration process ofFIG. 2, the print intermediation server100creates and stores both the first AT and the printer ID “xxx”. By this means, by using the first AT and the printer ID “xxx”, the portable terminal70and the printer10can perform each process of establishing the XMPP connection (seeFIG. 3), supplying the change request230(seeFIG. 3), supplying the submit request260(seeFIG. 4), supplying the print data request272(FIG. 4), and the like. Instead, the print intermediation server100may create the first AT without creating the printer ID. In this case, the portable terminal70and the printer10may perform each process above by using the first AT, without using the printer ID. In this modified embodiment, the first AT is an example of “authentication information”. Further, in another modified embodiment, the print intermediation server100may not create the first AT, but may create the printer ID “xxx”. In this case, the portable terminal70and the printer10may perform each process above by using the printer ID “xxx”, without using the first AT. In this modified embodiment, the printer ID “xxx” is an example of “authentication information”. That is, “authentication information” may be any information used to perform authentication in the print intermediation server.

In each of the above embodiments, the “printer related information” registered in the print intermediation server includes only print condition information (i.e., the virtual print condition information or the actual print condition information of the printer10). In this regard, the “printer related information” may include not only the print condition information, but also other information such as information indicating printer name of the printer, information indicating a printer default setting, information indicating status of the printer, and the like.

The printer10and the portable terminal70may perform a communication of the print condition request220and the actual print condition information by performing a short distance wireless communication of another communication scheme (e.g., a wireless communication in accordance with a transfer jet scheme, an infrared scheme or the like) instead of performing a wireless communication in accordance with an NFC scheme. In this modified embodiment, the another communication scheme is an example of “short distance communication scheme”. Further, the printer10and the portable terminal70may perform a communication of the print condition request220or the like by performing a wireless communication in accordance with the Wi-Fi scheme instead of performing a short distance wireless communication. Furthermore, the printer10and the portable terminal70may perform a communication of the print condition request220or the like by performing a wired communication instead of performing a wireless communication. Generally speaking, the communication may be any communication by which the terminal device and the printer can communicate.

The portable terminal70may perform a wireless communication in accordance with a cellular scheme such as 3G or 4G and perform a communication with the print intermediation server100instead of performing a wireless communication in accordance with the Wi-Fi scheme and performing a communication of various pieces of information (e.g., the registration request200inFIG. 2) with the print intermediate server100. In this modified embodiment, the cellular scheme is an example of “predetermined communication scheme”. Further, the portable terminal70may perform a communication with the print intermediation server100by performing a wired communication when the portable terminal70is connected to the Internet with a wired connection. Generally speaking, the communication may be any communication by which the terminal device and the printer can communicate.

The printer10may perform a wired communication with the print intermediation server100of various pieces of information (e.g., the establishment of the XMPP connection inFIG. 3) when the printer10is connected to the Internet with a wired connection. Generally speaking, the communication may be any communication by which the printer and the print intermediation server can communicate.

The print intermediation server100may not be one server and may be a plurality of servers which are configured separately. For example, the print intermediation server100may have a first server which performs each process inFIG. 2andFIG. 3, and a second server (i.e. a second server which is configured separately from the first server) which performs each process illustrated by the print process inFIG. 4.

“Terminal device” may not be the portable terminal70and may be a desktop PC or another device (e.g., a television).

In each of the above embodiments, the CPU32of the printer10and the CPU82of the portable terminal70perform a program in the memories34and84to implement each process inFIGS. 2 to 4. Instead, at least one process of each process inFIGS. 2 to 4may be implemented by hardware such as a logic circuit.