1. Field
The present disclosure relates generally to communication among peripheral devices. More specifically, the present disclosure relates to a method and system for printing documents from a portable device using optical codes to identify the printing device.
2. Related Art
The proliferation of portable devices is changing the way people work. For example, people receive emails with document attachments that can include large documents, presentation slides, and schedules. Typically, such attachments are difficult to read on the portable device because of limited screen sizes. At the same time, printing from the portable device is difficult for several reasons. The portable device might not have enough memory or computing power to support printer drivers. A printer driver designed for the operating system on the portable device might not be available. The portable device is often required to discover nearby printers in a new environment, which can be time-consuming and might not always be successful. Furthermore, the portable device might not have secure network access to the printer, thus introducing security concerns in the printing process.
Current solutions to the problems inherent in printing from a portable device are complicated. A portable device must follow a complicated series of steps, including discovering the printer, downloading software drivers, creating an account, uploading documents, logging into the printer, and selecting documents. In addition, printing from a portable device requires new, costly and/or retrofitted hardware, such as Bluetooth®, WiFi®, RFID, NFC, USB, and IrDA.
One embodiment provides a system for printing a document from a portable device. During operation, the system captures an image of an optical code that identifies a printing device, wherein the optical code is displayed on a panel of the printing device or is printed by the printing device. Next, the system transfers information identifying the printing device to a remote printing service, thereby allowing the remote printing service to print a document at the printing device.
In some embodiments, the optical code contains a name or IP address of the printing device.
In some embodiments, the optical code expires after a predetermined period of time.
In some embodiments, the optical code expires after a predetermined number of uses.
In some embodiments, the optical code is a QR Code.
In some embodiments, the system transfers user credentials to the remote printing service for authentication and/or billing.
In a variant of the embodiment, the user credentials include one or more of: a user identifier, a timestamp, and a digital signature of the user identifier and the timestamp.
In some embodiments, the system transfers the document to be printed or a location of the document to be printed to the remote printing service.
In the figures, like reference numerals refer to the same figure elements.
The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Overview
Embodiments of the present invention solve the problem of printing a document from a portable device using a remote printing service. Without local access to a printer, the portable device obtains with an attached camera an optical code identifying the printer. The user of the portable device then transfers the printer identifier contained in the optical code, as well as the document to be printed or information indicating a location of the document, to the printing service. Based on the printer identifier, the printing service transfers the document to the corresponding printer for printing. In addition, the printing service can authenticate and/or bill the user for printing.
This basic idea of using an optical code to identify a printer for printing from a portable device can be applied in different computing environments. One such example is illustrated by the document-printing system shown in
The printer identification information encoded in optical code 115 may be a name or an Internet Protocol (IP) address of the printer. Decoding of optical code 115 can be performed by portable device 110 itself, or by remote printing service 130. Moreover, optical code 115 can be any optical representation of information that can be captured and recognized by any image device, such as a camera on a portable device. Typical optical codes include, but are not limited to: one-dimensional barcodes, two-dimensional barcodes (also called matrix codes, such as the “Quick Response” or “QR” codes), and data glyphs. The encoding of the information in the optical code follows well-known techniques, such as Unix-to-Unix encoding (uuencoding) or multipart Multipurpose Internet Mail Extensions (MIME) protocols.
The document-print system illustrated in the example in
Note that this disclosure uses the term “printer optical code” interchangeably with “optical code.” Furthermore, the terms “printer” and “multi-function device” are also used interchangeably in this disclosure. Functions, methods, and operations described in this disclosure to be performed by a printer or an MFD can also be performed by a computer associated with the printer or MFD.
Secure “Internet Fax”
In the exemplary document-printing system illustrated in
In some embodiments, the document-printing system can be built upon the “Internet fax” technology and adds a remote printing service to make it secure. The “Internet fax” functionality is enabled on all participating printers, but the specific email addresses associated with the printers are not disclosed to end-users. Instead, users are required to register at the printing service and can print only if they submit proper credentials to the printing service. As part of the process, the printing service may also charge users printing fees based on usage.
The printing service demands the following information from the user of the portable device:
As shown in
In some embodiments, the portable device may send the optical code containing the printer identifier directly to the printing service. The printing service then decodes the optical code and identifies the target printer. In other embodiments, after a portable device has captured and decoded the optical code, it sends the decoded printer identifier to the printing service. Furthermore, the portable device can use the printer identifier to populate a “recent printers” list for other applications. The decoded printer identifier can also be integrated into a persistent configuration of the portable device as part of a seamless mobile printing experience for the user.
In some embodiments, the portable device communicates with the printing service via emails. In other embodiments, this communication may be carried out through a custom TCP/IP connection from a dedicated print driver. In this case, administrators of the printing service have to ensure that the TCP/IP connection is not blocked by firewalls or other network security mechanisms located on the communication links between the portable device and the printing service.
The printing service may rely on any single sign-on authentication mechanism, such as OpenID to verify the user's credentials. The printing service allows a printing job only if the user is on a whitelist of users who are authorized to access the printer. Alternatively, one user may lend his credentials to other users by generating a QR code that not only identifies the printer but also contains the user's credentials. Other users can conveniently print documents with the QR code generated by the lender.
Optionally, the printing service may send a notification to the user of a completed printing job. This is desirable especially when the user would like to receive a reminder to pick up the documents rather than waiting in front of the printer. If the printing service denies a user's printing request, it could print an error message indicating the reason for failure at the target printer, so the user is notified of the outcome of his printing request. The printing service may also monitor the number of invalid print requests sent from a user or an IP address. If the number of invalid requests exceeds a threshold, the printing service will stop printing out error messages and notify the system administrators of potential denial-of-service attacks.
System Operation
Exemplary Portable Device
Storage 530 stores programs to be executed by processor 510. Specifically, storage 530 stores a program that implements a system (application) for printing a document from a portable device using a remote printing service. During operation, the application program can be loaded from storage 530 into memory 520 and executed by processor 510. As a result, portable device 500 for document printing can perform the functions described above.
During operation, image-capturing mechanism 540 captures an image of an optical code that identifies a printing device. Subsequently, communication mechanism 550 transfers information identifying the printing device to a remote printing service. As a result, the remote printing service can print a document at the printing device.
The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing code and/or data now known or later developed.
The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
Furthermore, methods and processes described herein can be included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field-programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
The foregoing descriptions of various embodiments have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention.
Number | Name | Date | Kind |
---|---|---|---|
7168036 | Klotz, Jr. | Jan 2007 | B2 |
7455229 | Tanaka | Nov 2008 | B2 |
7822411 | Nakatani | Oct 2010 | B2 |
8040542 | Oda et al. | Oct 2011 | B2 |
20030063309 | Parry | Apr 2003 | A1 |
20030197887 | Shenoy et al. | Oct 2003 | A1 |
20040185877 | Asthana et al. | Sep 2004 | A1 |
20060086800 | Watanabe et al. | Apr 2006 | A1 |
20070086051 | Kunori | Apr 2007 | A1 |
20070116358 | Klotz et al. | May 2007 | A1 |
20070133843 | Nakatani | Jun 2007 | A1 |
20070192438 | Goei | Aug 2007 | A1 |
20070201081 | Murayama | Aug 2007 | A1 |
20080278753 | Oda et al. | Nov 2008 | A1 |
20090106380 | Asthana et al. | Apr 2009 | A1 |
20090293110 | Koga | Nov 2009 | A1 |
20100309504 | Partridge et al. | Dec 2010 | A1 |
20100309505 | Partridge et al. | Dec 2010 | A1 |
20110085196 | Liu et al. | Apr 2011 | A1 |
20110096354 | Liu | Apr 2011 | A1 |
20120002239 | Okamura | Jan 2012 | A1 |
Number | Date | Country | |
---|---|---|---|
20120250065 A1 | Oct 2012 | US |