1. Technical Field
The present invention relates to an improved data processing system and, in particular, to a method and apparatus for managing world wide web documents in a data processing system. Still more particularly, the present invention provides a method and apparatus for performing actions on selected portions of web documents and displaying the location of page breaks within a web browser in a data processing system.
2. Description of Related Art
The worldwide network of computers commonly known as the “Internet” has seen explosive growth in the last several years. Mainly, this growth has been fueled by the introduction and widespread use of so-called “web browsers,” which enable simple graphical user interface-based access to network servers, which support documents formatted as so-called “web pages.” These web pages are versatile and customized by authors. For example, web pages may mix text and graphic images. A web page also may include fonts of varying sizes. A browser is a program that is executed on a graphical user interface (GUI). The browser allows a user to seamlessly load documents from the Internet and display them by means of the GUI. These documents are commonly formatted using markup language protocols, such as hypertext markup language (HTML). Portions of text and images within a document are delimited by indicators, which affect the format for display. In HTML documents, the indicators are referred to as tags. The browser gives some means of viewing the contents of web pages (or nodes) and of navigating from one web page to another.
The versatility and customization of web pages, however, is sometimes an impediment to user generating hard copies of the documents. Popular web browsers let users print entire HTML documents. Often, web pages contain information that the user may not want in a printed copy of the document, such as advertising banners or large pictures. Web pages may contain text, which is the same color as the background and contains keywords to improve the chances of being returned to users by a search engine.
Currently; web browsers provide the ability to select a portion of a document and to print only the selected portion. However, the layout of a web page is relative to the locations of the indicators (i.e. tags) within the page. When only a portion is selected for print, how the layout is affected is not known until the portion is actually printed. For example, if a user selects a portion of a document containing images, the user does not know how the image will fall within surrounding text until the portion is printed. To view how a selected portion of a document will look when only that portion is printed, a user must edit the document in a two step process. First, the user must cut the highlighted portion and paste it into a word processor or HTML editor. Then, the pasted portion is printed from the word processor.
Another difficulty in generating hard copies occurs with varying font sizes within a web page. Often, web pages contain text, which may be too big or too small to be printed practically.
For example, an author might make some text very large to capture the attention of the viewer. Web pages may contain disclaimers, the text of which is too small to be printed legibly. Currently, web browsers do not provide the ability to select portions of a document and to increase or decrease the font size of the selected portions. Again, to do such, a user must copy the web page to or open the web page in a word processor or HTML editor, select portions of the text by highlighting, change the font properties of the highlighted portions, and print the document from the word processor.
Web pages are authored for the purpose of display. As such, a single web page may correspond to several printed pages. This feature is frustrating when a user tries to generate a hard copy of a web page. The number of pages that will be printed and where the page breaks will fall cannot be determined until the document is actually printed. A user may unwittingly print a document, which contains far more pages than desired. Some web browsers include a “print preview” function, which displays an image of how each page will appear when printed. However, the images are often difficult to read and it is difficult to determine the subject matter on each page. The user must use “zoom” functions and navigate through the images to identify the layout of the pages. The prior art “print preview” function does not allow the user to view page break indicators within a web document as it is displayed by the web browser.
The present invention solves the problems associated with the prior art by creating a copy of the requested document and automatically performing minor editing functions on the copy in response to user commands. According to a first aspect of the present invention, when a user selects a portion of a first web document by highlighting the portion on the display and entering or selecting a command to print the selected portion, the web browser application creates a second web document comprising the header of the currently displayed document and the selected portion of the document. The web browser application then prints the second document. In doing so, the selected portion is printed and the important structural data of the HTML document is retained.
According to a second aspect of the present invention, when a user selects a portion of a first web document by highlighting the portion of the display and entering or selecting a command to change the font, the web browser application creates a copy of the current web document and inserts virtual font tags before and after the selected portion. In doing so, the user may alter the appearance of the web page using a simple command without opening and operating a complex word processing or editing application program.
According to a third aspect of the present invention, when a document is displayed, the web browser application identifies page break information. The web browser application then creates a copy of the web document and inserts virtual page break tags at the locations indicated by the page break information. It is then the copy of the document that is displayed with the page break locations indicated on the display.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures,
In the depicted example, a server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 also are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers. Client 112 is shown to be connected to printer 114. For purposes of this application, a network computer is any computer, coupled to a network, which receives a program or other application from another computer coupled to the network. In the depicted example, server 104 provides data, such as web pages to clients 108-112. The web pages may be stored in storage unit 106 or at the server 104. Clients 108, 110, and 112 are clients to server 104. Distributed data processing system 100 may include additional servers, clients, and other devices not shown.
In the depicted example, distributed data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, distributed data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
With reference now to
An operating system runs on processor 202 and is used to coordinate and provide control of various components within data processing system 200 in
Those of ordinary skill in the art will appreciate that the hardware in
For example, data processing system 200, if optionally configured as a network computer, may not include SCSI host bus adapter 212, hard disk drive 226, tape drive 228, and CD-ROM 230, as noted by dotted line 232 in
The depicted example in
With reference now to
Turning next to
In this example, browser 400 includes a user interface 410, which is a graphical user interface (GUI) that allows the user to interface or communicate with browser 400. This interface provides for selection of various functions through menus and allows for. For example, a menu may allow a user to perform various functions, such as saving a file, opening a new window, displaying a history, and entering a uniform resource locator (URL). Navigation allows for a user to navigate various pages and to select web sites for viewing. For example, navigation may allow a user to see a previous page or a subsequent page relative to the present page Communications 420 is the mechanism with which browser 400 receives documents and other resources from a network such as the Internet. Further, communications 420 is used to send or upload documents and resources onto a network. In the depicted example, communication 420 uses HTTP. Other protocols may be used depending on the implementation.
Browser 400 also includes document creation and editing 430. In response to instruction by the user, document creation and editing 430 creates a new document for presentation to the user. The specific features of presentation of a selected portion of a document, presentation of a document with modified font attribute for a selected portion, and presentation of a document with page break indicators will be described in more detail below. However, document creation and editing 430 may include other features which allow a user to customized an existing web page.
Browser 400 is presented as an example of a browser program in which the present invention may be embodied. Browser 400 is not meant to imply architectural limitations to the present invention. Presently available browsers may include additional functions not shown or may omit functions shown in browser 400. A browser may be any application that is used to search for and display content on a distributed data processing system. Browser 400 make be implemented using known browser applications, such as Netscape Navigator or Microsoft Internet Explorer. Netscape Navigator is available from Netscape Communications Corporation while Microsoft Internet Explorer is available from Microsoft Corporation, Redmond, Wash.
The present invention may be implemented by modifying the code of an existing web browser or by means of a plug-in application or other applications to be used integrally within the web browser. Known plug-in applications and other applications are configured within the web browser by creating associations with particular file types or by creating additional menu commands, buttons on toolbars, etc. Calls are made to the applications by the web browser and the applications are run within the browser itself. For example, images, streaming audio and video, and other content such as streaming stock quotes may be presented within the web browser by supporting applications.
An example of a screen of display of a web browser is shown in
Browser program window 500 also includes a menu bar 512, navigation toolbar 514, and address toolbar 516. Menus to be selected from menu bar 512 include “File”, “Edit”, “View”, “Tools”, “Window”, and “Help.” However, menu bar 512 may include fewer or more menus, as understood by a person of ordinary skill in the art. Navigation toolbar 514 is a series of buttons, which produce navigational commands when selected. The navigation toolbar buttons include “Back”, “Forward”, “Stop”, “Reload”, and “Home.” Address toolbar 516 includes a text entry field in which a new URL may be entered for retrieval. Browser program window 500 also includes a display area 518.
Also shown in
As shown in
With reference now to
The operation of the program begins (step 700) and receives a URL of a document to be displayed (step 705). When the browser application is initially opened, the URL received is the home page designated by the user to be loaded at startup. A URL may also be received by selection of a “favorite” or “bookmark”, selection of the “Back”, “Forward”, or “Home” buttons, direct entry into an address bar, such as address bar 516, or by other methods, such as links from other applications. When the URL is received, the document is retrieved from the server (step 710) and the document is displayed (step 715).
Next, the process determines whether a “reload” instruction has been received (step 720) by selection of the “reload” button, selection through a menu, or by a keyboard command. If a “reload” instruction has been received, the process returns to step 710 to retrieve the document corresponding to the current URL in the document history. If a “reload” instruction has not been received in step 720, a determination is made whether a new URL has been selected or entered (step 725). If a new URL has been selected or entered, then the process returns to step 705 to receive the URL for document retrieval and display. If a new URL has not been selected or entered in step 720, a determination is made whether an action is requested (step 730). In the depicted example, an action may be any non-navigational command issued by the user, such as “minimize” or a help command. If an action is not requested, the process returns to step 720 to repeat determination as to whether a “reload” instruction, a new URL, or an action request is received.
With reference again to step 730, if an action is requested, a determination is then made whether a portion of the document has been selected (step 735). Typically, a portion of a document is highlighted for selection by operation of a mouse; however, other methods of selecting a portion of a document, such as by means of cursor control keys, menu commands, etc. will be readily apparent to a person of ordinary skill in the art. Commands and instructions are issued to the program by the user through the graphical user interface, i.e. the buttons and menus, keystrokes, and/or a command-line interface, as are known in the art. Other means for allowing a user to issue commands will be readily apparent to a person of ordinary skill in the art. In a preferred embodiment, the right-click capabilities within the Windows operating system will be used to present additional menu choices, such as “Print Selected,” “Display Selected,” “Increase Font,” “Decrease Font,” and “Display Page Breaks” when a portion of the document has been selected by highlighting.
If a portion of the document has been selected, a determination is made whether an instruction to present the selected portion of the document (step 740). If an instruction to present the selected portion of the document is received, the program executes the instruction according to a first aspect of the present invention (step 745) and returns to step 720 to determine whether a “reload” instruction has been received. The detailed operation of the presentation of the selected portion of the document according to the first aspect of the present invention will be described in more detail below with respect to
Referring back to step 740, if an instruction to present the selected portion of the document is not received, a determination is made as to whether an instruction to change the font of the selected portion (step 750). If an instruction to change the font of the selected portion is received, the program executes the instruction according to a second aspect of the present invention (step 755) and returns to step 720 to determine whether a “reload” instruction has been received. The detailed operation of the change of the font of the selected portion of the document according to the second aspect of the present invention will be described in more detail below with respect to
With reference again to step 735, if a portion of the document has not been selected, a determination is made whether an “exit” instruction has been received (step 760). If an “exit” instruction has been received, operation ends (step 765) and the program closes. If in step 760 an “exit” instruction has not been received, a determination is made whether an instruction has been received to display the document with page break indicators (step 770).
If an instruction has been received to display the document with page break indicators, the program executes the instruction (step 775) according to a third aspect of the invention and returns to step 720 to determine whether a “reload” instruction has been received. The detailed operation of the display of the document with page break indicators according to the third aspect of the present invention will be described in more detail below with respect to
Referring again to step 770, if an instruction has not been received to display the document with page break indicators, the program proceeds to perform any other action, as with a conventional web browser (step 780). The process then returns to step 720 to determine whether a “reload” instruction has been received. Other actions to be performed may include “minimize” or “save”, as mentioned above; however, such actions are not the focus of the current invention and will not be described in further detail.
In accordance with a first aspect of the invention, a user may determine a portion of a document, which is desired for printing. However, due to the complexity of some web documents, it may be difficult for the user to visualize or predict the appearance of the printed output. Therefore, the mechanism of the present invention solves this problem by allowing the user to instruct the web browser to create a document, which contains only the selected portion, and to display the newly created document for subsequent printing.
Turning now to
As seen in the example shown in
<IMG SRC=“Image1.jpg” ALIGN=“center” Width=45 HEIGHT=45>
The selected portion ends with the text “Display a virtual page break indicator inline with the web documents”. Therefore, the new document 904 is created by copying the header and any trailer information from the current document 604. The <BODY> and </BODY> tags also are automatically copied from the current document to the newly created document. In the current example, the <BODY> tag includes the following attributes: TEXT=“#000000” LINK=“#0000ff” VLINK=“#800080”. All images and text included in the selected portion, as well as any tags which effect any part of the selected portion, are also copied to the newly created document and inserted between the <BODY> and </BODY> tags. For example, as seen in
In the example shown in
With reference now to
A preferred method of copying the selected portion and corresponding tags into the body of the newly created document, shown as step 1108 in
An element may be a single character or may be a recognized tag or string of text. For example, in the example document in
<BODY TEXT=“#000000” LINK=“#0000ff” VLINK=“#800080”>
and the next element is a comment tag <!--Begin Ads-->. It will be understood that comment tags may either be automatically copied to the new document or automatically skipped, because they do not affect the appearance of the web page. Alternatively, a test may be performed to determine whether the tag lies within the selected portion of the document. Although not shown in
A determination is made whether the element is a tag (step 1124). If the element is a tag, a determination is made whether the tag is an image tag (step 1126). If the tag is not an image tag in step 1126, a determination is made whether the tag is a beginning tag or an ending tag (step 1127). Ending tags will begin with “</” characters. In a preferred embodiment, any tag that is not an image tag and does not begin with “</” characters will be considered a beginning tag; however, other methods of determining tags may be employed, such as look-up tables of known tags. If the tag is a beginning tag in step 1127, the process searches for a corresponding end tag in the remainder of the document (step 1128) and a determination is made as to whether an end tag is found (step 1130).
If an end tag is not found, the tag is copied to the new document (step 1132). For simplicity, the current example shows that the tag is copied whether it is followed by selected text or images or not. Alternatively, a determination may be made whether the tag is followed by selected text or images, as will be understood by one of ordinary skill in the art. If a beginning tag does not have a corresponding ending tag and is not followed by selected text or images, it may be skipped to avoid extraneous tags that have no effect on the newly created document.
Referring again to step 1130, if an end tag is found, a determination is made whether selected text or images lie between the begin tag and the end tag (step 1134). If selected text or images do lie between the begin tag and the end tag, the process proceeds to step 1132 and the tag is copied to the new document. If selected text or images do not lie between the begin tag and the end tag in step 1134, the begin tag is skipped and the process returns to step 1122 to process the next element.
Referring again to step 1124, if the element is not a tag, the element is assumed to be text as it will appear in the web page. A determination is made whether the element is selected text (step 1136). If it is not selected text, the element is skipped and the process returns to step 1122 to process the next element. The element may be a single character, an entire string of unselected text not including tags, an entire string of selected text not including tags, etc. If the element is selected text in step 1136, the text is copied to the new document (step 1138).
Referring again to step 1126, if the tag is an image, a determination is made whether it is a selected image (step 1140). If it is not a selected image, the element is skipped and the process returns to step 1122 to process the next element of the original document. If the element is a selected image in step 1140, the image tag is copied to the new document (step 1142).
Referring again to step 1127, if the tag is an end tag, a determination is made whether the tag is the </BODY> tag (step 1144). If the tag is the </BODY> tag, then the process has reached the end of the body of the original document and ends (step 1146). If the tag is not the </BODY> tag in step 1144, a determination is made whether the tag has a corresponding begin tag that has been copied to the new document (step 1148). If the end tag does not have a corresponding begin tag that has been copied to the new document, the end tag is skipped and the process returns to step 1122 to process the next element. If it is determined in step 1148 that the end tag does have a corresponding begin tag that has been previously copied to the new document, then the end tag is copied to the new document (step 1132).
In accordance with a second aspect of the invention, the user may determine a text portion of a document, the font size of which is too large or too small to be printed practically or legibly. However, conventional web browsers do not allow a user to modify the font size of only a portion of a document for display and subsequent printing. The present invention solves this problem by allowing the user to instruct the web browser to create a copy of a document, insert font tags to modify the size of only the selected portion, and display the newly created document for subsequent printing.
Turning now to
With reference now to
With respect to
If the font tag does include a size attribute in step 1526, a determination is made whether the selected text is the only text between the font tags (step 1528). If the selected text is the only text between the font tags, then the size attribute in the font tag is increased or decreased by one depending on the instruction from the user (step 1530), and execution ends (step 1534).
If the selected text is not the only text between the font tags in step 1528, then <FONT SIZE=X> and </FONT> tags are added before and after the selected text, where X is the adjusted size, and execution ends (step 1534).
As will be understood, the present invention is not limited to changing the font size, as described above. The present invention may be used to change any attribute associated with the font of the selected portion. For example, the web browser may be configured to allow the user to select a portion of a document and issue an instruction to change the font face, color, or other attribute.
In accordance with a third aspect of the invention, the user may wish to view the web document as it will appear in printed form. However, conventional web browsers only allow a user to preview a document for subsequent printing. This feature is called a “Print Preview” function. However, the “Print Preview” display is often difficult to read and does not act as a web page. Therefore, the present invention solves this problem by allowing the user to instruct the web browser to create a copy of a document, insert page break indicator tags to indicate the locations of page breaks, and display the newly created document for subsequent printing.
An example document created by the invention is shown in
Referring again to
According to an alternate embodiment of the present invention, the web browser application can estimate the locations of page breaks using the “page setup” information, sizes of fonts, sizes of images, etc. However, characteristics of printers vary and the printed pages will not always appear as estimated. For example, due to differences in printer characteristics (e.g., resolution), a page printed on a dot matrix printer will appear different from a page printed on a laser printer, particularly where line breaks and page breaks lie. Therefore, receiving the page break information from the printer driver is more reliable.
Turning now to
With respect to
According to an alternate embodiment of the present invention, the step of removing page break indicators from the document (step 1826) may include the insertion of forced page breaks in the place of the page break indicators. By forcing page breaks at the time of printing, the present invention prevents partial printing of lines of text or images at bottoms of printed pages.
The present invention allows a user to display and print a selected portion of a web page, to change font attributes of a selected portion of a web page, and to display a web page with an indication of where the page breaks will occur and how many pages there are in the document in a web browser without employing a word processor or web page editor application. Switching between a web browser and a word processor is cumbersome and time consuming. Word processors consume memory with complex software, which is unnecessary for the simple tasks of printing and changing the font properties of a portion of a web document. Furthermore, word processors do not include many of the features for which web browsers were designed, such as seamless navigation between pages, executing Java applets, managing and executing plug-in applications, executing CGI scripts, etc. The present invention provides added printing functionality without requiring explicit, burdensome steps to be performed by the user and without loss of web browser functionality.
It will be recognized that the aspects of the present invention may be used in conjunction with one another to provide more control over the presentation of a web page. For example, a user may select a portion of a web page to eliminate the presentation of banner advertisements. Then, the user may select a portion of the resulting display and instruct the program to change the size of the font of the selected text. The user may then instruct the program to display page breaks within the resulting page. Each time the user issues an instruction, a new page is created and the previous page remains on the web server, is discarded, or becomes part of the document history.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions for execution by a data processing system and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such a floppy disc, a hard disk drive, a RAM, and CD-ROMs and transmission-type media such as digital and analog communications links.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Number | Name | Date | Kind |
---|---|---|---|
4709348 | Horn et al. | Nov 1987 | A |
5023811 | Donnelly et al. | Jun 1991 | A |
5528742 | Moore et al. | Jun 1996 | A |
5537518 | Hasegawa | Jul 1996 | A |
5613017 | Roa et al. | Mar 1997 | A |
5623681 | Rivette et al. | Apr 1997 | A |
5870767 | Kraft, IV | Feb 1999 | A |
5890173 | Yoda | Mar 1999 | A |
5950214 | Rivette et al. | Sep 1999 | A |
6011905 | Huttenlocher et al. | Jan 2000 | A |
6016494 | Isensee et al. | Jan 2000 | A |
6018749 | Rivette et al. | Jan 2000 | A |
6029182 | Nehab et al. | Feb 2000 | A |
6128633 | Michelman et al. | Oct 2000 | A |
6185588 | Olson-Williams et al. | Feb 2001 | B1 |
6330577 | Kim | Dec 2001 | B1 |
6366923 | Lenk et al. | Apr 2002 | B1 |
6457030 | Adams et al. | Sep 2002 | B1 |
6487567 | Michelman et al. | Nov 2002 | B1 |
6512531 | Gartland | Jan 2003 | B1 |
6535896 | Britton et al. | Mar 2003 | B2 |
6563913 | Kaghazian | May 2003 | B1 |
6763388 | Tsimelzon | Jul 2004 | B1 |
6832351 | Batres | Dec 2004 | B1 |
20020013792 | Imielinski et al. | Jan 2002 | A1 |
Number | Date | Country |
---|---|---|
2000-020384 | Jan 2000 | JP |
1998-0010862 | Apr 1998 | KR |
1998-083539 | Dec 1998 | KR |