The present invention is in the field of data processing systems and, in particular, to systems, methods and media for printing a Web page.
Personal computer systems are well known in the art. They have attained widespread use for providing computer power to many segments of today's modem society. Personal computers (PCs) may be defined as a desktop, floor standing, or portable microcomputer that includes a system unit having a central processing unit (CPU) and associated volatile and non-volatile memory, including random access memory (RAM) and basic input/output system read only memory (BIOS ROM), a system monitor, a keyboard, one or more flexible diskette drives, a CD-ROM or DVD-ROM drive, a fixed disk storage drive (also known as a “hard drive”), a pointing device such as a mouse, and an optional network interface adapter. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. The use of mobile computing devices, such as notebook PCs, personal digital assistants (PDAs), sophisticated wireless phones, etc., has also become widespread. Mobile computing devices typically exchange some functionality or performance when compared to traditional PCs in exchange for smaller size, portable power, and mobility.
The widespread use of PCs and mobile computing devices in various segments of society has resulted in a reliance on computer systems both at work and at home, such as for telecommuting, news, stock market information and trading, banking, shopping, shipping, communication in the form of hypertext transfer protocol (http) and e-mail, as well as other services. Many of these functions take advantage of the communication abilities offered by the Internet or other networks, such as local area networks. Much of the information on the Internet is contained on the World Wide Web (WWW, or Web), a system of Internet servers that support documents formatted in HyperText Markup Language (HTML). A document of the WWW is called a Web page and is identified by a unique Uniform Resource Locator (URL). Users typically use browsers (software applications used to locate and display Web pages) to navigate through Websites on the Internet, intranets or other networks.
In many cases, a user desires to print out a hardcopy of a Web page for easier viewing, portability, preservation, or other reason. The user typically selects a print button on their browser to print out the Web page which they are currently viewing. Often, however, the printed page is truncated on the right side, potentially preventing the printing of important or desirable information. One solution to this problem is for the user to copy and paste the Web page into a file, load the file into another program and possibly modify it, and then print the file to ensure that all the information from the Web page is preserved. This solution suffers from a number of drawbacks, as it is time-consuming for the user to perform the multiple steps and also results in the creation of an intermediate file requiring storage space if the user forgets to delete it. There is, therefore, a need for an effective and efficient solution to print a Web page.
The problems identified above are in large part addressed by systems, methods and media for printing a Web page. Embodiments may include receiving a command to print a Web page, analyzing the Web page to be printed for one or more modifiable elements, and generating a preview of the Web page with an indication of the modifiable elements. The modifiable elements may include, for example, a margin, font size, font type, a graphic, graphic size, or a section of the Web page. Embodiments may also include receiving a Web page modification request to modify one or more modifiable elements and modifying the Web page based on the Web page modification request. Embodiments may also include transmitting a printing command including an indication of the modified Web page. Further embodiments may include saving the modified Web page as a file.
Another embodiment provides a machine-accessible medium containing instructions effective, when executing in a data processing system, to cause the system to perform a series of operations for playing back an instant messaging session. The series of operations generally includes receiving a command to print a Web page, analyzing the Web page to be printed for one or more modifiable elements, and generating a preview of the Web page with an indication of the modifiable elements. The series of operations may also include receiving a Web page modification request to modify one or more modifiable elements and modifying the Web page based on the Web page modification request. The series of operations may also include transmitting a printing command including an indication of the modified Web page. Further embodiments may include a series of operations for saving the modified Web page as a file.
A further embodiment provides an intelligent printing system that includes a browser interface module to receive a command to print a Web page from a browser and a print preview module to generate a preview of the Web page to be printed, where the preview includes an indication of one or more modifiable elements of the Web page. The system may also include a user interface module to receive a Web page modification request that includes a request to modify one or more modifiable elements of the Web page and a Web page modifier module to modify the Web page based on the Web page modifier request. The Web page modifier module may include sub-modules such as a margin adjuster sub-module, a font adjuster sub-module, a graphics adjuster sub-module, and/or a section adjuster sub-module.
Advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which, like references may indicate similar elements:
The following is a detailed description of example embodiments of the invention depicted in the accompanying drawings. The example embodiments are in such detail as to clearly communicate the invention. However, the amount of detail offered is not intended to limit the anticipated variations of embodiments; on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. The descriptions below are designed to make such embodiments obvious to a person of ordinary skill in the art.
Generally speaking, systems, methods, and media for printing a Web page by modifying the Web page in response to user inputs are disclosed. Embodiments may include receiving a command to print a Web page, analyzing the Web page to be printed for one or more modifiable elements, and generating a preview of the Web page with an indication of the modifiable elements. The modifiable elements may include, for example, a margin, font size, font type, a graphic, graphic size, or a section of the Web page. Embodiments may also include receiving a Web page modification request to modify one or more modifiable elements and modifying the Web page based on the Web page modification request. Embodiments may also include transmitting a printing command including an indication of the modified Web page. Further embodiments may include saving the modified Web page as a file.
The system and methodology of the disclosed embodiments provides for an effective and efficient mechanism to print a Web page. By allowing a user to select elements to be eliminated from the printed Web page, the user may ensure that the full breadth of a Web page is printed and that no important information is lost. The user may also reduce printing costs by quickly modifying undesirable elements of the Web page that can result in increased ink and paper usage. The modifications requested by a user may also, in some cases, improve the aesthetic appeal of the final output by eliminating unnecessary sections. The disclosed system may be implemented as an applet in some embodiments to work with a variety of browsers to provide enhanced flexibility.
While specific embodiments will be described below with reference to particular configurations of hardware and/or software, those of skill in the art will realize that embodiments of the present invention may advantageously be implemented with other substantially equivalent hardware and/or software systems. Aspects of the invention described herein may be stored or distributed on computer-readable media, including magnetic and optically readable and removable computer disks, as well as distributed electronically over the Internet or over other networks, including wireless networks. Data structures and transmission of data (including wireless transmission) particular to aspects of the invention are also encompassed within the scope of the invention.
Turning now to the drawings,
The user computer system 102 may be any computer system adapted to execute software such as a browser 108 and an intelligent printing applet 110 and to communicate with a printer 120. User computer system 102 may include one or more personal computers, workstations, servers, mainframe computers, notebook or laptop computers, desktop computers, PDAs, set-top boxes, mobile phones, wireless devices, or the like. In some embodiments, the user computer system 102 may be a computer system as described in relation to
The intelligent printing applet 110 (as described in more detail in relation to
Network 104 may be any type of data communications channel, or any combination of data communication channels, such as the Internet, an intranet, a LAN, a WAN, an Ethernet network, a wireless network, a proprietary network, or a broadband cable network. Those skilled in the art will recognize, however, that the invention described herein may be implemented utilizing any type or combination of data communications channel(s).
The optional Web server 106 may be executing on one or more personal computers, workstations, servers, mainframe computers, notebook or laptop computers, desktop computers, or the like. In some embodiment, the Web server 106 may be a computer system as described in relation to
The systems and methodologies of the disclosed embodiments provide an efficient and effective mechanism to print a Web page. By using the disclosed intelligent print applet 110, a user may remove elements of a Web page that may prevent optimal printing. As will be described in more detail subsequently, a user may, for example, reduce or eliminate margins to ensure that the Web page prints without cutting off important content. Similarly, the user may reduce the font size or change the font type to reduce the number of printed pages or to prevent cut-off. The user may also eliminate graphics or sections of the Web pages, such as advertisements, to save color ink resources or to help fit the Web page on the printed page. By utilizing some or all of these and other options, a user may advantageously customize the printing of a Web page with the intelligent printing applet 110 to help minimize wastage and inefficiencies.
In the depicted embodiment, the computer system 200 includes a processor 202, storage 204, memory 206, a user interface adapter 208, a display adapter 210, and a printer adapter 216 connected to a bus 214. The bus 214 facilitates communication between the processor 202 and other components of the computer system 200, as well as communication between components. Processor 202 may include one or more system central processing units (CPUs) or processors to execute instructions, such as an IBMS PowerPC™ processor, an Intel Pentium® processor, an Advanced Micro Devices Inc. processor or any other suitable processor. The processor 202 may utilize storage 204, which may be non-volatile storage such as one or more hard drives, tape drives, diskette drives, CD-ROM drive, DVD-ROM drive, or the like. The processor 202 may also be connected to memory 206 via bus 212, such as via a memory controller hub (MCH). System memory 206 may include volatile memory such as random access memory (RAM) or double data rate (DDR) synchronous dynamic random access memory (SDRAM).
The user interface adapter 208 may connect the processor 202 with user interface devices such as a mouse 220 or keyboard 222. The user interface adapter 208 may also connect with other types of user input devices, such as touch pads, touch sensitive screens, electronic pens, microphones, etc. The bus 212 may also connect the processor 202 to a display, such as an LCD display or CRT monitor, via the display adapter 210. The printer adapter 216 may connect the processor with a printer 120. The printer adapter 216 may include, for example, a USB print adapter, a parallel or serial printer adapter, or a wireless printer adapter.
The print preview module 304 may generate a print preview of the Web page to be printed based on the Web page, information regarding printer 120 and its capabilities, and the modifiable elements identified by the Web page analyzer module 306. If a user selects different elements to alter or eliminate, the print preview module 304 may regenerate the print preview of the Web page based on the modified elements. The Web page analyzer module 306 may analyze the Web page to be printed to determine one or more modifiable elements of the Web page. For example, the Web page analyzer module 306 may identify the margins (i.e., left, right, top, and bottom margins), the font size and type, any graphics, and any sections (e.g., advertisements, navigation bar, etc.) that may be modified at the user's request to improve the print. The user interface module 308 may receive user input from user input devices such as a mouse 220 or keyboard 222 and may transmit an indication of the received input to other components of the intelligent printing applet 110, as well as providing print previews or other information to a user via a display 214. The user interface module 308 may accomplish these tasks by interfacing with browser 108, such as via browser interface module 302. Alternatively, the user may also specify preferences for default settings to provide user input. For example, the user may specify that, as a default, Web page graphics will not be printed so that the intelligent printing applet 110 automatically removes graphics from any printed Web pages.
The Web page modifier module 310 may modify the Web page to be printed in response to a request to modify one or more of the Web page elements. Modification of an element may include eliminating the element or adjusting the element, such as by reducing the size of the element. The Web page modifier module 310 may include sub-modules such as a margin adjuster sub-module 312, a font adjuster sub-module 314, a graphics adjuster sub-module 316, and a section adjuster sub-module 318 to perform its tasks. The margin adjuster sub-module 312 may, in response to a request, modify the Web page by reducing or eliminating one or more margins. The margin adjuster sub-module 312 may, for example, reduce the size of the left margin of a Web page so that the right edge of printable content is not cut-off and to ensure that the entire width of the page is printed. In some embodiments, the margin adjuster sub-module 312 will ensure that the left margin is not reduced too much so as to conflict with the minimum margins of printer 120. Similarly, the font adjuster sub-module 314 may, in response to a request, modify the Web page to ensure its entire width is printed by reducing the size of the font used for all or part of the Web page text or by changing the font type to a smaller type.
The graphics adjuster sub-module 316 and section adjuster sub-module 318 may modify the Web page by eliminating elements (or, alternatively, by reducing their size). The graphics adjust sub-module 316 may, in response to a request, eliminate or adjust any graphics on the Web page. Graphics may include images or pictures, for example, in formats such as jpeg, tiff, pdf, or other formats. By eliminating or reducing graphics, the Web page may be more easily printed and other content of the Web page may accordingly be preserved. Moreover, a user desiring to save on printer usage costs may elect to eliminate graphics so as to preserve color inks, which may be relatively expensive when compared to black ink. The section adjuster sub-module 318 may similarly eliminate or reduce sections of the Web page selected by the user. Sections may include advertisements (e.g., banner advertisements, embedded advertisements, advertisements along the left or right edge of the Web page, etc.), navigation bars (vertical or horizontal), or any other definable portion of a Web site. In many cases, the user may not need to or desire to print particular sections of a Web page, making the ability to selectively eliminate them from the final print desirable. A user, for example, may wish to eliminate advertisements from a printed Web page to ensure the printed page fits within the print area, to reduce ink usage, and to produce a more aesthetically pleasing output. In another example, a user may wish to eliminate the navigation bar from a printed Web page to improve the printed output, which may be particularly useful when the navigation bar is vertically-oriented and thus can result in cropping of the right side of the page.
While the sub-modules of the Web page modifier module 310 are described separately, they may be used in any combination to modify a Web page to be printed. A user, for example, may wish to modify the Web page by reducing the left margin and decreasing the font size as the combined effect will allow the entire breadth of the Web page to be printed. In this example, the Web page modifier module 310 may invoke both the margin adjuster sub-module 312 and the font adjuster sub-module 314 to perform its task.
The intelligent printing applet 110 may receive a Web page modification request from a user at element 408. The Web page modification request may include an indication of one or more modifications, such as to modify the margins or fonts, the user desires to make to the Web page for printing. The Web page modifier module 310 may determine at decision block 410 whether the Web page modification request includes a request to adjust one or more margins. If the Web page modification request does include a request to adjust one or more margins, the method of flow chart 400 may continue to element 412, where the margin adjuster sub-module 312 may adjust the appropriate margins of the Web page. The Web page modifier module 310 may also determine at decision block 414 whether the Web page modification request includes a request to adjust any of the fonts of the Web page, including the font size or font type. If the Web page modification request does include a request to adjust a font, the method of flow chart 400 may continue to element 416, where the font adjuster sub-module 314 may adjust the fonts as requested. As described previously, the user may request to modify either the size or type of font. In some embodiments, the user may request the font be modified for only a selected portion of text, such as if the user only wanted to modify the font for titles or headers in a case where they were too large.
After making the modifications requested by the user, the print preview module 304 may regenerate and redisplay the modified Web page to the user at element 408. The user may then, using the user interface, select either to make more modifications or to print the Web page as modified. If, at decision block 420, the intelligent printing applet 110 determines that the user desires to make more modifications, the method of flow chart 400 returns to element 408 to receive and process additional modifications. If, at decision block 420, the intelligent printing applet 110 determines that the user is satisfied with the modified Web page, the method of flow chart 400 continues to decision block 422. In this fashion, the intelligent printing applet 110 may allow the user to iteratively modify and view the results of their modifications until the desired print preview is achieved.
Once the user is finished modifying the previewed Web page, the intelligent printing applet 110 may optionally determine at decision block 422 whether the user desires to save the modified Web page. If the user desires a saved version, the method of flow chart 400 continues to element 424, where the intelligent printing applet 110 may save the modified Web page in a file on the user computer system 102. Otherwise, the method of flow chart 400 may continue to element 426, where the intelligent printing applet 110 transmits a printing command, after which the method terminates. The intelligent printing applet 110 may transmit the printing command to the browser 108 or to the printer 120, as appropriate.
The intelligent printing applet 110 may receive a Web page modification request from a user at element 508. The Web page modification request may include an indication of one or more modifications, such as to reduce or eliminate graphics or sections, the user desires to make to the Web page for printing. The Web page modifier module 310 may determine at decision block 510 whether the Web page modification request includes a request to eliminate or reduce the graphics on the Web page. If the Web page modification request does include a request to adjust the graphics, the method of flow chart 500 may continue to element 512, where the graphics adjuster sub-module 316 may eliminate or reduce the appropriate graphics from the Web page. The Web page modifier module 310 may also determine at decision block 514 whether the Web page modification request includes a request to modify any sections of the Web page, such as a request to eliminate or reduce the size of one or more sections. The user may request, for example, to eliminate the navigation bar from the Web page before printing. If the Web page modification request does include a request to modify one or more sections, the method of flow chart 500 may continue to element 516, where the section adjuster sub-module 318 may reduce or eliminate sections as requested.
After making the modifications requested by the user, the print preview module 304 may regenerate and redisplay the modified Web page to the user at element 508. The user may then, using the user interface, select either to make more modifications or to print the Web page as modified. If, at decision block 520, the intelligent printing applet 110 determines that the user desires to make more modifications, the method of flow chart 500 returns to element 508 to receive and process additional modifications. If, at decision block 520, the intelligent printing applet 110 determines that the user is satisfied with the modified Web page, the method of flow chart 500 continues to decision block 522. In this fashion, the intelligent printing applet 110 may allow the user to iteratively modify and view the results of their modifications until the desired print preview is achieved.
Once the user is finished modifying the previewed Web page, the intelligent printing applet 110 may optionally determine at decision block 522 whether the user desires to save the modified Web page. If the user desires a saved version, the method of flow chart 500 continues to element 524, where the intelligent printing applet 110 may save the modified Web page in a file on the user computer system 102. Otherwise, the method of flow chart 500 may continue to element 526, where the intelligent printing applet 110 transmits a printing command, after which the method terminates. The intelligent printing applet 110 may transmit the printing command to the browser 108 or to the printer 120, as appropriate.
While the two flow charts are depicted as separate methods, one skilled in the art will recognize that they may be combined in any fashion. For example, an embodiment of the intelligent printing applet 110 may be able to modify margins, fonts, graphics, and sections and thus combine elements from both flow chart 400 and flow chart 500 into one process.
In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
It will be apparent to those skilled in the art having the benefit of this disclosure that the present invention contemplates methods, systems, and media for printing a Web page. It is understood that the form of the invention shown and described in the detailed description and the drawings are to be taken merely as examples. It is intended that the following claims be interpreted broadly to embrace all the variations of the example embodiments disclosed.