This invention relates generally to systems and methods for providing online services, and more particularly to systems and methods for providing online word processing services.
Online word processing applications are used to enable users to create and edit documents via a network. In an online word processing system, documents created by a user are stored at a location remote from the user's device. Many online word processing applications also enable multiple users to share documents by allowing multiple user devices to access a document simultaneously. Many online word processing applications enable users to edit documents using common features such as text searching, redlining, etc., and to format documents using various styles, fonts, etc.
When a user of an online word processing application requests use of a font that is offered by the online word processing application but is not stored locally on the user's device, the requested font may need to be downloaded by the user's device, causing delays which can detract from the user's online experience.
In accordance with an embodiment of the invention, a method for providing online services is provided. A first request that the user device render a first text in a default font is transmitted to a user device, and a second request that the user device render a second text in the desired font is transmitted to the user device. Data pertaining to the desired font is provided to the user device, if a first dimension of the first text is the same as a second dimension of the second text. For example, the data may comprise a request that the user device download the desired font from a specified source. The first dimension may be a width of the first text and the second dimension may be a width of the second text, for example.
In one embodiment, a request that the user device display a portion of a document is transmitted, and one or more requests that the user device render the first text and the second text in a region that is not displayed are transmitted. A request that the user device display at least a portion of the document using the desired font may also be transmitted. The first text and the second text may comprise identical strings of alphanumeric characters. The online word processor may be accessible via a network.
In another embodiment, a request that the user device display a message indicating that the desired font is being downloaded is transmitted, during the downloading step. A selection of an option to download the desired font may be received from the user device.
In another embodiment of the invention, a method for providing online services is provided. A request to access a document from a user device is received, and one or more fonts used in the document are identified. A missing font that is not stored on the user device is determined from among the identified fonts, and data pertaining to the missing font is provided to the user device. A first request that the user device display a message indicating that the missing font is being downloaded is transmitted, and a second request that the user device display the document using the at least one font is transmitted.
In one embodiment, the data pertaining to the missing font is transmitted to a second user device, and a request that the second user device display a second message indicating that the missing font is being downloaded is transmitted.
In another embodiment, a method for providing online services is provided. One or more fonts used in a document that is shared by a plurality of user devices are identified. A missing font that is not stored on a selected one of the user devices is determined from among the identified fonts, and data pertaining to the missing font is provided to the selected user device and to at least one other user device in the plurality of user devices.
These and other advantages of the present disclosure will be apparent to those of ordinary skill in the art by reference to the following Detailed Description and the accompanying drawings.
In the exemplary embodiment of
Online word processor 135 comprises a word processing application accessible to users via network 105. Online word processor 135 provides online word processing services, enabling users to create, display, and edit documents remotely. Online word processor 135 may be accessible via a World Wide Web page that may be viewed using a conventional Web browser, for example. A user may be required to log into a respective user account to access his or her documents. Online word processor 135 may offer common word processing features such as text searching, redlining, etc.
In accordance with an embodiment of the invention, online word processor 135 offers access to a plurality of fonts, and allows users to render a selected portion of a document in a desired font.
User-created documents may be stored in document repository 147. A document created by a user may be stored in association with his or her user account, for example.
Font server 140 stores information relating to various fonts used by online word processor 135. For example, font server 140 may store information defining the size and style of each font.
In other embodiments, any of the functions of online word processor 135, document repository 147 and/or font server 140 may be combined and performed by a single component. Alternatively, online word processor 135, document repository 147 and font server 140 may function separately but reside and operate on a single device.
User device 160 may be any device that enables a user to communicate via network 105. User device 160 may be connected to network 105 through a direct (wired) link, or wireles sly. User device 160 may have a display screen (not shown) for displaying information. For example, user device 160 may be a personal computer, a laptop computer, a workstation, a mainframe computer, etc. Alternatively, user device 160 may be a mobile communication device such as a cell phone, a Blackberry, a personal digital assistant, etc. Other devices may be used.
In accordance with the embodiment of
In accordance with an embodiment, a user employing user device 160 may access online word processor 135 and create a new document 300, shown in
Many user devices store a limited number of fonts in local storage. Fonts offered by online word processor 135 are stored in font server 140. In one embodiment, the number of fonts offered by online word processor 135 is greater than the number of fonts stored on user device 160. For example, font library 243 (shown in
When a user of online word processor 135 selects, for use in a document, a font that is offered by online word processor 135 but is not stored locally on user device 160, online word processor 135 requests that user device 160 obtain the desired font from font server 140. Online word processor 135 may provide an address of font server 140 and/or an identifier associated with the font, for example. In response, browser 210 connects to font server 140 and requests the desired font. Font server 140 retrieves the requested font from memory and transmits the font to user device 160. User device 160 receives the new font and stores it in font library 243.
Online word processor 135 may provide a font to user device 160 using other methods. For example, online word processor 135 may retrieve a font from font server 140 and transmit the font directly to user device 160. Alternatively, information pertaining to various fonts may be stored in online word processor 135 and provided to user device 160 upon request.
After user device 160 has downloaded a desired font and stored it in memory, if a user of online word processor 135 selects the font for use in a document, by indicating a selected portion of text in a document and selecting the desired font from a menu, for example, online word processor 135 may transmit data adapted to cause user device 160 to display the text in the desired font. For example, online word processor 135 may request that user device 160 display the text in the desired font, in accordance with known communication protocols. Online word processor 135 may cause user device 160 to display text in a selected font using other methods.
It has been observed that when a user of an online word processing application selects, for use in a document, a font that is offered by the online word processing application but is not stored locally on the user's device, the user can undergo a potentially confusing experience when the selected font is downloaded by the user's device. In particular, the user device may continue to display the user's document in a default font after the user's selection of the desired font until the desired font has been downloaded by the user's device. When the download is complete, the document may be suddenly displayed in the desired font. Some users, not understanding that it sometimes necessary to download fonts, may be confused by such delays.
In accordance with an embodiment of the invention, a method for providing enhanced font management services is provided in which a requested font is provided in a user-friendly manner.
Suppose that a user wishes to edit document 300, employs user device 160 to connect to online word processor 135, and accesses document 300 (shown in
Suppose further that the text of document 300 is in a default font, FONT1, but that that the user wishes to change the font of the words “John Doe” (366) in document 300 from the default font to a second font, FONT2. The user accordingly highlights the words “John Doe” (366) and selects font option 390 available on toolbar 388, causing a dropdown menu to appear which includes four available font options, FONT1 (option 311), FONT2 (option 312), FONT3 (option 313), and FONT4 (option 314). More or fewer than four fonts may be available. The user selects FONT2 (option 312). User device 160 transmits the selection to online word processor 135. Referring to
Online word processor 135 determines whether or not it is necessary to provide the desired font (FONT2) to user device 160. To determine whether the desired font is already stored on user device 160, at step 420, online word processor 135 transmits data adapted to cause user device 160 to render a first text in the user device's default font (FONT1). In the example of
At step 430, online word processor 135 transmits data adapted to cause user device 160 to render a second text in the desired font. In this example, online word processor 135 transmits a request that user device 160 render a second text string 343, which also including the alphanumeric characters “Text1,” in region 365 (which is not displayed to the user). Text strings 341 and 343 may be rendered in other regions or other locations.
At step 440, online word processor 135 transmits a request that user device 160 measure a dimension of first text string 341 and a dimension of second text string 343. In one embodiment, the width of the text 341 and the width of text 343 are measured. User device 160 informs online word processor 135 of the width measurements, and online word processor 135 compares the widths of the text strings. If the widths of the first and second text strings are different, online word processor 135 determines that user device 160 rendered text string 343 in the desired font and that user device 160 already has the desired font (FONT2) stored locally. Online word processor 135 therefore concludes that there is no need to provide FONT2 to user device 160.
If the widths of the first and second text strings are the same, online word processor 135 concludes that user device 160 does not have the desired font (FONT2) stored locally, and that user device 160 instead used the default font (FONT1) to render both text strings 341 and 343. Accordingly, online word processor 135 provides to user device 160 information pertaining to the desired font (FONT2), at step 450. Online word processor 135 may transmit a request that user device 160 download the desired font from font server 140 (or from another specified source), for example. The request may contain information concerning an address of server 140 and/or a storage location of the desired font, for example. User device 160 downloads the desired font and stores the font in font library 243.
In other embodiments, dimensions other than width may be used in performing the method described in
In another embodiment of the invention, when user device 160 connects to online word processor 135, online word processor 135 determines which fonts are available from font server 140 that are not stored in font library 243. Accordingly, when user device 160 connects to online word processor 135, for each respective font available from font server 140, online word processor 135 transmits a request that user device 160 render a first text in the user device's default font, and a request that user device 160 render a second text in the respective font. In response, user device 160 renders a first text in the default font and a second text in the respective font. The first and second texts may be rendered in a region that is not displayed, for example. Online word processor 135 further transmits a request that user device 160 measure a dimension of the first text and a dimension of the second text, in the manner described above. In one embodiment, the width of the first text and the width of the second text are measured. User device 160 informs online word processor 135 of the width measurements, and online word processor 135 compares the widths of the texts. If the widths of the first and second texts are different, online word processor 135 determines that user device 160 rendered the second text in the respective font and that user device 160 already has the respective font stored locally. If the widths of the first and second texts are the same, online word processor 135 concludes that user device 160 does not have the respective font stored locally, and that user device 160 instead used the default font to render both texts. Online word processor 135 may in such case provide to user device 160 information pertaining to the respective font (such as a location of the font on font server 140). In this manner, online word processor 135 and user device 160 determine which fonts available from font server 140 are not stored locally on user device 160. Subsequently, when a user requests a font that is not stored in font library 243 of user device 160, user device 160 may download the font from font server 140.
In another embodiment of the invention, a user requesting a desired font is provided an option to download the desired font. Referring to
In accordance with another embodiment, while a font is being downloaded by user device 160, online word processor 135 causes user device 160 to display a message informing the user that the font is currently being downloaded. Displaying such a message can provide a more user-friendly experience to users of an online word processing application.
Suppose that a user employing user device 160 connects to online word processor 135 and requests access to document 300. At step 620, online word processor 135 receives the request to access document 300 from user device 160. At step 630, online word processor 135 identifies one or more fonts used in document 300. Online word processor 135 determines whether each of the identified fonts is stored locally on user device 160. In this example, online word processor 135 determines that one of the fonts used in document 300 is not stored on the user device, at step 640.
At step 650, online word processor 135 transmits data adapted to cause user device 160 to display a message indicating that the missing font is being downloaded. For example, online word processor 135 may transmit a request that user device 160 display a message indicating that the missing font is being downloaded. In response, user device 160 displays a downloading font message 720, as shown in
At step 670, online word processor 135 transmits data adapted to cause user device 160 to display document 300 using the downloaded font. Online word processor 135 may transmit an appropriate request to user device 160, for example.
In accordance with another embodiment, a font may be provided to multiple user devices that are sharing a document. Suppose, for example, that a first user employing user device 160-A is sharing document 300 with a second user employing user device 160-B. When the first user connects to online word processor 135 and requests access to document 300, online word processor 135 identifies which fonts are used in document 300 and determines if any of the fonts are not currently stored in user device 160-A. If a font used in document 300 is not stored in user device 160-A, online word processor 135 provides information pertaining to the font to user device 160-A. Online word processor 135 may transmit a request that user device 160 download the font from font server 140, for example. Online word processor 135 may also transmit data adapted to cause user device 160-A to display a message indicating that the font is being downloaded, in the manner described above. Online word processor 135 also provides the font to user device 160-B (employed by the second user), and causes the user device 160-B to display a message indicating that the font is being downloaded.
In another embodiment of the invention, font libraries stored in multiple user devices employed by users sharing a particular document are synchronized. For example, while users employing user devices 160-A and 160-B are editing document 300, online word processor 135 may access font library 243 (of user device 160-A) to identify which fonts are stored therein, and similarly examine a font library of user device 160-B to determine which fonts are stored therein. Online word processor 135 may then copy to user device 160-A any fonts from user device 160-B that are not currently stored in user device 160-A, and copy to user device 160-B any fonts from user device 160-A that are not currently stored in user device 160-B. Online word processor 135 may perform such font synchronization as a background routine, for example.
In various embodiments, the method steps described herein, including the method steps described in
Systems, apparatus, and methods described herein may be implemented using digital circuitry, or using one or more computers using well-known computer processors, memory units, storage devices, computer software, and other components. Typically, a computer includes a processor for executing instructions and one or more memories for storing instructions and data. A computer may also include, or be coupled to, one or more mass storage devices, such as one or more magnetic disks, internal hard disks and removable disks, magneto-optical disks, optical disks, etc.
Systems, apparatus, and methods described herein may be implemented using computers operating in a client-server relationship. Typically, in such a system, the client computers are located remotely from the server computer and interact via a network. The client-server relationship may be defined and controlled by computer programs running on the respective client and server computers.
Systems, apparatus, and methods described herein may be used within a network-based cloud computing system. In such a network-based cloud computing system, a server or another processor that is connected to a network communicates with one or more client computers via a network. A client computer may communicate with the server via a network browser application residing and operating on the client computer, for example. A client computer may store data on the server and access the data via the network. A client computer may transmit requests for data, or requests for online services, to the server via the network. The server may perform requested services and provide data to the client computer(s). The server may also transmit data adapted to cause a client computer to perform a specified function, e.g., to perform a calculation, to display specified data on a screen, etc. For example, the server may transmit a request adapted to cause a client computer to perform one or more of the method steps described herein, including one or more of the steps of
Systems, apparatus, and methods described herein may be implemented using a computer program product tangibly embodied in an information carrier, e.g., in a non-transitory machine-readable storage device, for execution by a programmable processor; and the method steps described herein, including one or more of the steps of
A high-level block diagram of an exemplary computer that may be used to implement systems, apparatus and methods described herein is illustrated in
Processor 801 may include both general and special purpose microprocessors, and may be the sole processor or one of multiple processors of computer 800. Processor 801 may comprise one or more central processing units (CPUs), for example. Processor 801, data storage device 802, and/or memory 803 may include, be supplemented by, or incorporated in, one or more application-specific integrated circuits (ASICs) and/or one or more field programmable gate arrays (FPGAs).
Data storage device 802 and memory 803 each comprise a tangible non-transitory computer readable storage medium. Data storage device 802, and memory 803, may each include high-speed random access memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), double data rate synchronous dynamic random access memory (DDR RAM), or other random access solid state memory devices, and may include non-volatile memory, such as one or more magnetic disk storage devices such as internal hard disks and removable disks, magneto-optical disk storage devices, optical disk storage devices, flash memory devices, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM), digital versatile disc read-only memory (DVD-ROM) disks, or other non-volatile solid state storage devices.
Input/output devices 805 may include peripherals, such as a printer, scanner, display screen, etc. For example, input/output devices 805 may include a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user, a keyboard, and a pointing device such as a mouse or a trackball by which the user can provide input to computer 800.
Any or all of the systems and apparatus discussed herein, including online word processor 135, document repository 147, font server 140, and user device 160, and components thereof, including web browser 210, font library 243, and display 270, may be implemented using a computer such as computer 800.
One skilled in the art will recognize that an implementation of an actual computer or computer system may have other structures and may contain other components as well, and that
The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.
This application claims the benefit of provisional patent application Ser. No. 61/381,665, filed Sep. 10, 2010, which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61381665 | Sep 2010 | US |