A user may print a document by adding a printer to an electronic device, such as a printing with a printer communicating directly with the electronic device or communicating via a network. In some cases, a document may be transmitted or transported to another printer. For example, a document may be stored on a portable storage device that is then plugged into a different electronic device attached to a printer. As another example, a printer may communicate with an electronic device over a wireless network.
The drawings describe example implementations. The drawings show methods performed in an example order, but the methods may also be performed in other orders. The following detailed description references the drawings, wherein:
In some cases, an electronic device user may want to print a document where the user does not have access to a printer. For example, a user interface may allow a user to upload a document for printing and associate the document with a particular remote printer. In some cases, a user may want to locate nearby print services for printing the uploaded document. For example, an electronic device associated with the remote storage may compare the location of a printing service to a preferred location, such as the user's current location or a location specified by the user. The electronic device may provide the available printing services and location information related to each of them to the user to allow the user to select a printer or may automatically select one of the printing services based on their locations. For example, a printing service may be selected based on its convenience to the user for picking up the printed document. The electronic device may then send the document to the selected printing service.
In one implementation, a user may upload a document to a remote storage, and an electronic device associated with the remote storage may advertise via a network the available print job for the document. Electronic devices associated with printing services may request the print job. The printing service may, for example, request print jobs for delivery near the printing service. A user interface may present a user with his choices, or the computing system may automatically assign a print job to a requesting printing service. Such an implementation may be used, for example, where a printing service delivers printed documents to a user.
In some cases, a printer may retrieve documents for printing at the printer from a remote storage where the documents are associated with different user virtual printer accounts. For example, multiple users may upload documents for printing and select the printer based on its location or may receive a request from the printer to print the document. Because the printer may not be owned by the users, it may be useful to have a method of spam control to prevent ink waste caused by a printer automatically printing documents from users without the print owner's consent. For example, a printer may display documents for print and wait to print the documents until a user selects them or otherwise indicates that the printer may print.
The network 110 may be any suitable network for communicating between the user electronic device 109 and the electronic device 101 and for communicating between the printers 111, 112, and 113 and the electronic device 101. In some implementations, the network 110 is the Internet. In some implementations, there may be more or fewer printers. The printers 111, 112, and 113 may be any suitable printers, such as printers for printing black and white documents, color documents, or photographs.
The electronic device 101 may be any suitable electronic device, such as a desktop computer, website server, or mobile computing device. The electronic device 101 may include a processor 102, a machine-readable storage medium 103, and a storage 108. The storage 108 may be any suitable storage, such as a volatile or non-volatile storage device. The storage 108 may within the electronic device 101, or the electronic device 101 may communicate with the storage 108 via a network. The storage 108 may store documents 107. In some cases, the storage 108 stores documents such that each document is associated with a user virtual printer account. For example, a user may have a virtual printer account that allows the user to send documents to the virtual printer account for printing and then associate each of the documents with an actual printer. This may allow the same user to print documents at multiple printers not associated with the user and allow other users to print at these printer as well as other printers. For example, a printing service may accept documents from virtual printer accounts for printing.
The processor 102 may be any suitable processor, such as a central processing unit (CPU), a semiconductor-based microprocessor, or any other device suitable for retrieval and execution of instructions. In one implementation, the electronic device 101 includes logic instead of or in addition to the processor 102. As an alternative or in addition to fetching, decoding, and executing instructions, the processor 102 may include one or more integrated circuits (ICs) (e.g., an application specific integrated circuit (ASIC)) or other electronic circuits that comprise a plurality of electronic components for performing the functionality described below. In one implementation, the electronic device 101 includes multiple processors. For example, one processor may perform some functionality and another processor may perform other functionality.
The machine-readable storage medium 103 may be any suitable machine readable medium, such as an electronic, magnetic, optical, or other physical storage device that stores executable instructions or other data (e.g., a hard disk drive, random access memory, flash memory, etc.). The machine-readable storage medium 103 may be, for example, a computer readable non-transitory medium. The machine-readable storage medium 103 may include instructions executable by the processor 102. For example, the machine-readable storage medium 103 may include a document storing module 104, a location comparing module 105, and a document transmitting module 106.
The document storing module 104 may include instructions executable by the processor to store a document in the storage 108. For example, the document storing module 104 may receive a document via the network 110 from the user electronic device 109. The location comparing module 105 may compare the location of printers 111, 112, and 113 to a preferred location. The preferred location may be, for example, a location determined by Global Positioning Satellite (GPS) information or by user input. The location comparing module 105 may select one of the printers 111, 112, and 113 based on the comparison of the location, such as the printer closest to the preferred location. In some cases, the location comparing module 105 includes instructions to provide information about the printer locations relative to the preferred location and receive a user selection from the provided information. The document transmitting module 107 transmits the document from the storage 108 via the network 110 to the selected printer. The selected printer may print the document once it is received. The printer, for example, could be part of a printing service for mailing the document to the user or allowing the user to pick up the printed document.
Beginning at 201, a processor stores a document received via a network. For example, a processor may receive a document for printing from a user's electronic device, such as a personal computer, server, or mobile computing device. The document may be received in any suitable manner. For example, a user interface may be provided for the user to upload the document or a user may send the document to an email address associated with the storage. The processor may store the document in any suitable manner. The processor may store the document in the same electronic device as the processor or in a remote storage. The processor may store additional information associated with the document, such as a user account or preferred location associated with the document. The processor may be the processor 102, and the processor may receive the document via the network 110.
In one implementation, a user establishes a virtual printer account. For example, a user may have a virtual printer instead of or in addition to owning a printer. A user may upload documents to the virtual printer account, such as through a user interface or by emailing the document to an email address associated with the virtual printer account. The processor may receive the document sent to the virtual printer account via the network and store the document for later printing. For example, the processor may transmit the document to a printer remote from the user for printing. The processor may store information about the user or virtual printer account in addition to storing the received document.
Storing the document in a storage remote from the device form which it is received may allow the document to be associated with a printer at multiple time periods, such as when the document is uploaded or when the user enters a printer services location. In some implementations, other information about the document printing may be stored, such as information about printer settings associated with the document. For example, a user may upload a document, information about a time for it to be printed, and information about a paper size for the document to be printed on. Other printer settings may include, for example, media type, duplex or simplex, monotone, draft mode, or water-marking.
In one implementation, the document may be stored for an indefinite amount of time before printing. For example, a user may upload a document for storage and a few days later decide to print the document. In some implementations, a system or user setting provides a time that a document remains in storage before being deleted. For example, a document may remain in the storage for a week, and a user may associate the document with a printer at some point during that week that the document is in storage. In some cases, a user may select to print a document immediately after uploading it to the storage.
Continuing to 202, the processor compares the location of printers to a preferred location to determine a subset of the printers within a distance of the preferred location. The processor may compare the location of printers to a preferred location in response to user input indicating that a stored document should be printed. The processor may receive information about printers. The processor may retrieve information about available printers from a storage or printer services may send information about their availability and location to the processor via a network, such as the Internet. In one implementation, the processor receives information about a preferred location. For example, the processor may receive GPS information about the current location of the electronic device sending the document for storage or may receive information about a user preferred location, such as a current position, address or, site. In some cases, the user may have a set location for each print job or may update the preferred location based on changing circumstances. A setting may indicate, for example, that printers are desired within a particular radius of a preferred location, a number of the closest printers to the preferred location, or a number or printers within the closest drive or walk time of the preferred location. The processor may compare the printer locations to the preferred location based on the settings and determine a subset of the printers. In some cases, printers may be shown on the map, and the printers within the portion of the map displayed on a user device may be selected to be the subset of printers. In some cases, the subset of printers is further refined based on other criteria, such as the availability of the printers, the cost of the print service, or the type of printer.
Referring back to
In one implementation, the stored document is associated with a virtual printer account, such as a printer account of an individual user. The stored document may be associated with a printer based on analysis by the processor or based on user selection. The printer may be selected based on its location. The stored document associated with the virtual printer account may then be associated with the selected printer and sent to the selected printer for printing. This may allow a user without a printer to print to a particular printer or printer service based on the location.
The processor may transmit via the network the document to the selected printer. For example, the processor may transmit the document via the Internet to a printer in a remote location. The printer may automatically print the document in response to receiving it or may display information about the print job and allow a user to select it for printing. In some cases, transmitting the document to the printer involves transmitting the document to an electronic device associated with the printer, such as where the printer itself does not have networking capabilities or where an electronic device performs additional processing prior to sending the print job to the printer.
At 406, the processor receives a selection of printer 490 within a 10 km radius of the preferred location. For example, the user may select the printer 490 from the user electronic device. At 407 the processor sends a request via a network to printer 490 to print the print job. At 408, the processor receives an acceptance via the network from printer 490. At 409, the processor transmits the document and print job settings to the printer 490. At 410, the processor receives a communication from the printer 490 that the print job is complete. The processor may cause the communication to be displayed or otherwise communicate the completion to the user. The user may choose, for example, to pick up the print job at the printer's location.
The network 510 may be used to communicate between the user electronic device 509 and the electronic device 501 and between the print service electronic devices 511, 512, and 513 and the electronic device 501. In some implementations, the network 510 is the Internet. There may be more or fewer print service electronic devices. The print service electronic devices 511, 512, and 513 may be electronic devices associated with printers or printers. In some cases, an electronic device receives a document from the electronic device 501 and forwards the document to a printer. In some cases, the electronic device 501 sends a document for printing directly to a printer.
The electronic device 501 may be any suitable electronic device, such as a server, desktop computer, or mobile computing device. The electronic device 501 may include a processor 502, a machine-readable storage medium 503, and a storage 508. The storage 508 may be any suitable storage, such as a volatile or non-volatile storage device. The storage 508 may within the electronic device 501, or the electronic device 501 may communicate with the storage 508 via a network.
The storage 508 may store documents 507. In some cases, the storage 508 stores documents such that each document is associated with a user virtual printer account. For example, a user may have a virtual printer account that allows the user to send documents to the virtual printer account for printing and then associate each of the documents with an actual printer. A printing service may request to print documents from multiple user virtual printer accounts, and multiple printing services may print documents from the same user virtual printer account.
The processor 502 may be any suitable processor, such as a central processing unit (CPU), a semiconductor-based microprocessor, or any other device suitable for retrieval and execution of instructions. In one implementation, the electronic device 501 includes logic instead of or in addition to the processor 502. As an alternative or in addition to fetching, decoding, and executing instructions, the processor 502 may include one or more integrated circuits (ICs) (e.g., an application specific integrated circuit (ASIC)) or other electronic circuits that comprise a plurality of electronic components for performing the functionality described below. In one implementation, the electronic device 501 includes multiple processors. For example, one processor may perform some functionality and another processor may perform other functionality.
The machine-readable storage medium 503 may be any suitable machine readable medium, such as an electronic, magnetic, optical, or other physical storage device that stores executable instructions or other data (e.g., a hard disk drive, random access memory, flash memory, etc.). The machine-readable storage medium 503 may be, for example, a computer readable non-transitory medium. The machine-readable storage medium 503 may include instructions executable by the processor 502. For example, the machine-readable storage medium 503 may include a document storing module 504, a print job advertising module 505, and a document transmitting module 506.
The document storing module 504 may include instructions to store a document received from the user electronic device 509 in the storage 508. The document may be associated with the user's virtual printer account such that a printer may be associated with each of the documents. The print job advertising module 505 may include instructions to advertise the availability of a print job for the stored document. For example, information about the print job may be sent to multiple electronic devices, such as the print services electronic devices 511, 512, and 513, via the network 510. In response to advertising the availability of a print job, the electronic device 501 may receive a request for the print job from one of the print services electronic devices 511, 512, or 513. The document transmitting module 506 may include instructions for transmitting the stored document to the electronic device that requested the print job to allow the requesting electronic device to print the document.
In some implementations, the electronic device 501 is combined with the electronic device 101. For example, an electronic device may provide the user an option to select a printer based on its location or allow printers to request the print job. In some implementations, printers may request a print job, and a processor may filter the requesting printers by their location compared to a preferred location.
Beginning at 601, a processor stores a document received via a network. For example, the processor 501 may receive a document via the network 510 in the storage 508. The document may be received from a user device. In some implementations, the document may be associated with a virtual printer account. For example, a user may upload a document to a virtual printer account, and associate the document with an actual printer. The virtual printer account may allow a user's documents to be associated with different printers. As a result, a user without a printer may have documents printed by different printing services.
In one implementation, the document may be stored to be associated with a printer for printing, such as a printer of a printing service. The processor may allow the document to be stored indefinitely or for a particular amount of time. In some cases, a user may enter user input indicating that a document in the storage should be printed. The user may select to print the document immediately after uploading it to the storage or at a later time. In some cases, a user may upload a document and indicate a date in the future that the document should be printed. In response to input indicating that the document is ready to be printed, the processor may begin a processor of searching for an available printer to print the document.
Moving to 602, the processor advertises via the network information about an available print job for the document to multiple electronic devices. For example, the processor may broadcast information about the available print job to electronic devices. The information may be the document itself, a portion of the document, or information about the characteristics of the document, such as the size of the document. The processor may advertise the print job in response to user input indicating that a document should be printed.
In some implementations, the processor selects a subset of the electronic devices to advertise the print jobs to, such as electronic devices for providing print services to a particular geographical area or electronic devices with particular types of printing capabilities. In some implementations, the processor advertises information about printer settings for the document such that printer services that have capabilities of printing with the particular settings may request the print job.
Continuing to 603, the processor transmits via the network the document to one of the electronic devices that requested the available print job. For example, the processor may receive requests for the print job, such as printing services offering to print the document for a fee. The processor may allow a user to select one of the requesting print services or may automatically select one of the requesting print services. For example, a particular print service may be automatically selected based on its location or price. In one implementation, the processor starts a bidding process with print service providers. In some cases, the bidding process may be performed for a subset of printer service providers, such as those within a particular location. The processor may compare information about a service level objective associated with a print job or a user initiating a print job to information about each print service provider. The processor may receive information from the print service providers, such as information about quality and price, and may select one of the print service providers based on the received information. For example, the lowest cost provider meeting a quality standard may be selected for the print job.
In one implementation, the processor stores a document associated with a virtual printer account of a user. The processor may associate the document with a printing service based on a request to print the document. The processor may in some implementations notify the user of the printing service selected. The process may then transmit the document to the printing service. This may allow a virtual printer account owner to upload a document for printing without knowledge of available printers because the processor may receive requests from available printers.
In some implementations, the processor may cause information about print service providers requesting the print job to be displayed on a user interface for a user to select one of the print services. Information about the printer services providers may also be shown to a user, such as information about price. The processor may transmit the document to the selected electronic device via the network. The selected electronic device may be, for example, a printer, or an electronic device for sending the document to a printer.
The computing system 900 includes a printer 901, a network 910, and a storage 912. The network 910 may be any suitable network for communicating between the printer 901 and the storage 912. The network 901 may be, for example, the Internet. The storage 912 may be any suitable storage. The storage may be, for example, the storage 108 or 508. The storage 912 may include a document 912. The document 912 may be received from a user electronic device. In some cases the document 912 may be associated with a printer. For example, a user may select a particular printer for printing the document 912.
The printer 901 may be any suitable printer. The printer 901 may have networking capabilities or the printer 901 may include a printer coupled to a separate electronic device with networking capabilities. The printer 901 may include a processor 902, a machine-readable storage medium 903, a printing mechanism 908, and a display 909. The printing mechanism 908 may be used to print a document. For example, the printing mechanism 908 may receive information from the processor 902 about a document to print. The display 909 may be a display device within the printer 901 or coupled to the printer 901. The display 909 may display information about documents to be printed, such as information about the origin of a document or information about printer settings for the document.
The processor 902 may be any suitable processor, such as a central processing unit (CPU), a semiconductor-based microprocessor, or any other device suitable for retrieval and execution of instructions. In one implementation, the printer 901 includes logic instead of or in addition to the processor 902. As an alternative or in addition to fetching, decoding, and executing instructions, the processor 102 may include one or more integrated circuits (ICs) (e.g., an application specific integrated circuit (ASIC)) or other electronic circuits that comprise a plurality of electronic components for performing the functionality described below. In one implementation, the printer 901 includes multiple processors. For example, one processor may perform some functionality and another processor may perform other functionality.
The machine-readable storage medium 903 may be any suitable machine readable medium, such as an electronic, magnetic, optical, or other physical storage device that stores executable instructions or other data (e.g., a hard disk drive, random access memory, flash memory, etc.). The machine-readable storage medium 903 may be, for example, a computer readable non-transitory medium. The machine-readable storage medium 903 may include instructions executable by the processor 902.
The machine-readable storage medium 903 may include, for example, a document information retrieving module 904, a document information displaying module 905, a document selecting module 906, and a document printing module 907. The document information retrieving module 904 may include instructions executable by the processor 902 for retrieving a document, such as the document 912, within the storage 911. For example, the storage 911 may include documents associated with different printers, and the document information retrieving module 904 may include instructions to retrieve information about documents associated with it. The document information may include, for example, a user or user virtual printer account associated with the document or the length of the document. In some implementations, the actual document is retrieved.
The document information displaying module 905 may include instructions for displaying information about the retrieved document on the display 909. For example, information about the document may be displayed for a user to view. In some cases, the document or a portion of the document may be displayed on the display 909. The document selecting module 906 may include instructions for creating a user interface to allow a user to select whether to print a document. For example, a list of documents may be displayed on the display 909, and a user may select one of them for printing. In some cases, one document is shown, and a user accepts or denies the request for printing. The document printing module 907 may include instructions to print selected documents using the printing mechanism 908. In some implementations, the printer 901 prints documents received from the electronic device 101 or 501. For example, the printer 901 may be selected for printing based on its location, or the printer 901 may request the print job for the document.
Beginning at 1001, a processor retrieves via a network a document associated with a printer from a storage. The processor may be, for example, the processor 902 retrieving a document from the storage 911 via the network 910. The printer may, for example, request documents from the storage that are associated with the printer. The documents may be associated with user virtual printer accounts. For example, a user may have a virtual printer account for storing documents remotely from a user where the user may associate an actual printer with each of the documents within the virtual printer account. In one implementation, a user uploads the document to a storage using a virtual printer application, and the printer may have an application to interface with the storage storing the document. The processor may retrieve documents where the documents are each associated with a virtual printer account of a different user. For example, users may upload documents to their virtual printer accounts where the users do not have access to a printer. The documents may be sent to the same printer for printing, such as the same printing service, even though the users of the virtual printer accounts are not associated with one another.
In one implementation, a user may interact with the process using a user interface displayed on a display associated with the printer. The user may access his virtual printer account from the printer. At that point, the processor may retrieve documents associated with the particular virtual printer account. These documents may later be displayed to allow a user to select whether to print some of the documents associated with the virtual printer account on the printer. Moving to 1002, the processor causes information about the document to be displayed. For example, the processor may cause the document or a portion of the document to be displayed on a display associated with a printer. The information about the document may be information about a user or virtual printer account associated with the document. The information may include information about the size of the document or the amount of estimated ink to be used to print the document. Other printer settings received may include, for example, media type, duplex or simplex, monotone, draft mode, or water-marking. The display may be, for example, a monitor connected the printer or a display embedded within the printer housing.
Proceeding to 1003, the processor receives a selection of the document. For example, a user may select a document to begin printing or select the document to print at a later time. The user may select a document by providing touch input to the display, using a peripheral input device, or other method. In some cases, some control is executed automatically. For example, a user may previously indicate that a document from a particular user account should not print, and information about future documents from the account may no longer be displayed for user selection.
Continuing to 1004, the processor causes the selected document to be printed on the printer. For example, the printer may begin printing a selected document. In some cases, the printer receives information about printer settings associated with a document. For example, a user may upload a document for printing to a remote storage and indicate that printer settings for the document are A4 paper size. The information about the printer settings may be transmitted to the printer from the storage via the network, and the printer may print the document according to the received settings.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US11/38491 | 5/31/2011 | WO | 00 | 5/25/2013 |