With mobile devices such as smart phones and PDAs (Personal Digital Assistants), users can access and view content from a multitude of web sites. Printing content from a mobile device can involve communicating an URL (Uniform Resource Locator) to the cloud, the cloud being a server or group of servers. Using the URL, the cloud retrieves content from a corresponding web site and sends that content to a networked printer for printing. This approach fails when the content viewed on the mobile device has been personalized by the web site based on a user profile or other data. In other words, the content retrieved for printing by the cloud will not contain the relevant elements displayed to the user of the mobile device. For example, the content displayed on a device may include a user's personal account information, while the content retrieved by the cloud using the URL may be a log-in screen asking for user credentials.
INTRODUCTION: Various embodiments described below were developed in an effort to enable remote printing from mobile devices. In particular, various embodiments allow a user to print, via the cloud, a rendering of content displayed on a mobile device. Where that content is personalized, content of a device view is extracted and communicated to the cloud where it is formatted for printing. Where the content is not personalized, a reference for accessing the content is communicated instead.
The term remote, as it refers to printing, is used to indicate that the printing initiated on a mobile device does not occur on the local network of the mobile device. For example, a user may, from a mobile device, request a print while at work, and the printing may occur at the user's home or other location remote from the local network to which the user is connected to at the time of the print request. In the context of a mobile device such as a cell phone, the local network is the communication link between the mobile device and a data service provider for the mobile device. Thus, there is no direct wired or wireless link between the mobile device and the printer. Rather, the printer is remote requiring an indirect link through the data service provider and one or more other servers.
As used herein, the term cloud refers to a server or a group of linked servers accessible via a network such as the internet. Content refers to text, images, and the like that can be retrieved via a network and presented for viewing by a user of a computing device. Personalized content refers to content generated or assembled based on data identifying a device, a user, or a group. Such data may, for example, be maintained by a server in a session cache, passed to the server using a cookie, or discerned through SSL (Secure Socket Layer) communications between the client and the server. For example, a user logged into a web site may send a request to a web server using an URL (Uniform Resource Locator). The server can generate and return content personalized based upon a cached session, a cookie provided with the request, or an SSL handshake. Thus a second device typically cannot use the same URL to retrieve the same personalized content.
The following description is broken into sections. The first, labeled “Environment,” describes an exemplary environment in which various embodiments may be implemented. The second section, labeled “Components,” describes examples of various physical and logical components for implementing various embodiments. The third section, labeled as “Operation,” describes steps taken to implement various embodiments, and the fourth section labeled “Examples” describes examples of formatting and printing content.
ENVIRONMENT:
Each server 14 and 16 represents one or more computing devices capable of receiving and responding to network requests from mobile device 12. As discussed with reference to
Devices 12, 14, 16, and 18 are interconnected via link 20. Link 20 represents generally one or more of a cable, wireless, fiber optic, or remote connections via a telecommunication link, an infrared link, a radio frequency link, or any other connectors or systems that provide electronic communication. Link 20 may include, at least in part, an intranet, the Internet, or a combination of both. Link 20 may also include intermediate proxies, routers, switches, load balancers, and the like. The paths followed by link 20 between client devices 12, 14, 16, and 18 as depicted in
In the example of
COMPONENTS:
A request from mobile device 12 may include a reference. Web server 28 passes that reference to web service 30. Web service 30 accesses content associated with the reference from data 32, passing that content back to web server 28. Web server 28 returns the content to mobile device 12. The request from mobile device 12 may include a cookie or other user, group, device, or session identifying data. As a consequence, web service 30 may access data 32 and generate personalized content in response to the request. The request may also include a reference and an indication that it was received from a mobile device. Web service 30 may then access and pass back mobile content associated with the reference instead of content meant for a device such as a desktop or laptop computer.
Mobile device is shown to include user interface 34, browser 36, content extractor 38, and remote print driver 40. User interface 34 represents generally a display device capable of being used to present a visual display of content for viewing by a user. User interface 34 may also include a speaker and an input device enabling the user to enter commands. Such an input device may be implemented through one or more physical buttons, a touch screen interface, an audio sensor, and a video sensor.
Browser 36 represents generally any combination of hardware and programming configured to send a request to web site 12, to receive content returned in response, and to format the content for display of a device view by user interface 34. A device view is the graphical presentation of the content as configured to be view by a user of mobile device 12. As noted, a request may include user or device identifying data. Based on that data, the content returned may be personalized and may be mobile. Content extractor 38 represents generally any combination of hardware and programming configured to extract content of a device view caused to be displayed by user interface 34. In general, extracting content of the device view involves selecting some or all of the content elements included in the device view. In particular, extracting content of the device view may be accomplished by:
Remote print driver 40 represents generally any combination of hardware and programming configured to communicate extracted content to print site 16 where the extracted content is to be formatted for printing. In particular, a user of mobile device 12 interacts with remote print driver 40 to indicate a desire to print. In a given implementation, remote print driver 40 responds by causing content extractor 38 to extract content of the device view. Remote print driver 40 obtains and communicates the extracted content to print site 16. In another implementation, remote print driver 40 first determines if the content to be extracted is personalized content. If it is, remote print driver 40 proceeds as described above. If not, remote print driver 40 obtains and communicates a reference to print site 16. That reference can then be used by print site 16 to obtain content from web site 14 and then format that content for printing. The content of the device view may be mobile content associated with the reference. However, print site 16 can, if appropriate, modify the reference to obtain non-mobile content that is better suited for printing from web-site 14.
Continuing with
Content formatter 44 represents generally any combination of hardware and programming configured to format received content for printing. Such may include formatting the content, as-is, into a format compatible for printing by printer 18 or digital archiving. Exemplary formats include Post Script, PDL (Page Description Language), and PDF (Portable Document Format). Described in more detail below with respect to
Content retriever 46 is responsible for retrieving additional content elements from web site 12 or another source as directed by formatter 44. Content formatter 44 then formats the content originally received along with the additional content later retrieved. When adding elements, content formatter 44 may analyze the content to identify a theme and then use that theme to identify and insert additional content elements relevant to the theme. For example, the content may include a key word or phrase indicating that travel from one place to another. Content formatter 44 may instruct content retriever 46 to retrieve one or more advertisements relevant to the route between the two locations. Content formatter 44 may also have knowledge of the location of printer 18 and cause content retriever 46 to retrieve advertisements or other information such as weather or an event schedule relevant to that location. Further, content formatter 44 may also identify a user who requested the print as well as a location of mobile device 12 based on an IP address, user profile, or other pertinent information. Content formatter 44 can use such information to cause content retriever 46 to retrieve content elements relevant to the user.
Content retriever 46 represents generally any combination of hardware and programming capable of retrieving content. Such content may be retrieved from web site 14 or from any of a multitude of sources accessible via link 20 (not shown). As noted above, mobile device interface 42 is responsible for receiving extracted content of a device view. Mobile device interface 42 may, in certain instances, receive a reference from mobile device 12 rather than extracted content. In such cases the reference is passed to content retriever 46. Content retriever 46 then utilizes the reference to retrieve associated content from web site 12. Content formatter 44 can then format the retrieved content for printing.
It is expected that the received reference, in some cases, may be a reference for retrieving mobile content. For example, non-mobile content may be accessed using the reference: “www.[website].com” while mobile content is retrieved using “www.mobile.[website].com.” The sub-domain “mobile” provides the indication to website 12 that mobile content is to be returned. Of course, other sub-domains and techniques may be used to identify the reference as being associated with mobile content. The mobile content retrieved using that mobile reference may be appropriate for display by mobile device 12. However, the same mobile content may not be ideal for print. Thus, content retriever 46 may examine the reference provided by mobile device 12 to determine if it is a mobile reference. Continuing with the above example, content retriever 46 may identify and remove a sub-domain such as “mobile” from the reference. Content retriever 46 can use the modified reference to retrieve non-mobile content that is then formatted by content formatter 44 for printing.
Printer interface 48 represents generally a combination of hardware and programming capable communicating a print job for the formatted content to printer 18. In particular, printer interface 48 may be responsible for first identifying printer 18 as the destination for the print job based on user preferences or other relevant considerations. Printer interface 48 may also be responsible for receiving communications from printer 18 and then using mobile device interface 42 to route the communications back to mobile device 12. Such communications may include an indication that the print job was received, the print job has been printed, any error messages, and any other information related to the print job.
Printer 18 includes network interface 50 and print engine 52. Network interface represents generally any combination of hardware and programming capable of receiving print jobs from print site 16 and communicating information related to received print jobs back to print site 16. Print engine 52 represents generally any combination of hardware and programming capable of producing printed output from print jobs received from print site 16. In particular, print engine 52 utilizes imaging material such as ink or toner to form a desired image on a print medium.
Moving to
Display formatter 59 represents generally any combination of hardware and programming capable of formatting content received by web site interface 58 into a device view for mobile device 12. Such a device view may take the form of a compressed bitmap representation of the content returned by web site 14. Mobile device interface 56 is then responsible for returning the formatted device view to mobile device 12. This approach provides for quicker load times for mobile device 12 since the majority of the processing takes place on proxy site 54.
Referring back to
Remote print driver 40′ represents generally any combination of hardware and programming configured to communicate extracted content to print site 16 where the extracted content is to be formatted for printing. In particular, user of mobile device 12 interacts with remote print driver 40′ to indicate a desire to print. In a given implementation, remote print driver 40′ responds by causing content extractor 38 to extract content of the device view. Remote print driver 40′ obtains and communicates the extracted content to print site 16. In another implementation, remote print driver 40′ first determines if the content to be extracted is personalized content. If it is, remote print driver 40′ proceeds as described above. If not, remote print driver 40′ obtains and communicates a reference to print site 16. That reference can then be used by print site 16 to obtain content from web site 14 and then format that content for printing. In a given example, the content of the device view may be mobile content associated with the reference. However, the reference communicated to print site 16 allows print site 16 to obtain non-mobile content that is better suited for printing from web-site 14.
Moving to
Content retriever 46′ represents generally any combination of hardware and programming capable of retrieving content. Such content may be retrieved from web site 14 or from any of a multitude of sources accessible via link 20 (not shown). As noted above, network interface 50 is responsible for receiving extracted content of a device view. Network interface 50 may, in certain instances, receive a reference from mobile device 12 rather than extracted content. In such cases the reference is passed to content retriever 46′. Content retriever 46′ then utilizes the reference to retrieve associated content from web site 12. Content formatter 44′ can then format the retrieved content for printing by print engine 52.
It is expected that the received reference, in some cases, may be a reference for retrieving mobile content. For example, non-mobile content may be accessed using the reference: “www.[website].com” while mobile content is retrieved using “www.mobile.[website].com.” The sub-domain “mobile” provides the indication to website 12 that mobile content is to be returned. Of course, other sub-domains and techniques may be used to identify the reference as being associated with mobile content. The mobile content retrieved using that mobile reference may be appropriate for display by mobile device 12. However, the same mobile content may not be ideal for print where a printed page has additional space. Thus, content retriever 46 may examine the reference provided by mobile device 12 to determine if it is a mobile reference. Continuing with the above example, content retriever 46′ may identify and remove a sub-domain such as “mobile” from the reference. Content retriever 46 can use the modified reference to retrieve non-mobile content that is then formatted by content formatter 44′ for printing by print engine 52.
In foregoing discussion, various components were described as combinations of hardware and programming. Such components may be implemented in a number of fashions. In one example, the programming may be processor executable instructions stored on tangible memory media and the hardware may include a processor for executing those instructions. Thus, certain elements operating on the same device may share a common processor and common memory media.
OPERATION:
Content for generating a device view is requested and received (step 60). A display of the device view is caused (step 62). As described, a device view is the graphical presentation of the content as configured to be viewed by a user of a device such as mobile device 12 of
It is determined if a user has requested a remote print (step 64). Until a positive determination is made in step 64, steps 60 and 62 may repeat. Upon a positive determination in step 64, a determination is made as to whether the content of the device view is personalized (step 66). As discussed above personalized content refers to content that was generated or assembled based on a profile or other user, group, or device identifying data. Referring back to
The determination in step 66 may be made based upon user input. For example, a user, when issuing a remote print request may indicate whether or not the content is personalized.
Upon a determination in step 66 that the content is not personalized, the reference used to access the content in step 60 is obtained and communicated (step 68). With reference to
Referring to
Referring back to step 66, upon a determination that the content is personalized, content of the device view is extracted and communicated (step 76). As discussed above, extracting content of the device view in step 66 can include one of:
The extracted content communicated in step 76 is received (step 78) and formatted for print (step 80). Referring to
A print job for the content formatted in step 74 or step 80 is communicated (step 82). Referring to
Starting with
Selection of the “Print-Auto” option allows for an automatic determination of whether or not the content is personalized. As previously discussed, such a determination may be made based upon an analysis of a reference used to obtain the content of device view 22 or whether a log-in procedure was used to access the content. The latter two options allow user input to specify whether or not the content of device view 22 is personalized. Selection of the “Print by Reference” option is an indication that the content is not personalized, while selection of the “Print by Value” option is an indication that the content is personalized. Note that the particular names of the options are meant only to distinguish each option form the others.
Pages 86, 88, and 90 each represent a different version of an exemplary printed output of device view 22. Page 86 was produced following a determination that the content of device view 22 was not personalized. Pages 88 and 90 on the other hand were produced following a determination that the content was personalized. Referring first to page 86, reference 24 has been communicated from or on behalf of mobile device 12 following either a selection of the print by reference option or a selection of the auto-print option and subsequent determination that the content of device view 22 is not personalized. As noted, content of device view 22 is mobile content. Thus, the communicated reference is modified and used to retrieve non-mobile content that is formatted to generate a print job designed to produce page 86. In this example, that non-mobile content includes a representation 92 of device view 22 plus additional elements 94 that fill the printed page.
Referring to page 88, extracted content of device view 22 has been communicated from or on behalf of mobile device 12 following either a selection of the print by value option or a selection of the auto-print option and subsequent determination that the content of device view 22 is personalized. As discussed, the extracted content may be a bitmap representation of device view 22, a document object model defining device view 22, selected content from the document object model, or user selected content from device view 22. The extracted content is then formatted to generate a print job designed to produce page 88. In this example, the extracted content is formatted such that it includes only a representation 96 of device view 22.
Representation 96 of device view 22 in page 88 leaves a significant amount of blank space on page 88. Page 90 provides an example in which that blank space is utilized. As with page 88, extracted content of device view 22 has been communicated form or on behalf of mobile device 12 following either a selection of the print by value option or a selection of the auto-print option and subsequent determination that the content of device view 22 is personalized. The extracted content is then formatted to generate a print job designed to produce page 90. In this example, the extracted content is formatted such that it includes a representation 98 of device view 22. The extracted content has also been formatted to add elements 100. As discussed above, these additional elements 100 may include advertisements or other information relevant to the extracted content.
Moving to
Article section 104 is shown to include title 118, text 120, image 122 inline ad 124, text 126, inline ad 128, text 130, and, in some cases, continuation link 132. Title 118 represents a title of the article content. Text 120, 126, and 130 represent the main text of the article content. Image 122 represents a picture or other graphical content that is part of the article content. Inline ads 124 and 128 represent links to other websites and are not necessarily related to title 118, text 120, 116, and 130, and image 122, and are peripheral to the article content. The article content may span one or more additional web pages. In such a case, continuation link 132 is included. Continuation link 132 represents a link to a subsequent web page that contains additional article content and often times appears at the end of article section 104 and includes the word “next” or “1” and “2.” That additional web page may or may not include another continuation link to yet another web page.
Column section 108 is shown to include column ad 134, related links 136, and column ad 138. Column ads 134 and 138 represent links to other websites and that may or may not be related to the topic of the article content. Related links 136 represent links to other web pages of the web sited that include other article content related to the article content of web page 102. Footer 110 is shown to include banner ad 140 and web site link bar 142. Banner ad 140 represents generally an image serving as a link to another web page. Web site link bar 142 represents a group of links for navigating the web site. Typically, none of the content 134-142 is directly related to the topic of the article content of section 104.
Using web page 102 of
Starting with
Root node 146 includes or otherwise encompasses child nodes 148 and 150. With respect to one another, nodes 148 and 150 are siblings at the same hierarchical level within structure 144. Node 148 corresponds to a head tag of the HTML code and includes child node(s) identified as head content 152. Head content 152 represents one or more child nodes containing content that is not directly visible to a viewer of a web page. Head content 152 can include an external links to items such as style sheets and JavaScript programs. Head content 152 also includes the title for the web page that appears in the top bar of a viewer's browser. Other elements may include a page description and key words.
Node 150 corresponds to the body tags of the HTML code and includes or otherwise encompasses content 154-160 corresponding, in this example, to sections 104-110 of web page 102. In other words body content 154-160 represents the various child nodes defining the content that can be seen when the web page is viewed. Header content 154 represents the various nodes defining the content of header section 106 of web page 102. Article content 156, expanded upon with respect to
Referring now to
Referring to
As noted above, the goal is to extract and print content from article section 104 excluding content from other sections 106-110. Another goal is to further pare advertisements and other peripheral information from the extracted article content before it is printed. To do so, structure 144 shown in
Moving to
Content from identified article node 166 and sibling nodes 164 and 168-178 is extracted and merged as depicted by exemplary content structure 188 of
The content 164a, 166a, 168a, 174a, and 176a of content structure 190 can then be printed as depicted by produced content 100 of
CONCLUSION: The diagrams of
Also, the present invention can be embodied in any computer-readable media for use by or in connection with an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain the logic from computer-readable media and execute the instructions contained therein. “Computer-readable media” can be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Computer readable media can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable compact disc.
Although the flow diagram of
The diagrams of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US10/22645 | 1/29/2010 | WO | 00 | 1/19/2012 |