As computer technology advances, printing remains a fundamental tool that provides many benefits, such as increased productivity in various business environments and improved user experiences with regard to different types of printable media, including photographs, news articles, magazines, text books, and so on. The proliferation of mobile computing devices has encouraged a corresponding increase in the use of web-enabled printers that allow users to print more easily from web and mobile sources. For example, web-enabled printers allow users with web-capable devices, such as phones and tablets, to attach a file to an email and send it to the printer. The printer can open the email and print the file document automatically, without any further connection or interaction with a computer. In addition, web-enabled printers typically include touch sensitive screens as user interfaces that allow users to connect to different web sites directly through the printer, and to print content from these sites such as news stories and articles. Many web-enabled printers can also be configured to print Web content directly from the printer by using special print applications that provide simple and fast printing of pre-formatted, print-ready, content.
The present embodiments will now be described, by way of example, with reference to the accompanying drawings, in which:
a, 4b, and 4c, show examples of groups of print applications that are registered for use with a web-enabled printer, according to an example implementation;
As noted above, web-enabled printers allow users to print more easily from web and mobile sources through email attachments, direct connections to web sites, and special print applications that enable printing of pre-formatted, print-ready, content. The use of print applications to print Web content directly from web-enabled printers is an increasingly popular printing method, especially where such applications provide content on a scheduled basis (e.g., news articles, business articles). Web-enabled printers allow printer users to access a cloud-based print service and browse through numerous print applications that make large collections of print-ready content available for printing. Currently, such print applications are accessible through the front panel (e.g., touch sensitive display screen) of web-enabled printers. The remote print service projects a user interface (UI) onto the printer front panel showing which print applications and print-ready content are available for printing on the particular printer. Projecting the UI from the remote service onto the front panel of the printer helps to reduce printer hardware and software costs.
Unfortunately, many earlier web-enabled printers do not support such application-based printing from a remote print service. This is mostly due to the lack of a sophisticated user interface on such printers. In general, printers have front control panels, such as touch sensitive display screens, that provide a limited user interface that is restricted in terms of the rich widgets and layouts that other devices support. Accordingly, not only are many earlier web-enabled printers unable to support such print applications, most contemporary printer front panel control/display screens provide unsophisticated user interfaces that deliver an unsatisfying user experience. Indeed, in order to provide print services to a greater number of web-enabled printers, the UI document specification and UI description language used by the print service to project the UI onto a printer front panel is typically in a minimal format designed to function with the lowest end of available web-enabled printers. Because lower-end printers usually implement a less robust set of UI widgets and layouts, the reduced UI document specification format diminishes the user experience on all the web-enabled printers.
Thus, print application printing (i.e., application-based printing) from web-enabled printers through a cloud-based print service currently has several drawbacks. One drawback is that it lacks mobility, since the user experience is confined to the stationary location of the web-enabled printer (i.e., access is available at the printer front panel). In addition, the application-based printing is available to a limited segment of web-enabled printers, since many earlier web-enabled printers do not support it. Another drawback is that the experience is closely coupled to the printer front panel control/display screen which provides a limited user interface resulting in a poor user experience.
Accordingly, disclosed herein are example methods and devices implemented through a cloud-based print service that extend print application printing (i.e., application-based printing) to all appropriately configured web-enabled printers and to a wide variety of different computing devices. The print service enables a print application experience that is decoupled from the web-enabled printer's front panel and made accessible through various mobile and other computing devices, such as smartphones, tablets, laptops, desktops, and PC's. Thus, the user interface (UI) is no longer limited to an unsophisticated printer front panel, but instead can be implemented through more sophisticated displays and touch sensitive screens available on a variety of computing devices that support rich and robust UI widgets and layouts providing an improved user experience. A UI transform service enables transformation of the print service UI description language into an appropriate UI description language suitable for the target device that makes the initial print request. A search and tagging service indexes and ranks applications and content based on user interest as determined, for example, from user searches patterns and from print history associated with different print applications and content. The ranking helps put higher rated content at the top of the list of print application content being displayed on the device UI, which makes it easier for users to access and print that content. A personalized content analyzer also monitors individual usage behavior and generates customized UI views tailored to individual users, enabling improved access to more frequently used applications and content. The print service also provides a web portal that enables browsing of print applications and content, along with printing to web-enabled printers.
In an example implementation, a processor-readable medium stores code representing instructions that when executed by a processor cause the processor to receive at a print service, a print user interface (UI) request that identifies a web-enabled printer and a print access device, generate a native print UI document that includes print applications registered to the web-enabled printer, convert the native print UI document into a customized print UI document formatted in a UI description language supported by the print access device, and send the customized print UI document from the print service to the print access device.
In another example implementation, a print service includes a UI request manager to receive a print UI request from a print access device and to generate a native print UI document. The service also includes a UI transformer to convert the native print UI document into a customized print UI document formatted in a UI description language supported by the print access device.
In another example implementation, a processor-readable medium stores code representing instructions that when executed by a processor cause the processor to receive a print UI request, convert the print UI request into a native request formatted in a native UI description language, determine print applications registered to a web-enable printer identified within the print UI request, and generate a native print UI document that includes the registered print applications.
Print access device 102 and printer 106 are web-enabled devices that may be local or remote with respect to one another, and that are capable of accessing print server 104 and other web resources through a network 108. In general, the terms web, Web, Internet and internet, are used interchangeably herein to signify the commonly known system of interconnected computers, computer networks, and associated services, documents and other resources linked by hyperlinks and URLs that are typically accessed by web browsers. Thus, web-enabled devices are generally capable of navigating the Web, connecting to different Web sites, downloading content from the Web, initiating applications on Web sites, running applications within a Web browser, and so on. Network 108 represents any of a variety of conventional network topologies and types (including optical, wired and/or wireless networks), employing any of a variety of conventional network protocols (including public and/or proprietary protocols). Network 108 may include or be a part of, for example, a home network, a corporate network, the cloud or the Web/Internet, as well as one or more local area networks (LANs) and/or wide area networks (WANs) and combinations thereof. Network 108 may also include a cable or other suitable local communication link.
As shown in
Referring generally to
The print access device 102, print server 104, and web-enabled printer 106, also include various input/output (I/O) devices 204. For example, I/O devices 204 on a print access device 102 usually include a touch-sensitive display screen that implements an interactive key pad, icons and/or virtual buttons, and other text and graphics on the screen. Touch-sensitive display screens enable interactions with the print access device 102 using a finger or a stylus to contact the screen for purposes such as writing characters, drawing pictures, and selecting/clicking icons or virtual buttons to instruct a processor within the device 102 to execute instructions. Touch-sensitive display screens generally provide a robust user interface that enables simple navigation using intuitive gestures and high-resolution screens that are rich with detail and easy to read. In some implementations, I/O devices 204 on print access devices 102 can include a display screen with an accompanying hard key pad, speakers, a microphone, a camera, and so on.
A print server 104 may include I/O devices 204 similar to the print access device 102, but it also typically includes a keyboard, mouse, and display monitor. I/O devices 204 on web-enabled printers 106 usually include a control panel 206 that comprises a display screen with an accompanying hard key pad, or a touch-sensitive display screen. However, control panels 206 on web-enabled printers 106 usually provide a more limited UI that lacks the rich and robust features generally available on a print access devices 102. Web-enabled printers 106 also include other I/O devices 204, such as media input/output devices 208 comprising media trays and media rolls. In general, a web-enabled printer 106 generates printed output through a print engine 210 that translates commands from a print job 212 into an image that it prints onto media from media device 208.
Print access device 102 may implement various application programs 214 (i.e., by execution on a processor 200), such as word processing applications, spreadsheet applications, image editing applications, web browsing applications, and so on. Print access device 102 also implements a print service access application 216 that generates a print UI request 218. The print UI request 218 is sent to the print application service 110 on print server 104 to initiate printing on a web-enabled printer 106 through a print application 112. The print service access application 216 can be implemented as a variety of applications that enable the generation of a print UI request 218 in a variety of different UI markup language formats that are supported by different types of print access devices 102. Therefore, the print service access application 216 may depend to some degree on the type of device used to implement the print access device 102, and the manner in which a print UI request 218 is generated. For example, the print access device 102 may be a PC, and the print service access application 216 may be a Windows-based browser executing on the PC to generate a print UI request 218 in HTML (Hypertext Markup Language) format. Other examples of UI markup language formats include, but are not limited to, JSON, HTML 5, PHP, SQL, Java, QML, MXML, UIML, XUL, UsiXML, WTKX, XAL, SVG, TUIX, XAML, I3ML, OpenLaszlo (LZX), HMVCUL, WasabiXML, MARIA, and others used to execute native iOS-based applications, native Android-based applications, and so on.
Print server 104 implements a print application service 110 (i.e., by execution on a processor 200) that includes a number of components to facilitate printing on web-enabled printers 106 using special print applications 112. A UI Web-print portal 113, for example, enables users to browse available print applications 112, register appropriate print applications with web-enabled printers 106, activate print applications, and print content to web-enabled printers 106. Thus, as noted above, a print access device 102 may comprise a PC or other computer device that executes a Windows-based browser to generate an HTML-based print UI request 218 through the UI Web-print portal 113.
The print application service 110 includes a print UI request manager 114 that is generally configured to receive and respond to a print UI request 218 from a print access device 102. When responding to a print UI request 218, the print UI request manager 114 facilitates the generation of a customized UI document 226, which it sends to the print access device 102. One aspect of generating a customized UI document 226 involves organizing suitable print applications in a manner that considers the overall popularity and use of the print applications, as well as individual usage patterns demonstrated by a particular user. Another aspect of generating a customized UI document 226 involves formatting the UI document 226 in a language that is supported by the target print access device 102 that initiates the print UI request 218.
In general, a customized UI document 226 presents a view of a subset of print applications 112 that are suitable (i.e., that are registered) for use with the particular web-enabled printer 106 identified within the print UI request 218. When the customized UI document 226 is displayed on the print access device 102, the user can view, navigate, and select from the registered print applications. Upon receiving a print application selection from the user, the print service 110 returns information about what content is available for printing through the selected print application. The user can then send a print request 228 to the print service 110 to have content printed on the web-enabled printer 106, and the print service 110 sends a print job 212 to the printer 106 for processing.
Before generating a customized UI document 226, the UI request manager 114 first generates a native UI document 224. The native UI document 224 is formatted in a UI description language (e.g., XML) that is native to the print server. Using the UI transformer 120, the UI request manager 114 converts the native UI document 224 into a customized UI document 226. The UI transformer 120 is a component of the print service 110 that converts and repurposes the native print UI document 224 into a more sophisticated and customized UI document 226 formatted in a UI description language supported by a native application on the print access device 102 (e.g., HTML 5, Json). The UI transformer 120 accesses the appropriate widget and layout transformers for the native print UI document 224 based on the type and capabilities of the print access device 102. These transformers are pluggable components that are programmed to generate a rich user interface based on the particular print access device 102.
Upon receiving a print UI request 218, the request manager 114 first configures, or converts, the request 218 into a native request 219 formatted in a native language understood by the print application service 110. For example, a print UI request 218 received in HTML 5 format may be converted into a native request 219 in an XML format supported by the print server 104. Each print UI request 218 includes a web-enabled printer identifier (ID) 220 or other credentials that uniquely identify a web-enabled printer 106. In general, ID credentials may include a variety of different identifiers, such as an email address, a MAC (media access control) ID, an IMEI (International Mobile Equipment Identity) ID, an IMS (International Mobile Subscriber) ID, and so on. The request manager 114 uses the printer ID 220 to determine which print applications 112 are suitable (i.e., registered) for use with the identified web-enabled printer 106. This can be done, for example, by accessing the personal content analyzer 116 to obtain information indicating which print applications 112 have been previously registered for use with the identified web-enabled printer 106.
Each print UI request 218 also includes a print access device ID 222 or other credentials that uniquely identify the print access device 102 submitting the request 218. Such ID's and/or credentials may include a variety of different identifiers, such as an email address, a MAC (media access control) ID, an IMEI (International Mobile Equipment Identity) ID, an IMS (International Mobile Subscriber) ID, and so on. In general, the personal content analyzer 116 monitors user behavior with respect to the print application service 110 based on the print access device ID 222 within the request 218. For example, the personal content analyzer 116 records, stores, and analyzes which print applications 112 are used more frequently by the user of the device 102 which is identified by the device ID 222.
The personal content analyzer 116 may implement any available search and data analytics technology that interprets user interaction data and identifies usage patterns. One example of such technology is Autonomy's Intelligent Data Operating Layer (IDOL). Based on a user's prior use patterns, the content analyzer 116 can make content suggestions to the user and organize print applications within the customized UI document 226 so that more frequently used applications are presented in a more prominent manner, such as at the top of a list of print applications. Thus, in addition to determining from the personal content analyzer 116 which print applications 112 are registered for use with an identified web-enabled printer 106, the request manager 114 also uses information from the personal content analyzer 116 to organize the registered print applications 112 within the customized UI document 226 in a manner that enables easier navigation and faster access to the more frequently used print applications 112.
The print application service 110 also includes a search and tagging component 118. The search and tagging component 118 executes to index applications and contents based on popular search patterns and print history that indicates which print applications have been more widely used to print through the print application service 110. Based on the indexed content, the search and tag component 118 provides content ranking information to the request manager 114. For example, the more users search for applications and content, the higher those applications and content will be ranked. The request manager 114 uses the content ranking information to bring higher ranked applications and content to the top of the customized UI document 226. This enables easier access to higher rated content that the user can consume and print.
Referring to