WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Apparatus and methods for creating and using portable fonts    

Get related patents on CD
United States Patent5577177   
Link to this pagehttp://www.wikipatents.com/5577177.html
Inventor(s)Collins; John S. (Boston, MA); Goldwater; Mark H. (Norfolk, MA)
AbstractA computerized apparatus and methods for character shape recording develops new font descriptions from shapes received from pre-defined descriptions. It does so by modeling each such shape to find features, such as points on its outlines, which are a function of that shape itself, rather than the manner in which the pre-defined description defined that shape. The system bases the segmentation of the new font description on such description-independent points. It finds new line or curve segments to approximate the pre-defined font description between such description-independent points, and it picks the outline order, starting points, and directions of that description according to standard rules. This causes the new font descriptions to be free of non-shape-required aspects of the pre-defined descriptions. It is also preferred that the system find how finely the curve must be subdivided on playback so it can be accurately portrayed with vectors by recursively subdividing the curve into subdivisions, approximating each subdivision by a vector, and recursing on the worst fitted subdivision until the worst fit is acceptable. Preferably the system matches outline shapes for different characters of the same or different fonts, and saves storage space by recording a single description of any shape used in more than one new font description. It is also preferred that the system generate new font descriptions from non-character shapes, such as logos. The invention can be used to create portable documents, by receiving fonted input text, accessing and interpreting the pre-defined font descriptions associated with each character-font shape in the input text, and generating a new font description for that shape. Such a system creates a portable document which includes the sequence of characters in the input text, the new font descriptions for those characters; and an indication of which of new font description represents the shape of each such character.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Drawing from US Patent 5577177
Apparatus and methods for creating and using portable fonts - US Patent 5577177 Drawing
Apparatus and methods for creating and using portable fonts
Inventor     Collins; John S. (Boston, MA); Goldwater; Mark H. (Norfolk, MA)
Owner/Assignee     Bitstream, Inc. (Cambridge, MA)
Patent assignment
All assignments
Company News
Publication Date     November 19, 1996
Application Number     08/448,792
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 24, 1995
US Classification     345/469 345/170
Int'l Classification     G06T 005/00
Examiner     Jankus; Almis R.
Assistant Examiner    
Attorney/Law Firm     Porter; Edward W.
Address
Parent Case     REFERENCE TO PRIOR APPLICATION The present application is a divisional application of U.S. patent application Ser. No. 08/250,372, filed by the inventors of this application, John S. Collins and Mark H. Goldwater, on May 27, 1994.
Priority Data    
USPTO Field of Search     395/150 395/151 395/155 395/161 395/141 395/142 395/143 395/133
Patent Tags     methods creating portable fonts
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5473709
Aoki
382/258
Dec,1995

[0 after 0 votes]
5309554
Ito
345/170
May,1994

[0 after 0 votes]
4785391
Apley
345/469
Nov,1988

[0 after 0 votes]
5099435
Collins
345/469
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What we claim is:

1. A computer system comprising:

means for receiving an input text representing a sequence of characters, each of which has an associated shape defined by an associated pre-defined font;

means for receiving a pre-defined font description which defines the shape for each unique combination of a character and associated pre-deformed font in the input text;

modeling means for creating a geometric model of the character-font shape defined by each received pre-defined font description, which model models the one or more outlines of the character-font shape and explicitly indicates features in the character-font shape which are not explicitly indicated in the model's associated pre-defined font description;

means for generating a new font description from the model created for each received pre-defined font description, which new font description describes the shape represented by said model as a sequence of outline segments, said means for generating including means for using said explicitly indicated features to determine where to divide the modeled outlines of the character-font shape into outline segments of the new font description;

means for creating an output including:

a sequence of characters corresponding to those of the input text;

the new font descriptions created for the character-font shapes of the input text; and

an indication of which of the new font descriptions represents the shape of each character in the output text.

2. A computer system as in claim 1 wherein:

said modeling means includes means for marking points in each modeled character-font shape which represent extremes in the horizontal and vertical direction; and

said means for generating a new font description includes means for starting new outline segments at said points marked as extremes.

3. A computer system as in claim 1 wherein:

said modeling means includes means for marking points in each modeled character-font shape which represent inflection points in the outline of that shape; and

said means for generating a new font description includes means for starting new outline segments at said points marked as inflection points.

4. A computer system as in claim 1 wherein:

said character-font shape described by individual pre-defined descriptions are comprised of one or more separate shapes, or glyphs, each of which is described by one external outline and zero or more internal outlines;

said modeling means includes:

means for modeling the external and internal outlines described in received pre-defined descriptions;

means for determining which outlines defined by a given pre-defined description are associated with the same glyph, and which of the outlines associated with the same glyph are external or internal outlines;

means for marking a starting point on each modeled external and internal outline according to a standardized rule for external and internal outlines, respectively, which rules are used for all of said outlines and are independent of any aspect of a pre-defined description which is not inherent in the character-font shape the pre-defined description describes;

said means for generating a new font description from the model of a character-font shape includes means for generating such a new font description which describes the shape of each outline in that model and for starting the sequence of outline segments describing each such outline at a point corresponding to said starting point marked for that outline.

5. A computer system as in claim 1 wherein said pre-defined font descriptions describe character-font shapes as bitmap patterns.

6. A computer system as in claim 1 wherein said pre-defined descriptions describe character-font shapes as a sequence of outline segments.

7. A computer system as in claim 6 wherein the order and segmentation of the outline segments in the new font description has no dependence on the order and segmentation of the outline segments in the pre-defined font description which is not a function of the actual shape described by the pre-defined font description.

8. A computer system as in claim 6 wherein:

said means for receiving an input text includes means for receiving an input text which can include non-character shapes at a given location relative to said sequence of characters;

said means for receiving a pre-defined font description includes means for receiving a pre-defined font description of such a non-character shape as a sequence of outline segments;

said modeling means creates a geometric model for each such non-character shape;

said means for generating a new font description generates a new font description for each such non-character shape; and

said means for creating an output include means for including in that output the new font description for each such non-character shape and for indicating the location of that shape relative to the output's sequence of characters.

9. A computer system comprising:

means for receiving, for each of a plurality of characters, each of which has an associated pre-defined font, an identification of the particular character it represents, and a pre-defined font description defining the character's shape in its associated font, which pre-defined font description includes a sequence of outline segments defining the one or more outlines of the character's shape;

modeling means for generating a geometric model from the received pre-defined font description for each such character-font shape, which model represents the shape of the one or more outlines defined by such pre-defined description, said modeling means including means for identifying description-independent segmentation points in the one or more outlines represented by each such model which are a function of each such outline's shape independently of the particular sequence or segmentation of the outline segments used to defined that shape in the pre-defined font description;

means for generating a new font description from each such geometric model which includes an indication of the particular character associated with that model and a sequence of outline segments of the one or more outlines represented by that model, in which the segmentation of each new font description is dependent on said description-independent segmentation points.

10. A computer system as in claim 9 wherein:

said modeling means includes means for approximating the shape of the outline, defined by the model generated for a given character-font shape, between adjacent description-independent points with new outline segments bounded at those adjacent description-independent points; and

said means for generating new font descriptions includes means for generating such a new font description for a given character-font shape which describes the one or more outlines associated with that shape as a sequence of outline segments which includes said new outline segments.

11. A computer system as in claim 9 wherein:

said modeling means including means for ordering the outlines of the geometric model generated for each character-font shape according to a standard rules used for all such models; and

said means for generating new font descriptions include means for ordering each new font description's sequences of outline segments according to the ordering of the corresponding outlines by said modeling means.

12. A computer system as in claim 9 wherein:

said means for identifying description-independent segmentation points includes identifying one of said points as a starting point for each outline of each model according to a standard set of rules applied to all such outlines which is a function of each such outline's shape independently of the particular sequence or segmentation of the outline segments used to define said shape in the corresponding pre-defined font description;

said modeling means further including means for assigning a direction in which the description-independent segmentation points of the outlines of each model are to be read, starting at said starting point selected for the outline, said direction being assigned according to a standard set of rules applied to all such outlines which is independent of the particular sequence of the outline segments used in the corresponding pre-defined font description;

said mean for generating a new font description generates the sequence of outline segments for each outline in a given model in the direction assigned for said outline starting at the starting point identified for said outline.

13. A computer system as in claim 9:

wherein said modeling means includes:

means for comparing outline shapes modeled from the pre-defined font descriptions for different character-font shapes to determine which of said character-font shapes share similar outline shapes; and

means for storing an indication of which of said outlines shapes are determined to be shared by which character-font shapes; and

wherein said means for generating new font descriptions further includes:

means for generating common font descriptions for such shared outline shapes, each of which common font descriptions defines it associated shared outline shape as a sequence of outline segments;

means for generating new font descriptions for character-font shapes which contain shared outline shapes, which new font descriptions define the sequence of outline segments for a given shared outline shape by reference to the common font description for said shared outline shape.

14. A computer system as in claim 9 wherein:

said means for receiving said character identifications and pre-defined font descriptions includes means for receiving an indication of the grouping of such pre-defined font descriptions into pre-defined fonts; and

said means for generating new font descriptions includes means for grouping new font descriptions into new fonts, each of which corresponds to a given pre-defined font and has new font descriptions corresponding to pre-defined font descriptions associated with said given pre-defined font.

15. A computer system as in claim 14 wherein the means for generating new font descriptions further includes:

means for grouping the new fonts into families of new logical font, each having an associated new physical font, such that the shape for each character in each new logical font can be derived by a set of transformations associated with the new logical font from that character's shape in the associated new physical font;

means for generating a new physical font description for each of a plurality of characters in each new physical font, which new physical font description describes the character's shape with a sequence of outline segments for each of the one or more outlines which represent that shape; and

means for generating a new logical font description for each logical font which describes the physical font with which the logical font is associated and the set of transformations for deriving the shape of a character in said logical font from said physical font.

16. A computer system as in claim 9 wherein:

said means for receiving said character identifications and pre-defined font descriptions includes means for receiving as one of said character identifications a symbol representing a non-character shape and means for receiving as one of said font descriptions a description including a sequence of outline segments which define the one or more outlines of that non-character shape;

said means for generating a geometric model generates a geometric model for each such non-character shape;

said means for generating a new font description generates a new font description for each such non-character shape.

17. A computer system as in claim 9 wherein said means for identifying description-independent segmentation points includes corner detecting means for detecting which of the endpoints of the outline segments described by a pre-defined font description represent corner points in the outlines of the shape defined by said pre-defined font description, said corner detecting means including:

means for testing, for each endpoint being tested and the two adjacent endpoints on its outline, to see if a straight line can be drawn through those three endpoints if the position of each is allowed to be adjusted by an amount corresponding to possible quantization error; and

means for identifying the tested endpoint as a description-independent corner point if the test determines that such a line cannot be so drawn.

18. A computer system as in claim 17 wherein said means for testing includes means, operative when one of the outline segments ended by the endpoint being tested is a bezier curve, for treating the nearest control point on that curve as the adjacent endpoint for that curved segment for purposes of said testing.

19. A computer system as in claim 17 wherein said means for testing include means for performing said test by testing to see if the concave angle, if any, formed by the endpoint being tested and its two adjacent endpoints can be changed to an angle equal to or greater than one hundred and eighty degrees if the position of each of those three points is moved by an amount corresponding to the maximum quantization error in a direction which tends to maximize that angle.

20. A computerized method comprising the steps of:

receiving, for each of a plurality of characters, each of which has an associated pre-defined font, an identification of the particular character it represents, and a pre-defined font description defining the character's shape in its associated font, which description includes a sequence of outline segments defining the one or more outlines of the character's shape;

modeling the character-font shape defined by each received pre-defined font description, including

identifying description-independent segmentation points in the one or more outlines represented by the pre-defined font description, the location of which description-independent points is determined by each such outline's shape, independently of the sequence or segmentation of the outline segments included in the pre-defined font description:

approximating the shape of each outline defined by the pre-defined font description between adjacent description-independent points with new outline segments bounded at those adjacent description-independent points; and

generating a new font description from the character-font shape modeled for each received pre-defined font description, which new font description describes the character-font shape as a sequence of outline segments which includes said new outline segments.

21. A computer system comprising:

means for receiving, for each of a plurality of characters, each of which has an associated pre-defined font, an identification of the particular character it represents, and a pre-defined font description defining the character's shape in its associated pre-defined font, which description includes a sequence of outline segments defining the one or more outlines of the character's shape;

modeling means for creating a model of the character-font shape defined by each of a plurality of said pre-defined font descriptions, which modeling means includes:

means for comparing the outlines of different character-font shape models to determine which outlines from different models share similar shapes;

means for storing an indication of which outlines are determined by the means for comparing to share similar shapes;

font generating means for generating a new font description from each such model which identifies the particular character associated with that model and describes a sequence of outline segments which define the shape of the one or more outlines represented by that model, said font generating means including:

means for generating common font descriptions for such shared shapes which defines each such shared shape as a sequence of outline segments; and

referencing means for causing new font descriptions for a model which contain a shared shape to describe the sequence of outline segments which defines that shared shape by reference to the common font description for that shared shape.

22. A computer system as in claim 21 wherein:

said means for receiving character identifications and pre-defined font descriptions can receive pre-defined font descriptions associated with different pre-defined fonts:

said means for comparing outlines can compare the outlines of models representing the shape of characters in different pre-defined fonts; and

said means for generating common descriptions for shared shapes can generate such common descriptions for shapes shared between models represented the shape of character's of different pre-defined fonts.

23. A computer system as in claim 21 wherein:

said means for receiving character identifications and pre-defined font descriptions includes means for interpreting coded pre-defined font descriptions written in a plurality of different font description languages, each of which coded pre-defined font descriptions defines the shape of a character as a sequence of outline segments defining outlines of that character shape;

said means for comparing outlines can compare the outlines of character-font shapes interpreted from coded pre-defined fonts descriptions written in different font description languages; and

said means for generating common descriptions for shared shapes can generate descriptions for shapes shared between models associated with character-font shapes interpreted from coded pre-defined fonts descriptions written in different font description languages.

24. A computer system as in claim 21 wherein said means for comparing outlines includes means for making such comparisons independently of the size and position of such outlines, so that outlines in different models which have similar shapes but different sizes or positions can be treated as having a similar shape by the system.

25. A computer system as in claim 21 wherein:

said modeling means further includes means for creating a signature for a combination of one or more of each model's outlines, which signature is independent of the received pre-defined font description of said combination's outlines and includes a succession of data words having a standard order, each representing an abstraction about the shapes of said combination's outlines; and

said means for comparing outlines includes means for comparing said signatures associated with different combinations of outlines, and only comparing the actual shapes of different combinations of outlines if the signatures for such combinations match.

26. A computer system as in claim 25 wherein said means for comparing signatures includes:

means for sorting said combinations of outlines by their signatures: and

means for using the sorting of said combinations of outlines by their signatures to speed said comparison of signatures.

27. A computer system as in claim 21 wherein:

said modeling means groups together into glyphs the one or more outlines of a character-font model which represent the boundaries of each of the model's one or more unattached solid shapes;

said means for comparing outlines compares the grouping of outlines associated with different glyphs, so that a match is found only if all the outlines grouped into one glyph match all the corresponding outlines grouped into another glyph;

said means for storing an indication of which outlines share similar shapes stores an indication of which glyphs in different character-shape models are determined to share similar groupings of outline shapes, and, thus, are similar glyphs;

said means for generating common font descriptions generates such common descriptions for similar glyphs which share the same groupings of outline shapes; and

said referencing means cause new font descriptions for character-font shape models which contains similar glyphs to describe the sequence of outline segments which defines such similar glyphs by reference to the common font description for that glyph.

28. A computer system as in claim 27 wherein said modeling means includes means for ordering the one or more outlines of each glyph according to a uniform rule, so, if two glyphs are similar glyphs representing the same shape, their outlines will be in the same order and, thus, the comparison of the shapes of such outlines can be sped up.

29. A computing system comprising:

means for receiving, for each of a plurality of characters, each of which has an associated pre-defined font, an identification of the particular character it represents, and a pre-defined font description defining the one or more outlines of the character's shape in its associated font;

modeling means for generating a geometric model which represents the shape of each outline defined by the pre-defined font description received for each character and font as a sequence of one or more outline segments, which can be either curved or straight;

wherein said modeling means includes depth calculating means for calculating a depth factor for individual curved outline segments in the model, which depth factor represents the depth of recursive subdivisions necessary to divide each such curved outline segment into sub-curves which all deviate by less than a specified maximum distance from vectors between the respective endpoints of said sub-curves, said depth calculating means including:

means for calculating said depth factor by performing recursive subdivision on each of said individual curved outline segments, including means operative in each given recursion of the subdivision for:

dividing the portion of the curve upon which the given recursion is performed into multiple sub-curves;

measuring if the maximum deviation between each sub-curve created by the given recursion and a vector between the endpoints of said sub-curve is less than particular amount;

when the maximum deviations for all the sub-curves created by the given recursion are less than a particular amount, stopping the current branch of the recursive process;

when the maximum deviation for any sub-curves created by the given recursion is greater than the particular amount, selectively performing a deeper recursion upon the sub-curve created by the given recursion which has the greatest maximum deviation from the vector between its endpoints;

keeping count of the recursive depth of the given recursion;

means for basing the calculated depth factor for each of said curved outline segment on the greatest count of recursive depth produced by the means for keeping count during all the recursive subdivisions performed for that outline segment; and

font generating means for generating a new font descriptions from each such geometric model which identifies the particular character associated with that geometric model and describes the model's sequence of outline segments which define the shape of the one or more outlines represented by that model, and which describes said depth calculated for each of the model's curved outline segments.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates to computer font technology, that is, the computer technology of representing and generating the shapes of alphanumeric characters and other images used with text.

BACKGROUND OF THE INVENTION

Since the beginning of the written word, creators of documents have been concerned not only with how their words would sound to the ear if spoken, but also with how they appear to the eye when read. Before the advent of print, calligraphy was a major art form. With print, the art of creating and using fonts has superseded calligraphy in importance.

A font is a set of shapes representing each character in an alphanumeric character set. Usually the shapes of different characters in each font share certain characteristics, such as horizontal and vertical position of certain shape features, the general width of their vertical and horizontal strokes, and whether or not they are serifed, bold, or italic, so that the characters of a given font look appropriate together.

Commonly a font is identified by a basic font name, such as "Courier", "Arial", "Helvetica", or "Times New Roman" which identifies the general shapes of its characters, independent of size. These basic font names are often trademarks owned by the designers of the font. The basic font name is often followed by a point size designation which specifies the size of that font. Sometimes other words are inserted between the basic font name and the point size, such as "bold", which means its strokes are to be thicker; "narrow", which means its entire characters are to be made more narrow; "italic", which means its characters are to be slanted; or "oblique", which is used for sans serifed characters and means its characters are to be slanted.

The ability to vary fonts has many advantages. It lets a user vary the size of his letters to pack text more densely when necessary and to allow text to be more easily read. Using different fonts also has the ability to visually distinguish different parts of the text. This makes texts easier to scan and use. In addition, some texts are more visually pleasing than others, whereas some are easier to read. Different fonts appeal to different aesthetic senses. Some appear traditional, some modern, some art nouveau, some art deco, some hand written, some humorous, and some shocking. The ability to select from a wide variety of fonts greatly increases the ability to tune the aesthetic message of a document.

When the computer age started, most computers only represented text in one font. In the last decade or so, however, an increasing percentage of computer systems have the ability to display and print text in several different fonts. Most such computers have font resources which contain pre-defined font descriptions for the shape of each character of each of the fonts it can handle. The pre-defined font descriptions describe character shapes in a specified form or language.

Some font languages represent shapes as bitmap images which can be translated directly to the pixels on a video display or a laser printer. This has the advantage of being fast, but it has the disadvantage of requiring a different set of font descriptions for each different size.

More recently there has been a trend to scalable font languages. These languages define character shapes in terms of the one or more outlines which define its shape. Each such outline is defined by a move to a starting location and then a sequence of outline segments, each of which is either a line or a curve, such as a Quadratic or Cubic Bezier curve or a circular arc, followed by a move to the standard position for starting the next letter. A Bezier curve is a well-known type of curve defined by its two on-curve endpoints and one or two off-curve control points located between them. Quadratic Bezier curves only have one off-curve control point, with the curve at each endpoint being tangent to a line from that endpoint to the control point and with the angle of the curve reflecting the angle formed by those tangent lines. Cubic Bezier curves have two off-curve control points, with the curve at each endpoint being tangent to the line to its closest control point and with the curve's extent in the general direction of each such tangent near an endpoint being a function of the length from that endpoint to the tangent's associated control point. The lines and segments are usually defined in a resolution of either 1000.times.1000 or 2048.times.2048 units, called outline resolution units, or ORUs. Since these font descriptions define a shape in terms of lines and curves and since that definition is made with a high resolution, they can be used to generate font images of virtually any desired size.

In scalable font technology the set of font descriptions defining the outline shapes of each character in a character set can be considered a base, or physical, font. The variously sized fonts generated from such a physical font are considered logical fonts, because they do not have separate shape descriptions associated with their characters, but rather generate such shapes at the specified size from the scalable physical font description. Using such nomenclature, there would be, for example, physical font associated with the base font name "Arial", and that physical font would have associated with it any logical font which had the name "Arial" followed by a point size specification, such as "Arial 12" or "Afial 24". Normally a separate physical font is provided for font names which include "Bold", "Italic", or "Narrow", but fonts with the word "Oblique" in their name are often generated by slanting the shapes of the corresponding physical font, and the same could be done, if necessary for "Italic" if no corresponding italic physical or base font is provided.

There are currently several major scalable font languages. They include PostScript, developed by Adobe Systems Incorporated, of 1585 Charleston Road, Mountain View, Calif. 94039, TrueType, developed by Apple Computer, Inc., 20525 Mariani Avenue, Cupertino, Calif. 95014; Speedo, developed by Bitstream Inc., the assignee of this application; and Intellifont, developed by the AGFA division of Miles Inc, 90 Industrial Way, Wilmington, Mass. 01887. Each of these languages uses a different code or format to describe shapes and represents shapes in different ways. For example, TrueType uses quadratic Bezier curves to define the shape of curve segments, whereas PostScript and Speedo use Cubic Bezier curves, and Intellifont use circular arcs.

For a computer to render a font named in a given document, it requires not only a bitmapped or scalable font description of that font's characters, but also software, called a font interpreter, that knows how to interpret the particular code in which each font language's font descriptions are written and convert them into a bitmap pattern or a sequence of moves and outline segments.

Unfortunately, not all computers have the same font descriptions or the ability to interpret the same font languages. This creates a problem if an electronic document is created on a first computer using one or more given fonts and is then transferred to second computer which does not have those fonts or which cannot interpret them. In such a case, when the document is shown or printed on the second computer it has different fonts than intended. This can cause the document to have a very different, and often undesired appearance, and can disrupt its spacing and pagination. In highly formatted text, such a text with columns, this can make the text almost unreadable. In addition, some fonts have special characters not found in other fonts, or use different character codes than are commonly used in other fonts so that such a font mismatch can not only disrupt the appearance and organization of a document, but can also cause information to be lost or be garbled.

One solution to the problem of making fonted text portable is to send a copy of all fonts and font interpreters needed to properly render the characters of a document along with it. Unfortunately this has many problems. First, finding out what fonts and interpreters need to be sent with each such document and installing them on the viewing machine would be labor intensive. Furthermore, it would present legal problems because, even though the actual shape of fonts have long been held not to be copyrightable, both the code and sequence of outline segments contained in font descriptions have been considered by many to be copyrightable, and thus cannot be installed in a new machine without legal permission.

There have been multiple prior attempts to deal with this problem.

A first prior approach is to use software that enables the computer playing back a document to attempt to approximate a font called for in the document with a font which is similar, if it has one. Such systems attempt to replace one serifed font with another, one italic with another, and so on. Unfortunately, this approach still requires that the computer playing back a document have fonts which approximate those it is to replace, and the approximations are often disappointing.

Another prior technique amplifies this first approach by using software that sends information along with documents explaining the size of each character in each of the fonts used. This enables corresponding software in the playing computer to stretch or compress whatever font it is using to approximate a missing font to produce a font which has the same spacing. This provides the valuable advantage of preventing the formatting of documents from being upset due to spacing differences, but is still is only an approximation.

Another prior approach has been to embed, or include, font descriptions with the document so the party at the other end can use them. The makers of such embeddable fonts have designed them so they can only be used in the document in which they have been included and thus have granted a license for such a copy of their font descriptions to be made without requiring express permission. Unfortunately, all such systems of which we are aware only work with fonts of one language and assume that the computer on which their documents are to be played has interpreters for that language. Thus the documents produced cannot be properly reproduced if the machine playing them back does not have the proper font interpreter and it even if does, it can only provide insured portability for fonts written in that interpreter's one language.

Another prior approach is to have a document recorder application which records bitmap images of all character-font shapes included in a document from the font interpreter of the computer creating the document and embeds them in a copy of the document. The resulting portable document is designed to be viewed or printed from a player application on another computer. The player renders the shape of each character in the document from its associated embedded font. The program has the ability to, in effect, creates bitmapped physical and logical fonts. That is, if the user decides he or she does not want to have to store separate bitmap images for the same shape font in different sizes, the system will store it in one size and on playback attempt to generate bitmap patterns at different sizes from it.

This approach appears to avoid copyright problems, because it has long been held that the shape of fonts is not copyrightable and the bitmap patterns copied are determined largely by the shape of the font's original pre-defined font descriptions rather than from the actual code or sequence of moves and outline segments used in that description. It also has that advantage of being able to play back any font handled by the computer creating the document. It has the disadvantages of requiring a large amount of memory to produce a large variety of fonts accurately.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide an apparatus and method for creating and playing back portable documents, that is documents in which text with a variety of different fonts can be accurately played back by a machine which does not previously have font descriptions and font interpreters for all of that document's fonts.

It is yet another object of the present invention to provide such an apparatus and method which creates such portable documents automatically.

It is still another object of the present invention to provide such an apparatus and method which creates back such documents quickly.

It is yet another object of the present invention to provide such an apparatus and method which creates such documents with portable font description which do not require much storage space.

It is still another object of the present invention to provide an apparatus and methods for automatically creating new font descriptions of character shapes defined in old font descriptions while avoiding copying certain features in such old font descriptions which are not required to describe those shapes.

According to one aspect of the invention, a computerized apparatus and methods for character shape recording are provided. The character shape recording develops new font descriptions from shapes received from a pre-defined descriptions. It does so by modeling each such shape to find features, which are a function of that shape itself, rather than the particular manner in which the pre-defined description defined that shape. Such features often are not explicit in the pre-defined description of the shape, and the system has to make them explicit. Often the description-independent features are points on the outlines of the character shape. These description-independent points can include corner points with angles so large they could not be caused by rounding errors in the pre-defined description, inflection points, tangent points, and X or Y extreme points. Preferably the system bases the segmentation of the new font description it creates on such description-independent points.

Preferably the character shape recording finds new line or curve segments to approximate the segments from the pre-defined font description between such description-independent points. Preferably, it also picks the outline order, starting point for the description of each such outline, and the direction of that description according to standard rules, independently of the ordering, starting point, or direction of those outlines in the predefined description. This causes the new font descriptions to be free of non-shape-required aspects of the pre-defined descriptions, and it causes such descriptions to be highly uniform and, thus, easier to play back.

It is also preferred that the system finds the "depth" of each curve segment in the new font description. This indicates how finely the curve must be subdivided on playback so it can be accurately portrayed by vectors spanning each such subdivision. This depth is calculated by recursively subdividing the curve into subdivisions, approximating each subdivision by a vector, and recursing on the worst fitted subdivision until the worst fit is acceptable. The level of the deepest recursion indicates the curve's depth.

Preferably the system can generate new font descriptions from shapes defined in any one of a plurality of fonts and font description languages, including scalable and bitmap descriptions. If it receives pre-defined font descriptions from different fonts, it groups the new font descriptions into groupings corresponding to the those of the pre-defined font descriptions.

It is preferred that the system match outline shapes for different characters of the same or different fonts, and save storage space by recording a single description of any shape used in more than one new font description.

It is also preferred that the system generate new font descriptions from non-character shapes, such as logos and other images which can be used with text.

According to another aspect of the invention, computerized apparatus and methods use character shape recording, such as that described above, to create portable documents. This portable document creating system receives a fonted input text, accesses and interprets the pre-defined font descriptions associated with each character-font combination in the input text, and generates a new font description for the shape description interpreted for each character-font combination. Each such new font description describes its shape as a sequence of outline segments according to a new font description language. Preferably the system creates a portable document, or output text, which includes the sequence of characters in the input text, the new font descriptions for those characters; and an indication of which of new font description represents the shape of each such character.