MICROFORMAT FOR UNIFIED PRINTING OF WEB CONTENT

Example embodiments relate to a microformat for unified printing of web content. In example embodiments, a system obtains web content that is displayed in a web browser, where the web content includes meta tags that specify print property assertions and print property intents. The system processes the print property assertions to determine printing device capabilities that are compatible with the web content and identifies printing devices that satisfy the printing device capabilities. At this stage, the system processes the print property intents to determine a print layout of the web content and sends a print job for the web content to one of the printing devices, where the print job is generated based on the print layout of the web content.

DETAILED DESCRIPTION

As detailed above, web browsers allow users to print web content with little or no print formatting. For example, web content may be wrapped and proportionally resized to fit the page size of the printer. In some cases, web content may be re-rendered in a more print friendly format in a separate web page by the web content provider. However, the separate web page is only available if provided by the content provider and does not allow the user to control the formatting of the web content.

Example embodiments disclosed herein provide a microformat for unified printing of web content. For example, in some embodiments, a computing device obtains web content that is displayed in a web browser, where the web content includes meta tags that specify print property assertions and print property intents. The computing device processes the print property assertions to determine printing device capabilities that are compatible with the web content and identifies printing devices that satisfy the printing device capabilities. At this stage, the computing device processes the print property intents to determine a print layout of the web content and sends a print job for the web content to one of the printing devices, where the print job is generated based on the print layout of the web content.

In this manner, example embodiments disclosed herein improve the printing function of web browsers by providing a microformat for defining print attributes and formatting. Specifically, by providing the microformat, portions of web content may be designated with print attributes such as printability and formatting, which allow the web browser to provide a customizable printing experience for the user.

Referring now to the drawings,FIG. 1is a block diagram of an example computing device100for providing a microformat for unified printing of web content. Computing device100may be any computing device (e.g., smartphone, tablet, laptop computer, desktop computer, etc.) capable of accessing a cloud server, such as cloud server200ofFIG. 2. In the embodiment ofFIG. 1, server computing device100includes a processor110, an interface115, and a machine-readable storage medium120.

Processor110may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium120. Processor110may fetch, decode, and execute instructions122,124,126,128,130to enable unified printing of web content using a microformat, as described below. As an alternative or in addition to retrieving and executing instructions, processor110may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions122,124,126,128,130.

Interface115may include a number of electronic components for communicating with printing devices and web content servers. For example, interface115may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with the user computing device. Alternatively, interface115may be a wireless interface, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface. In operation, as detailed below, interface115may be used to send and receive data, such as web content data, meta tag data, and printing data, to and from a corresponding interface of a user computing device.

Machine-readable storage medium120may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, machine-readable storage medium120may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like. As described in detail below, machine-readable storage medium120may be encoded with executable instructions for providing a microformat for unified printing of web content.

Web content obtaining instructions122may obtain web content displayed in a web browser. The web browser may be executing on computing device100to provide the web content to a user. In this case, the web browser receives the web content via interface115from a web content server. The web content may be a web page that is provided as HTML or some other markup language (e.g., extensible markup language (XML), extensible hypertext markup language (XHTML)) to computing device100and then rendered for display in the web browser. Web content obtaining instructions122may obtain the web content from the web browser for processing as discussed below.

The web content may include meta tags of a microformat that define print capabilities including assertions and intents. Print property assertions may assert a set of searchable printing characteristics (e.g., print quality, orientation, description, color, etc.) for portions of the web content such as images or printable documents. Print property intents may describe the formatting attributes (e.g., resolution; media size, format, etc.) of portions of the web content that allow print service discovery and templates to be applied to the web content. For example, the format tag allows the computing device100to identify templates that may be applied to the web content (e.g., a grid template may be applied to images from a web page).

A microformat is a web-based technique for descriptive markup that reuses and expands on existing markup tags to convey metadata and other attributes in web content. The reuse of existing markup tags allows computing device100to process data within an existing annotation framework that is not intended to be displayed for users. Traditional markup tags are not self-descriptive like meta tags in a microformat. Descriptive meta tags allow portions of web content to be indexed for searching.

Print assertions processing instructions124may process print property intents in web content to determine the target printing device capabilities of portions (e.g., image, paragraph, printable document, etc.) of the web content. Portions of the web content with print property assertions may be identified as printable portions. Conversely, portions of the web content without print property assertions may be identified as unprintable portions. Further, the target printing device capabilities are used to discover printing devices that are compatible with the designated portions of the web content.

Printing device identifying instructions126may use the determined target printing device capabilities to identify printing devices for printing the web content. Both local printing devices and cloud printing devices may be searched to identify printing devices that satisfy the target printing device capabilities. For example, if a print property assertion specifies that the portion of the web document is in color, printing devices that support color printing may be identified.

Print intents processing instructions128may process print property intents in web content to determine formatting attributes of portions of the web content. The formatting attributes may be used to generate a print job for the portions of the web content to be printed. For example, the format print property intents may specify the format of each portion of the web content as, for example, image, portable document format (PDF), or hypertext markup language (HTML). Print intents processing instructions128may identify templates that can be applied to the portions of the web content based on the format of each portion.

Print job sending instructions130may send a print job including portions of the web content to a printing device selected by the user. Further, the portions included in the print job may be selected by the user based on print property assertions. For example, the user may select all images in the web content for the print job.

FIG. 2is a block diagram of an example computing device200in communication via a network245with web content servers (e.g., web content server A250A, web content server N250N) and printing devices (e.g., printing device A260A, printing device N260N). As illustrated inFIG. 2and described below, computing device200may communicate with web content servers and printing devices to provide a microformat for unified printing of web content.

As illustrated, computing device200may include a number of modules202-224. Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the computing device200. In addition or as an alternative, each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.

As with computing device100ofFIG. 1, computing device200may be a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, computing device200may include a series of modifies202-224for enabling the processing of meta tags of a microformat for unified printing.

Interface module202may manage communications with the web content servers (e.g., web content server A250A, web content server N250N) and the printing devices (e.g., printing device A260A, printing device N260N). Specifically, the interface module202may (1) initiate connections with the web content servers and then send or receive web content data232to/from the web content servers and (2) initiate connections with the printing devices and then send or receive printing data236to/from the printing devices.

Web content module206may provide a user with access web content from the web content servers (e.g., web content server A250A, web content server N250N). Although the components of web content module206are described in detail below, additional details regarding an example implementation of module206are provided above in connection with instructions122ofFIG. 1.

Content processing module208may process web content from the web content servers (e.g., web content server A250A, web content server N250N). Initially, content processing module208may process the web content to be displayed in a web browser for the user. If the user initiates a print job of the web content, content processing module208may obtain meta tags and corresponding portions of the web content for further processing by the meta tag module212.

Content discovery module210may perform searches for printable web content provided by the web content servers (e.g., web content server A250A, web content server N250N). Specifically, the search may identify printable web content that satisfies printing device capabilities as specified by print property assertions. In some cases, the printable web content on the web content servers (e.g., web content server A250A, web content server N250N) may be indexed by a searching service so that searches may be performed according to printing device capabilities.

Meta tag module212may process meta tags from web content to determine print capabilities of the web content. Although the components of meta tag module212are described in detail below, additional details regarding an example implementation of module212are provided above in connection with instructions124-128ofFIG. 1.

Assertions processing module214may process print property assertions from web content. Specifically, the print property assertions may be processed to determine the target printing device capabilities of portions of the web content. Potential values for print property assertions may be stored as meta tag data234in storage device230. Once determined, the target printing device capabilities may be provided to printing device module220for printer discovery.

Intents processing module216may processing print property intents from web content. Specifically, the print property intents may be processed to determine formatting characteristics of portions of the web content. Potential values and descriptions of the print property intents may be stored as meta tag data234in storage device230. Once determined, the formatting characteristics of the portions of the web content may be provided to printing device module220for generating print jobs.

Printing device module220may process print jobs of web content. Although the components of printing device module220are described in detail below, additional details regarding an example implementation of module220are provided above in connection with instructions130ofFIG. 1.

Printing device discovery module222may discover printing devices that satisfy target printing device capabilities. Specifically, discovery may be performed to discover local, networked, or cloud printing devices that satisfy the capabilities. Printing device discovery module222may provide a user interface that allows the user to select one of the discovered printing devices. In some cases, the target printing device capabilities are used a default values in the user interface. The user may modify the default values to search for printing devices with different capabilities (e.g., the user may select to search for black & white printers instead of color printers). Discovered printers and corresponding settings may be stored as printing data236in storage device230.

Print job module224may generate print jobs based on formatting characteristics of portions of the web content. The portions of web content may be selected by the user via a web interface that is provided by the print job module224. For example, print job module224may display a list of printable portions of the web content, where the user may select portions for including in a print job. After the portions are selected, print job module224may allow the user to select a formatting template for applying to the selected portions of the web content. Once the portions and templates are selected, print job module224may generate a print job for sending to a selected printing device.

Storage device230may be any hardware storage device for maintaining data accessible to computing device200. For example, storage device230may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices. The storage devices may be located in computing device200and/or in another device in communication with computing device200. As detailed above, storage device230may maintain web content data232, meta tag data234, and printing data236.

Web content servers (e.g., web content server A250A, web content server N250N) may be any server accessible to computing device200over the network245that is suitable for providing web content. Web content servers (e.g., web content server A250A, web content server N250N) may provide web content as HTML that includes meta tags for defining print capabilities.

Printing devices (e.g., printing device A260A, printing device N260N) may be local, networked, or cloud printing devices accessible to computing device200via the network245. Each printing device (e.g., printing device A260A, printing device N260N) may be, for example, an inkjet printer, a laser printer, a solid printing fluid printer, an all-in-one printer, a snapshot printer, or any other printing device suitable for processing print jobs from computing device200.

FIG. 3is a flowchart of an example method300for execution by a computing device100for providing a microformat for unified printing of web content. Although execution of method300is described below with reference to computing device100ofFIG. 1, other suitable devices for execution of method300may be used, such as computing device200ofFIG. 2. Method300may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium120, and/or in the form of electronic circuitry.

Method300may start in block305and continue to block310, where computing device100obtains web content displayed in a web browser of a user. The web content may be obtained in response to the user initiating a print plugin in the web browser. In block315, meta tags defining print property assertions may be processed to determine target printing device capabilities. At this stage, printing devices that satisfy the target printing device capabilities may be identified in block320. Computing device100may display a user interface allowing the user to modify the target printing device capabilities and select one of the identified printing devices.

In block325, meta tags defining print property intents may be processed to determine formatting characteristics of portions of the web content. Computing device100may provide a user interface that allows the user to select portions of the web content for printing. The user interface may use the print property intents to display a title and other information for each portion of the web content, which assist the user in his selection. After the portions are selected, computing device100may allow a user to select a template to apply a print layout to the selected portions of the web content. For example, the print layout may specify the format (e.g., PDF, HTML, image, etc.) and print locations, target location for a printed portion of the web content, of the selected portions of the web content. The print locations may be determined based on characteristics such as content resolution and a selected template. In block330, a print job is generated based on the selected portions and print layout and sent to the printing device that was selected by the user. Method300may then continue to block335, where method300may stop.

FIG. 4is a flowchart of an example method400for execution by a computing device100for printer discovery and unified printing of web content using a microformat. Although execution of method400is described below with reference to computing device100ofFIG. 1, other suitable devices for execution of method400may be used, such as computing device200ofFIG. 2. Method400may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium120, and/or in the form of electronic circuitry.

Method400may start in block405and continue to block410, where computing device100may obtain web content displayed in a web browser of user. The web content may be obtained in response to the user initiating a print plugin of the web browser. In block415, computing device100determines if there are meta tags in the web content. If there are no meta tags in the web content, computing device100may notify the user of the lack of meta tags, and method400may then proceed to block450, where method400may stop.

If there are meta tags in the web content, computing device100processes the meta tags to determine print capabilities of the web content in block420. Specifically, print property assertions and intents may be processed as discussed above. In block425, printable portions of the web content may be identified using the meta tags. In block430, compatible printing devices for printing the web content may be identified using the print property assertions. Computing device100may allow the user to select portions for printing and then select a printer for receiving the print job.

In block435, computing device100determines if the user has selected content for printing. If no content is selected for printing, method400may then proceed to block450, where method400may stop. If content is selected, computing device100determines if the user has selected a printing device in block440. If no printing device is selected, method400may then proceed to block450, where method400may stop.

If a printing device is selected, a print job for the selected portions of the web content is sent to the selected printer in block445. Method400may then continue to block450, where method400may stop.

FIG. 5is a diagram of meta tags502of a microformat500for unified printing of web content. The meta tags502may include print property intents503and print property assertions504. The print property intents503may include an FN property505, a resolution property506, a category property507, a media size property508, a contributor property509, and a format property510. The FN property505may be a short title describing the corresponding portion of the web content. The resolution property506may, if applicable, define the resolution of the corresponding portion of the web content. The category property507may define the portion of the web content as a member of predetermined categories of content. The media size property508may, if applicable, define the stored size of the corresponding portion of the web content. The contributor property509may describe a contributor that created the corresponding portion of the web content. The format property510may describe the format of the corresponding portion of the web content. Examples of values for the format property510are a portable document file (PDF) format530and an HTML format532. The print property assertions504may be used to define the print format of portions of the web content or to generate search indexes for discovering web content.

Examples of categories for the category property507include business profile, game, wiki entry, photo album, etc. Each category may have a default template that is applied to web content that belongs to the category.

The print property assertions504may include an orientation property514, a print quality property516, and a description property518. The orientation property514may define the orientation of a portion of the web content as either portrait534or landscape536. The print quality property516may define a print quality (e.g., dots per inch) of a portion of the web content. The description property518may be a human-readable description of a portion of the web content. The print property assertions504may be used to specify target printing device capabilities that can be used for printer discovery.

An example of meta tags502in web content is shown below in TABLE 1

The example in TABLE 1 shows a portion of web content with a short title of “Fun Game”, a category of “game”, a contributor of “Toy Company”, a format of “PDF”, an orientation of “portrait”, and a print quality of “Normal”. The print property assertions in TABLE 1 may be used in searches to discover the portion of the web content.

FIGS. 6A-6Bare diagrams of an example user interface600of a web browser in which web content is displayed in panel640for printing. As depicted, the user interface600includes a title bar605identifying the web content and a close icon610that may be used by the user to exit the web browser. The user interface600also includes menus a back navigation button615, a forward navigation button620, a web address input box625, and a print plugin button630.

The user interface600has outputted the web content in the panel640. InFIG. 6A, an advertisement642is shown at the top of the panel640, HTML content A644A and HTML content B644B are shown on the left side of the panel640, and image A646A and image B646B are shown on the fight side of the panel640. The web content shown in panel640may be rendered from underlying HTML that includes meta tags. In this example, the meta tags may specify advertisement642as unprintable and HTML content A644A, HTML content B644B, image A646A, and image B646B as printable. In response to the user selecting the print plugin button630, the user interface600may be updated as shown inFIG. 6B.

InFIG. 6B, the panel640now includes a print plugin interface650. The print plugin interface650allows the user to select printable portions of the web content for printing. The print plugin interface650includes a printable images tab652, a printable HTML tab654, and a printable PDF tab656. The printable tabs show the quantity of printable portions in each format category. InFIG. 6B, the printable images tab652is selected so that image A646A and image B646B is shown with an associated selection box658A,658B. The user may use the selection boxes to select images for printing. After the selections are complete, the user may select a print selected button660to initiate a print job that includes the selected images.

The foregoing disclosure describes a number of example embodiments for providing a microformat for unified printing of web content by a computing device. In this manner, the embodiments disclosed herein enable unified printing for web content by providing a microformat that allows printing capabilities to be defined in existing markup tags.