|
Claims  |
|
|
What we claim is:
1. A computerized method comprising the steps of:
receiving an input text which represents a sequence of characters and which
identifies for each character a pre-defined font;
accessing, for each combination of a character and pre-defined font so
received, a pre-defined font description which describes a sequence of
outline segments which define each of the one or more outlines of the
shape of the character in its associated pre-defined font using a given
font description language;
generating a new font description from the pre-defined font description of
the shape for each received character-font combination, which new font
description describes the shape of the combination as a sequence of
outline segments according to a new font description language, said step
of generating new font descriptions including the steps of:
modeling the character-font shape defined by a given pre-defined font
description, including the steps of:
identifying description-independent segmentation points in the one or more
outlines represented by the outline segments of the given pre-defined font
description, the location of which description-independent points is a
function of 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 the outline defined by the pre-defined font
description between adjacent description-independent points with new
segments bounded at those adjacent description-independent points; and
generating a given one of said new font descriptions in which the sequence
of outline segments includes said new segments; and
creating an output text including:
a sequence of characters corresponding to those of the input text;
the new font descriptions created for the characters of the input text,
including said given one of said new font description; and
an indication of which of the new font descriptions represents the shape of
each character in the output text.
2. A computerized method as in claim 1 wherein:
said step of receiving an input text includes receiving such a text in
which the pre-defined font associated with each of the characters in said
text is associated with any one of a plurality of font description
languages;
said step of accessing pre-defined font descriptions includes accessing
pre-defined font descriptions written in any one of said plurality of font
description languages; and
said step of generating new font descriptions from the pre-defined font
descriptions includes interpreting pre-defined font descriptions from any
one of said plurality of font description languages into said new font
descriptions.
3. A computerized method as in claim 2 wherein:
said step of generating new font descriptions includes interpreting said
pre-defined font descriptions from different font description languages
into new font descriptions written in a single new font description
language.
4. A computerized method as in claim 1:
further including the step of responding to each different pre-defined font
identified in said input text, by creating a corresponding new font;
wherein said step of generating new font descriptions for each pre-defined
description of a character-font shape includes associating the new font
description created for each such shape with the new font corresponding to
the shape's corresponding pre-defined font.
5. A computerized method as in claim 4:
wherein said step of receiving an input text includes receiving an input
text in which one or more of the identified pre-defined fonts are
pre-defined logical fonts, each of which identifies:
an associated pre-defined physical font which has associated pre-defined
physical font descriptions defining the basic shape of each of the
pre-defined logical font's characters as a sequence of outline segments;
and
a set of pre-defined transformations which specify how to transform the
basic character shape specified by the pre-defined physical font for any
such character into the pre-defined logical font's shape for the
character;
said step of accessing pre-defined font descriptions includes accessing
said pre-defined physical font descriptions;
said step of responding to each different pre-defined font identified in
the input text includes responding to each different pre-defined logical
font identified by creating a corresponding new logical font and by
checking to see if a new physical font has already been created for the
pre-defined logical font's associated pre-defined physical font, and if
not, for creating such a new physical font; and
said step of generating a new font description from the pre-defined
description of the shape for each received character-font combination
includes performing the following steps when the combination's font is a
given pre-defined logical font:
generating a new physical font description describing the sequence of
outline segments associated with the basic shape defined by the given
pre-defined logical font's associated pre-defined physical font
description for the character;
associating said new physical font description with the new physical font
created in association with the given pre-defined logical font's
associated pre-defined physical font; and
storing a set of transformations corresponding to the predefined
transformations identified by the given pre-defined logical font in
association with the new logical font created in association with the
given pre-defined logical font.
6. A computerized method as in claim 4 wherein:
said step of generating new font descriptions further includes associating,
with each new font description associated with a given new font, a
character code for identifying the character in the given new font whose
shape is described by the new font description:
said character code has a data format which is of sufficient complexity to
represent more than two hundred and fifty-six different values, enabling
more than two hundred and fifty-six different characters to be associated
with each new font; and
said character codes are used in said output text to represent the sequence
of characters corresponding to those of the input text.
7. A computerized method as in claim 6 further including the step of
writing said output text onto a removable mass storage media which can be
removed from the computing system.
8. A computerized method as in claim 6 further including the steps of
making said output text available on-line to remote users.
9. Mass storage media created by a process comprising the steps of:
receiving an input text which represents a sequence of characters and which
identifies for each character a pre-defined font;
accessing, for each combination of a character and pre-defined font so
received, a pre-defined font description which describes a sequence of
outline segments which define each of the one or more outlines of the
shape of the character in its associated pre-defined font using a given
font description language;
generating a new font description from the pre-defined font description of
the shape for each received character-font combination, which new font
description describes the shape of the combination as a sequence of
outline segments according to a new font description language, said step
of generating new font descriptions including the steps of:
modeling the character-font shape defined by a given pre-defined font
description, which modeling includes the steps of:
identifying description-independent segmentation points in the one or more
outlines represented by the outline segments of the given pre-defined font
description, the location of which description-independent points is a
function of 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 the outline defined by the pre-defined font
description between adjacent description-independent points with new
segments bounded at those adjacent description-independent points; and
generating a given one of said new font descriptions in which the sequence
of outline segments includes said new segment; and
creating an output text including:
a sequence of characters corresponding to those of the input text;
the new font descriptions created for the characters of the input text,
including said given one of said new font description; and
an indication of which of the new font descriptions represents the shape of
each character in the output text;
transferring said output text onto said mass storage media.
10. Mass storage media as in claim 9 wherein:
said step of receiving an input text includes receiving such a text in
which the pre-defined font associated with each of the characters in said
text is associated with any one of a plurality of font description
languages;
said step of accessing pre-defined font descriptions includes accessing
pre-defined font descriptions written in any one of said plurality of font
description languages; and
said step of generating new font descriptions from the pre-defined font
descriptions includes interpreting said pre-defined font descriptions from
said plurality of different font description languages into new font
descriptions written in a single new font description language.
11. A computer system comprising:
mechanisms for receiving an input text which represents a sequence of
characters and which identifies for each such character a pre-defined
font;
mechanisms for accessing, for each combination of a character and
pre-defined font so received, a pre-defined font description which
represents the sequence of outline segments which define each of the one
or more outlines of the shape of the character-font combination:
whereing said mechanisms for generating includes mechanisms for modeling
the character-font shape defined by said pre-defined font description,
including
mechanisms for identifying description-independent segmentation points in
the one or more outlines represented by the outline segments of 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;
mechanisms for approximating the shape of the outline defined by the
pre-defined font description between adjacent description-independent
points with new segments bounded at those adjacent description-independent
points; and
wherein said new font description describes the shape of the character-font
combination as a sequence of outline segments which includes said new
segments derived by said mechanisms for modeling; and
mechanisms for creating an output text including:
a sequence of characters corresponding to those of the input text;
the new font descriptions created for the characters of the input text; and
an indication of which of the new font descriptions represents the shape of
each character in the output text.
12. A computer system as in claim 11 wherein said mechanism for identifying
description-independent points includes mechanisms for identifying
features in the shape of outlines represented by the pre-defined font
description and for locating description-independent points in
correspondence with such shape features.
13. A computer system as in claim 11 wherein:
said mechanisms for identifying segmentation points include mechanisms for
identifying a sufficient number of description-independent segmentation
points to enable each of a given character-font shape's outlines to be
closely approximated by a sequence of one or more of said new segments,
each of which is located between a pair of said description independent
points;
said mechanism for approximating the shape of outlines creates one of said
new segments between each of said pairs of description-independent points
on each of said outlines; and
said mechanism for generating new font descriptions includes mechanisms for
generating new font descriptions which describes the character-font shapes
as a sequence of said new outline segments.
14. A computing system as in claim 11 further comprising mechanisms for
rendering a visual representation of said output text, which mechanisms
include:
mechanisms for interpreting the new font description for each
character-font combination in the output text to be rendered into a
corresponding character-font shape;
mechanisms for identifying the new font description associated with each of
a succession of characters represented in the output text; and
mechanisms for rendering the character-font shape described by the new font
description identified for each of said succession of characters at a
location in said visual representation of text adjacent the location
associated with the preceding character in said succession of characters.
15. A computing systems as in claim 14:
which includes a plurality of computers, including a set of one or more
first computers and set of one or more second computers;
wherein each of said first computers includes:
said mechanisms for receiving an input text;
said mechanisms for accessing pre-defined font descriptions;
said mechanisms for generating new font descriptions; and
said mechanism for creating an output text;
wherein each of said second computers includes said mechanisms for
rendering a visual representation of the output text; and
further comprising mechanisms for transferring the output text produced by
one of said first computers to one of said second computers.
16. A computer system as in claim 15 wherein said mechanisms for
transferring the output text includes a computer network for enabling data
signals representing said output text to be transmitted from one of said
first computers to one of said second computers.
17. A computer system as in claim 14 wherein said mechanisms for rendering
includes a printing device for producing a printed image of said visual
representation.
18. A computer system as in claim 11 wherein:
said mechanisms for receiving an input text includes mechanisms for
receiving such a text in which the pre-defined font associated with each
of the characters in said text can be associated with any one of a
plurality of font description languages;
said mechanisms for accessing pre-defined font descriptions includes
mechanisms for accessing pre-defined font descriptions written in any one
of said plurality of font description languages; and
said mechanisms for generating new font descriptions from the pre-defined
font descriptions includes mechanisms for interpreting said pre-defined
font descriptions from said plurality of different font description
languages into new font descriptions written in a single new font
description language.
19. A computer system comprising:
mechanisms for receiving an input text which includes:
a sequence of characters;
an association between each such character and one of a possible plurality
of named fonts, each of which named fonts has associated with it a set of
original coded font descriptions which describe the shape of each
character in the named font as a sequence of outline segment; and
a machine generated font description for each unique combination of a
character and named font in said input text, which machine generated font
description has been automatically generated to describe substantially the
same shape as the shape defined for the character-named-font combination
by the named font's associated original font description, but which
describes said shape with a different coding and with a sequence of
outline segments the segmentation of which is independent from the
segmentation used in the original font description;
mechanisms for rendering a visual representation of said input text
including:
mechanisms for identifying the named font associated with each successive
character in the input text;
mechanisms for determining whether or not the system can render the named
font associated with each such successive character from one of the named
font's original font descriptions, that is, whether or not the system has
access to the such original font description and has mechanisms for
interpreting the original font descriptions into a shape;
mechanisms, operating when said means for determining determines the system
can render the named font for such character from its corresponding
original font description, for interpreting the original font description
for the named font to generate the shape for the character;
mechanisms, operating when said means for determining determines the system
cannot render the font named for such character from its corresponding
original font description, for interpreting the machine generated font
description for such character and its associated named font to generate
the shape for the character;
mechanisms for rendering the shape generated for each such successive
character in the visual representation at a location adjacent the location
associated with the preceding character in the sequence of characters.
20. A computerized method comprising the steps of:
receiving an input text which represents a sequence of characters and which
identifies for each character a pre-defined font;
accessing, for each combination of a character and pre-defined font so
received, a pre-defined font description which describes a sequence of
outline segments which define each of the one or more outlines of the
shape of the character in its associated pre-defined font using a given
font description language;
responding to each different pre-defined font identified in said input
text, by creating a corresponding new font;
generating a new font description from the pre-defined font description of
the shape for each received character-font combination, which new font
description describes the shape of the combination as a sequence of
outline segments according to a new font description language, said
generating of new font descriptions including associating the new font
description created for each character-font shape with the new font
corresponding to the shape's associated pre-defined font;
creating an output text including:
a sequence of characters corresponding to those of the input text;
the new font descriptions created for the characters of the input text,
associated with their corresponding new fonts; and
an indication of which of the new font descriptions represents the shape of
each character in the output text; and
wherein the number of new font descriptions associated with a given new
font in the output text varies as a function of the number of characters
in the input text identified with the given new font's corresponding
pre-defined font.
21. A computerized method comprising the steps of:
receiving an input text which represents a sequence of characters, which
identifies for each character a pre-defined font, and in which the
pre-defined fonts associated with different characters in said text are
associated with different font description languages;
accessing, for each combination of a character and pre-defined font so
received, a pre-defined font description which describes a sequence of
outline segments which define each of the one or more outlines of the
shape of the character in its associated pre-defined font using that
pre-defined font's associated one of said different font description
languages;
generating a new font description from the pre-defined font description of
the shape for each received character-font combination, all of which new
font descriptions describe the shape of their respective character-font
combination as a sequence of outline segments described in a common, new
font description language;
creating an output text including:
a sequence of characters corresponding to those of the input text;
the new font descriptions created for the characters of the input text; and
an indication of which of the new font descriptions represents the shape of
each character in the output text.
22. A computerized method comprising the steps of:
receiving an input text which represents a sequence of characters and which
identifies for each character a pre-defined font;
accessing, for each combination of a character and pre-defined font so
received, a pre-defined font description which describes a sequence of
outline segments which define each of the one or more outlines of the
shape of the character in its associated pre-defined font using a given
font description language;
generating a new font description from the pre-defined font description of
the shape for each received character-font combination, which new font
description describes the shape of the combination as a sequence of
outline segments according to a new font description language;
creating an output text including:
a sequence of characters corresponding to those of the input text;
the new font descriptions created for the characters of the input text;
an indication of which of the new font descriptions represents the shape of
each character in the output text; and
a computer program including instructions for rendering a visual
representation of said output text.
23. A computerized method comprising the steps of:
receiving an input text which represents a sequence of characters and which
identifies for each character a pre-defined font;
accessing, for each combination of a character and pre-defined font so
received, a pre-defined font description that describes a sequence of
outline segments which define each of the one or more outlines of the
shape of the character in its associated pre-defined font using a given
font description language;
generating a new font description from the pre-defined font description of
the shape for each received character-font combination, which new font
description describes the shape of the combination as a sequence of
outline segments according to a new font description language;
creating an output text including:
a sequence of characters corresponding to those of the input text;
the new font descriptions created for the characters of the input text; and
an indication of which of the new font descriptions represents the shape of
each character in the output text;
receiving requests over a communications network from one or more remote
computing systems for the transmission of different selected portions of
said output text; and
responding to each such request by transmitting the following over the
network to a remote computing system:
the part of the output text's sequence of characters corresponding to the
portion of text selected by the request;
an indication of which of the new font descriptions represents the shape of
each character in the selected portion of text; and
a subset of said new font descriptions necessary to describe the
character-font shape of the transmitted characters.
24. A computerized method as in claim 23 wherein said step of responding to
each request includes:
recording which new font descriptions have previously been sent to a given
remote computing system; and
determining whether or not to send a given new font description in response
to a request from a given remote computing system as a function of whether
or not said recording indicates said given new font description has
previously been sent to the given remote computing system. |
|
|
|
|
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
"Arial 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 and plays back such portable documents
automatically.
It is still another object of the present invention to provide such an
apparatus and method which creates and plays 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 apparat | | |