|
|  Get related patents on CD |
| United States Patent | 5577177 |
| Link to this page | http://www.wikipatents.com/5577177.html |
| Inventor(s) | Collins; John S. (Boston, MA);
Goldwater; Mark H. (Norfolk, MA) |
| Abstract | A 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  |
|
|
|
|
|
Drawing from US Patent 5577177 |
|
|
Apparatus and methods for creating and using portable fonts |
|
|
|
|
|
| Publication Date |
November 19, 1996 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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.
| | |