Laying out a paragraph by defining all the characters as a...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000, C707S793000

Reexamination Certificate

active

06321243

ABSTRACT:

FIELD OF THE INVENTION
This invention relates in general to laying out text, and in particular to laying out a paragraph using a layout services library.
BACKGROUND OF THE INVENTION
Electronic documents have proliferated as computers have become common fixtures in offices, schools and homes. In many instances, electronic documents have replaced paper documents. For example, an electronic document may be distributed instead of a paper memorandum. To encourage the use of an electronic document rather than a paper document, the text of the electronic document must be legible and linguistically accurate. The text of an electronic document is typically rendered using one or more fonts such as Arial, Times New Roman or Courier. A font is a particular style of typeface. A font designed for an electronic document is designed to increase the readability of the document when displayed on a pixel display device, such as a monitor or a printer. To render the text of an electronic document in a particular font, the text is represented by glyphs. A glyph is a representation of one or more characters. A single glyph may represent a single character such as the lower case letter “f” or a single glyph may represent a string of characters such as the lower case letters “fi”. To render a document on a display device, the characters of the document are converted to glyphs and the glyphs are displayed on the display device.
Typically, font information, including glyph information, is stored in a set of font tables. For example, the OpenType Layout font standard promulgated by Microsoft Corporation of Redmond, Wa., assignee of the present invention, includes five font tables: (1) a glyph substitution table, (2) a glyph position table, (3) a justification table, (4) a baseline table, and (5) a glyph definition table. The OpenType Layout font tables support contextual mapping between characters and glyphs, including ligatures, positional forms, alternatives, and other substitutions.
A word processing program may use the information in the font tables to layout and render the text of an electronic document. An electronic document is laid out before the document is rendered on an output device such as a display device. Document layout typically includes paragraph layout. To layout a paragraph, a word processing program breaks the paragraph text into separate lines and then lays out each line separately. However, once a line is laid out, the line may expand or contract which may require that the word processing program re-break the paragraph text. If the word processing program re-breaks the text, then the text must also be laid out again. Repeatedly re-breaking and re-laying out the text increases the time required to render the paragraph. A paragraph could be rendered in less time if the repeated line breaking and lay out could be eliminated. The faster a paragraph is laid out, the faster a document may be displayed. For example, to display the twenty-fifth page of a document, the word processing program must layout twenty-five pages of text, each page of text typically having one or more paragraphs.
If justification is enabled, then each line of the paragraph must also be justified. A line may be justified by the word processing program by using justification suggestions stored in the font tables. The justification suggestions list particular actions that the word processing program may use to adjust the glyphs in a line of text.
To layout a paragraph or to justify text, a word processing program must be able to access and manipulate the font tables and the information contained in those tables. Such manipulation and utilization requires a level of complexity which may not be available in many word processing programs. Therefore, many of the advanced typography features available in the font tables, have not been utilized by word processing programs. If a word processing program could use an interface such as a layout services library to access and manipulate the font tables, then the word processing program could fully utilize the features available without needing an increased level of complexity.
Accordingly, there is a need in the art for a more efficient method for laying out a paragraph and justifying a line of text. There is also a need in the art for a layout services library to interface with the font tables to support paragraph layout and justification.
SUMMARY OF THE INVENTION
The present invention meets the needs described above by providing a method for laying out a paragraph to eliminate repeated line breaking and by providing a layout services library to access the font tables to support paragraph layout and justification. The layout services library accesses the font tables and provides text layout suggestions to the word processing program. The word processing program interfaces with the layout services library via a set of application program interfaces.
To layout a paragraph, the word processing client defines the entire paragraph as a text run, regardless of the length of the paragraph. The text run is laid out by substituting glyphs for the characters of the text run and positioning the glyphs. To substitute glyphs for the characters of the text run, the word processing client issues a substitute glyph function call. In response, the layout services library returns a suggested list of glyph substitutions for the characters of the text run. To position the glyphs, the word processing client issues a position glyph function call. The layout services library accesses the glyph position table and returns x-placement, y-placement, and advance values for the glyphs in the text run.
Once the text run is laid out, the length of the text run is compared to a predetermined line length. The word processing program calculates the length of the text run by issuing a calculate length function call. The layout services library returns the position of the first character and the position of the last character of the text run to the word processing program. The word processing program uses the position information to calculate the length of the text run. The word processing program also compares the length of the text run to the predetermined line length. If the length of the text run exceeds the predetermined line length, then the text run is divided into a parent text run and a child text run. The parent text run includes the portion of the text run which does not exceed the predetermined line length and the child text run includes the remainder of the text run. If the text run uses a Latin typeface, then the text run is typically divided at a space character or if hyphenation is enabled, after a syllable. Text runs using non-Latin typefaces may be divided at other points.
To locate a space character, the word processing program requests the identification of the character at the end of the line by issuing a character identification function call. The layout services library identifies the character at the end of the line. If the character at the end of the line is a space character, then the word processing program divides the text run at the space character. If the character is not a space character, then the word processing program backs up along the text run until a space character is identified. If the length of the child text run exceeds the predetermined line length, then the line breaking process is repeated using the child text run, and the child text run is divided into a first child text run and a second child text run. The layout process is repeated until the length of the last child text run does not exceed the line length.
If justification is enabled, then the word processing program justifies each line of the paragraph. For example, to justify a paragraph, the word processing program justifies the parent text run and any child text runs. To justify a text run, the word processing client selects a justification priority and issues a justification information function call. The justification priority indicates the severity of the actions allowed to justify a line. The layout servi

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Laying out a paragraph by defining all the characters as a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Laying out a paragraph by defining all the characters as a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Laying out a paragraph by defining all the characters as a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2578911

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.