Printing content from the World Wide Web (or simply “the web”) is becoming increasingly common. Print apps are software applications that allow a user of a web-connected printer to download and print content designed for the selected print app. For example, a user may select a print app designed to provide children's coloring pages which are updated on a periodic basis. Thus, by executing the print app, the user is able to print coloring pages directly via the print app without the need to connect the printer to another device such as a computer.
The following description includes discussion of figures having illustrations given by way of example of implementations of embodiments of the invention. The drawings should be understood by way of example, not by way of limitation. As used herein, references to one or more “embodiments” are to be understood as describing a particular feature, structure, or characteristic included in at least one implementation of the invention. Thus, phrases such as “in one embodiment” or “in an alternate embodiment” appearing herein describe various embodiments and implementations of the invention, and do not necessarily all refer to the same embodiment. However, they are also not necessarily mutually exclusive.
As discussed above, print apps provide easy access to print content from the web. However, such print content is limited by the number of available print apps. For example, as mentioned above, there may exist a print app for children's coloring pages, but that print app may only include coloring pages of princesses and fairies. Thus, if a user desires to print children's coloring pages of animals, for example, the user may be unable to do so if there is no print app specifically designed for that purpose. Accordingly, various embodiments described herein facilitate the generation of print content on the fly in response to a user-submitted search. In other words, embodiments described herein allow a user to submit a search query (e.g., by typing text) for specific content. In response to the search query, print content specific to the search query is provided to the user for printing. As an example of various embodiments, a user can submit a search query for children's coloring pages that include farm animals and receive multiple options of farm animal print content that can be selected for printing.
Server system 110 is connected to the World Wide Web (WWW) via the Internet. Server system 110 receives a request for print content from a user. As used herein, “print content” refers to any content that is suitably formatted for printing. In some embodiments, print content may be limited to a subset of webpage content determined to be relevant for printing search query, which is described in more detail below. The request may originate from a web browser (e.g., running on a desktop, notebook or other computing device), a mobile device, a printer or other suitable web-connected computing device. In various embodiments, the request includes variable user input, which is defined herein to include search strings received via text input, voice command, or other suitable mechanism. For example, a search box may be presented to the user and the user's input into the search box (e.g., typing the string “basketball statistics for Reggie Lewis”) is considered variable user input.
Based on the variable user input received by server system 110, server system 110 obtains webpage content 130 (as used herein, webpage content 130 may include one or more web pages). For example, server system 110 may employ a search engine (e.g., proprietary or third-party search engine) to retrieve search results (e.g., in the form of webpage content) based on the variable user input. In some embodiments, server system 110 pre-fetches webpage content 130 (e.g., based on past usage history) and processes the content prior to receiving user input. Server system 110 identifies a subset of webpage content 130 as print content. In some embodiments, server system 110 leverages HP Smart Print technology, offered by Hewlett Packard Company of Palo Alto, Calif, to determine print content from webpage content 130 (HP Smart Print technology automatically determines the area of a webpage it thinks the user would like to print (e.g., filters out ads, blank spaces, etc. to save ink and paper for the user)). In one example, obtaining webpage content includes aggregating webpage content from a database of user-provided webpage content associated with the variable user input, performing a World Wide Web (WWW) search based on the variable user input, or a combination thereof.
Using the identified print content, server system 110 forms a print-ready layout of the print content. As used herein, “print-ready” refers to the formatting of print content such that it can be recognized by a printer. For example, print-ready content may be formatted according to a page description language (PDL) such as, but not limited to, PostScript (offered by Adobe Systems, Incorporated of San Jose, Calif.) and Printer Command Language (offered by Hewlett Packard Company). The print-ready layout may include various optimizations (e.g., maximizing the amount of content on a single page, logically organizing the content on the page, etc.).
Server system 110 provides the print content in the print-ready layout to client 120. Client 120 can be a web-browser, a mobile device, a web-connected printer, or other suitable computing device. Client 120 may be the source of the original print request, but it is not necessary. For example, a user may access a printing profile and submit a search request from a web browser (which is sent to server system 110). In response, server system 110 may provide the print content in the print-ready layout to a printer that is associated with the printing profile from which the request was received. In another example, a user may submit a search request to server system 110 directly from a printer. In response, server system 110 provides the requested print content back to the printer for printing.
In some embodiments, server system 110 may provide multiple options of print content to client 120. Thus, in yet another example, a user might submit a search request from a mobile device and receive multiple options of print content in print-ready layouts from which to select. The user could then select one of the provided options, which causes server system 110 to provide the selected print content to a printer (e.g., associated with the user profile, mobile device, etc.).
The functions and operations described with respect to server system 110 may be implemented as a computer-readable storage medium containing instructions executed by a processor (e.g., processor 112) and stored in a memory (e.g., memory 114).
As illustrated in
Print request module 212 receives a request for print content according to search parameters submitted by a user. Search parameters might be submitted by a user typing text, using voice commands, or other suitable input mechanisms (e.g., from a web browser, a mobile device, directly from a printer, etc.). Search module 214 obtains webpage content based on the user-submitted search parameters. For example, if a user enters “yoga poses” into a search box and submits the request, search module 214 commences a search for webpage content related to yoga poses. Search module 214 might itself be a search engine that searches the World Wide Web for content or search module 214 might employ a third-party search engine (e.g., Google Search, available from Google, Inc. of Mountain View, Calif.) to search for content related to yoga poses. The obtained content might include webpages with descriptions of yoga poses or webpages with images of yoga poses or some combination of these.
Content related to a particular search may span multiple pages on a website. Using the example of yoga poses again, a particular website might have an article that spans three or four pages with each page illustrating multiple yoga poses. A user viewing the article might simply click the “next” button to advance to each successive page in the article. In various embodiments, search module 214 automatically traverses the links to additional pages to obtain all of the content associated with the article.
Prioritization module 216 prioritizes retrieved webpage content 250 based on the search parameters. Webpage content 250 may be prioritized based on relevance (e.g., statistical relevance), popularity (e.g., from user-ratings, etc.), printability (e.g., likelihood of producing a high-quality print based on location of content on the webpage, HTML page structure, image resolution, etc.), or some combination of these factors. For example, prioritization module 216 might combine a relevancy score (e.g., from the Google Search API) with a frequency score (e.g., from HP Advanced Smart Print technology) to statistically determine the most appropriate content. Thus, search module 214 may obtain a large number of search results. Prioritization module 216 may then determine the top results, within a threshold, based on one or more of the factors described above. In various embodiments, search results not falling within the top results threshold are thrown out and/or ignored.
Given the top results, filter module 218 extracts print content from the webpage content 250. In other words, unwanted content (e.g., ads, blank spaces, redundant information, etc.) is filtered out. Filter module 218 may use HP Smart Print technology or similar technology to automatically determine which areas of a webpage are relevant for printing. The extracted print content is passed to layout module 220 which arranges the print content according to a print-ready layout.
Layout module 220 optimizes the layout of the print content based on relevance of the print content, popularity of the print content, printability of the print content and/or other suitable factors. In certain embodiments, layout module 220 creates a mash-up of content from different sources in a layout on a single page.
Network interface module 222 provides a plurality of choices of print content (in print-ready layout(s)) to a client (e.g., printer 230, computing device 240) in response to the print request. The client to which the print content is provided may be the same client from which the request was originally sent, although this is not necessary. For example, the original search request for print content may be sent from computing device 240 to server system 210 by way of web-service 242. Web-service 242 may include a user login that ties the service to a user profile. The user-profile may be linked to printer 230. Thus, upon processing the request from computing device 240, server system 210 may provide the plurality of choices of print content to computing device 240 for previewing and/or selecting by the user. Upon receiving a selection from the user, server system 210 sends the selected print content in the print-ready layout to printer 230 for printing. In other embodiments, the choices of print content are provided directly to printer 230 for selection and printing. In yet other embodiments, the original search request for print content is sent from printer 230 to server system 210 by way of web-service 232. Server system 210 returns the plurality of choices of print content back to printer 230 in response. In addition, the plurality of choices of print may also be archived in database 226.
Database 226 stores data associated with a users' selection of one of the plurality of choices of print content. For example, database 226 may store the search parameters submitted by the user along with information about the webpage selected by the user when provided with print content options. Accuracy module 224 analyzes the data in the database to improve the relevance of print content provided in response to future requests for print content. For example, prioritization module 216 might rank the top three search results as A, B, and C a particular search. However, if users performing the same or similar search consistently choose to print option C over options A and B, accuracy module 224 uses this information to increase the rank of option C (e.g., moving C from the number three ranking to the number one ranking). Thus, in future searches having the same or similar search parameters, server system 210 might then provide option C as the top option.
Various modules and/or components illustrated in
A server system receives 310 a request for print content that includes variable user input. The server system can be a single server or it can be a distributed group of servers (e.g., as part of a cloud computing infrastructure). As discussed herein, the variable user input can be a search string (e.g., entered into a search box by typing, voice command, etc. provided in a display on a web browser, a mobile device, a web-connected printer or other suitable computing device). The server system obtains 320 webpage content (which can be one or more pages from one or more sources) based on the variable user input. The server system may include a web-search engine for obtaining the webpage content or it may employ a third-party search engine (e.g., Google search) to obtain webpage content.
The server system identifies 330 a subset of the webpage content as print content. In other words, for each webpage returned in the search results, the server system automatically identifies the portions of the webpage that are relevant to the search (e.g., filtering out unwanted content such as ads, blank space, redundant content, etc.).
The server system takes the print content and forms 340 a print-ready layout of the print content. In some embodiments, the server system generates multiple selectable options of print-ready layouts and/or print content. The server system provides 350 the print content in the print-ready layout to a client via a network connection. The client could be a display on a web browser or a mobile device (e.g., to allow previewing and/or selecting from multiple options) or it could be a printer (e.g., where the print content can be printed directly).
A server system receives 410 a request for print content that includes variable user input. Based on the variable user input, the server system obtains 420 webpage content. The server system identifies 430 a subset of the webpage content as print content. In other words, for each webpage returned in the search results, the server system automatically identifies the portions of the webpage that are relevant to the search (e.g., filtering out unwanted content such as ads, blank space, redundant content, etc.).
The server system takes the print content and generates 440 multiple selectable options of print-ready layouts and/or print content. The server system provides 450 the multiple options of print content in print-ready layout form to a client via a network connection. The client could be a display on a web browser or a mobile device (e.g., to allow previewing and/or selecting from multiple options) or it could be a printer (e.g., where the print content can be printed directly).
The server system receives 460 information associated with a user's selection of one of the multiple options of print content. Based on this information, the server system augments a database of known crowd behaviors to improve the relevance and/or accuracy of future search requests.
Various modifications may be made to the disclosed embodiments and implementations of the invention without departing from their scope. Therefore, the illustrations and examples herein should be construed in an illustrative, and not a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
6029182 | Nehab et al. | Feb 2000 | A |
6975419 | Staas et al. | Dec 2005 | B2 |
7065497 | Brewster et al. | Jun 2006 | B1 |
7225401 | Purvis | May 2007 | B2 |
7249319 | Payne et al. | Jul 2007 | B1 |
7290285 | McCurdy et al. | Oct 2007 | B2 |
7302423 | De Bellis | Nov 2007 | B2 |
7386791 | Jacobson | Jun 2008 | B2 |
7565350 | Fetterly et al. | Jul 2009 | B2 |
7617446 | Dutta | Nov 2009 | B2 |
7711747 | Renders et al. | May 2010 | B2 |
7720835 | Ward et al. | May 2010 | B2 |
7769751 | Wu et al. | Aug 2010 | B1 |
7861165 | Stevenson | Dec 2010 | B2 |
7996000 | Dubinko et al. | Aug 2011 | B1 |
8020090 | Chen et al. | Sep 2011 | B2 |
8046681 | Vydiswaran et al. | Oct 2011 | B2 |
8479092 | Pandey | Jul 2013 | B1 |
8593666 | Xiao | Nov 2013 | B2 |
8645369 | Poblete et al. | Feb 2014 | B2 |
8683379 | LuVogt et al. | Mar 2014 | B2 |
8713438 | Broniek et al. | Apr 2014 | B1 |
8745091 | McHenry et al. | Jun 2014 | B2 |
20020078045 | Dutta | Jun 2002 | A1 |
20020123988 | Dean et al. | Sep 2002 | A1 |
20030142801 | Pecht | Jul 2003 | A1 |
20030210424 | Sandfort et al. | Nov 2003 | A1 |
20040185882 | Gecht et al. | Sep 2004 | A1 |
20040249934 | Anderson | Dec 2004 | A1 |
20040252332 | McCoog et al. | Dec 2004 | A1 |
20050120311 | Thrall | Jun 2005 | A1 |
20050138065 | Ciriza | Jun 2005 | A1 |
20050154718 | Payne et al. | Jul 2005 | A1 |
20060033950 | Nakamura | Feb 2006 | A1 |
20060048053 | Sembower et al. | Mar 2006 | A1 |
20060123114 | Aoki et al. | Jun 2006 | A1 |
20060125820 | Turcan et al. | Jun 2006 | A1 |
20060143286 | Aoki et al. | Jun 2006 | A1 |
20060167862 | Reisman | Jul 2006 | A1 |
20060173985 | Moore | Aug 2006 | A1 |
20060277482 | Hoffman et al. | Dec 2006 | A1 |
20070027932 | Thibeault | Feb 2007 | A1 |
20070047844 | Watanabe et al. | Mar 2007 | A1 |
20070130509 | Gombert et al. | Jun 2007 | A1 |
20070174298 | Tanimoto | Jul 2007 | A1 |
20070220411 | Hauser | Sep 2007 | A1 |
20070247664 | Yamamoto | Oct 2007 | A1 |
20080005250 | Oksum | Jan 2008 | A1 |
20080005651 | Grefenstette et al. | Jan 2008 | A1 |
20080030775 | Adachi et al. | Feb 2008 | A1 |
20080046459 | Hinohara | Feb 2008 | A1 |
20080068650 | Negoro | Mar 2008 | A1 |
20080089709 | Higashi | Apr 2008 | A1 |
20080097828 | Silverbrook et al. | Apr 2008 | A1 |
20080147514 | Shuster et al. | Jun 2008 | A1 |
20080307308 | Sullivan et al. | Dec 2008 | A1 |
20090002770 | Cavill et al. | Jan 2009 | A1 |
20090013071 | Matoba et al. | Jan 2009 | A1 |
20090030889 | Chatow et al. | Jan 2009 | A1 |
20090119260 | Chopra et al. | May 2009 | A1 |
20090171751 | Zhou et al. | Jul 2009 | A1 |
20090310168 | Kunioka et al. | Dec 2009 | A1 |
20090316198 | Takeuchi et al. | Dec 2009 | A1 |
20100030768 | Poblete et al. | Feb 2010 | A1 |
20100058204 | Wilson | Mar 2010 | A1 |
20100069116 | Silverbrook et al. | Mar 2010 | A1 |
20100145955 | McDonald et al. | Jun 2010 | A1 |
20100281351 | Mohammed | Nov 2010 | A1 |
20100328725 | Gaucas et al. | Dec 2010 | A1 |
20110040823 | Liu et al. | Feb 2011 | A1 |
20110078558 | Bao et al. | Mar 2011 | A1 |
20110213894 | Silberstein et al. | Sep 2011 | A1 |
20110235088 | Luo | Sep 2011 | A1 |
20120011021 | Wang et al. | Jan 2012 | A1 |
20120062935 | Kamath et al. | Mar 2012 | A1 |
20120212772 | Hwang et al. | Aug 2012 | A1 |
20120262754 | Hwang | Oct 2012 | A1 |
20130010333 | Anand et al. | Jan 2013 | A1 |
20130097102 | Revesz | Apr 2013 | A1 |
20130103461 | Bhatia | Apr 2013 | A1 |
20130185364 | Bhatia | Jul 2013 | A1 |
20130222843 | Ganesan et al. | Aug 2013 | A1 |
20140036303 | Vishwanath et al. | Feb 2014 | A1 |
20140057238 | Okamoto et al. | Feb 2014 | A1 |
20140122486 | Simard et al. | May 2014 | A1 |
20140136541 | Farahat et al. | May 2014 | A1 |
20140214632 | Garera et al. | Jul 2014 | A1 |
Number | Date | Country |
---|---|---|
101329687 | Dec 2008 | CN |
102073728 | May 2011 | CN |
102253937 | Nov 2011 | CN |
0986213 | May 2000 | EP |
WO-2013048428 | Apr 2013 | WO |
WO-2013159246 | Oct 2013 | WO |
Entry |
---|
Printable Web Pages on the Fly! (Web Page) http ://www.printer-friendly.com/2008011945/java/web2printer.html. |
Luo, P. et al., “Web Article Extraction for Web Printing: a DOM+Visual based Approach,” Hewlett-Packard Company, 9th ACM Symposium on Document Engineering, 2009. |
Merrill, S., Read Any RSS Feed on Your Lexmark All-in-one Printer, Jul. 6, 2010, http://techcrunch.com/2010/07/06/read-any-rss-feed-on-your-lexmark-all-in-one-printer. |
SPCURTIS81, “App Idea—Select Your Own RSS Feed for Scheduled Printing,” HP Support Forums, Jul. 26, 2012, http://h30434.www.3.hp.com/t5/ePrint-Print-Apps-Mobile-Printing-and-ePrintCenter/App-Idea-Select-Your-Own-RSS-Feed-For Scheduled-Printing/td-p/1700391. |
Wikipedia, “Delicious (website),” Jun. 4, 2012, http://web.archive.org/web/20120604165352/https://en.wikipedia.org/wiki/Delicious—(website). |
Wikipedia, “Google bookmarks,” Mar. 7, 2012, http://web.archive.org/web/20120307041604/http://en.wikipedia.org/wiki/Google—Bookmarks. |
Chen, Y. et al., “Improve on Frequent Access Path Algorithm in Web Page Personalized Recommendation Model,” (Research Paper), 2011 International Conference on Information Science and Technology (ICIST), Mar. 2011, 4 pages, found at http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5765216. |
Formatdynamics, “Print or PDF with CleanPrint,” Sep. 29, 2014, found at https://chrome.google.com/webstore/detail/print-or-pdf-with-cleanpr/fklmmmdcofimkjmfjdnobmmgmefbap. |
International Search Report & Written Opinion received in PCT Application No. PCT/CN2012/000569, Feb. 7, 2013, 6 pages. |
Kim, S-M. et al., “Improving Web Page Classification by Label-propagation Over Click Graphs,” (Research Paper), Nov. 2-6, 2009, available at http://wvvw.patrickpantel.com/download/papers/2009/cikm09c.pdf. |
Quora, “What are good examples of machine learning enhanced with human intervention in e-commerce?” 2011, found at http://www.quora.com/What-are-good-examples-of-machine-learning-enhanced-with-human-intervention-in-e-commerce. |
Tsukada, M. et al., “Automatic Web-Page Classification by Using Machine Learning Methods,” Web Intelligence: Research and Development, Springer Berlin Heidelberg, 2001. |
Hewlett-Packard Development Company, L.P.; “HP ePrintCenter.” Aug. 28, 2011; Help and Tips; (web page); <http://web.archive.org/web/20110828234332/http://b30495.www3.hp.com/help>. |
Number | Date | Country | |
---|---|---|---|
20120212772 A1 | Aug 2012 | US |