Source: http://www.google.com/patents/US7743325?dq=ininventor:oliver+ininventor:steele
Timestamp: 2016-04-30 17:36:42
Document Index: 667492660

Matched Legal Cases: ['Application No. 2005203708', 'Application No. 200610004498', 'Application No. 200510099652', 'Application No. 200610004498', 'Application No. 06', 'Application No. 06111105', 'Application No. 06111105']

Patent US7743325 - Method and computer-readable medium for fitting text to shapes within a graphic - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA method and computer-readable medium are provided for fitting text to shapes within a graphic. According to the method, initial constraints are defined that comprise initial values describing how a shape and text within the shape should be laid out. Constraint rules are also defined for use in modifying...http://www.google.com/patents/US7743325?utm_source=gb-gplus-sharePatent US7743325 - Method and computer-readable medium for fitting text to shapes within a graphicAdvanced Patent SearchPublication numberUS7743325 B2Publication typeGrantApplication numberUS 11/081,324Publication dateJun 22, 2010Priority dateMar 15, 2005Fee statusPaidAlso published asCN1834903A, CN1834903B, EP1703417A2, EP1703417A3, US20060212801Publication number081324, 11081324, US 7743325 B2, US 7743325B2, US-B2-7743325, US7743325 B2, US7743325B2InventorsIlan Berker, Jason C. Costa, Keywon Chung, Matthew J. Kotler, Janet L. Schorr, Scott A. Sherman, Karen K. WongOriginal AssigneeMicrosoft CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (74), Non-Patent Citations (53), Referenced by (20), Classifications (9), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetMethod and computer-readable medium for fitting text to shapes within a graphic
US 7743325 B2Abstract
A method and computer-readable medium are provided for fitting text to shapes within a graphic. According to the method, initial constraints are defined that comprise initial values describing how a shape and text within the shape should be laid out. Constraint rules are also defined for use in modifying the initial constraints when application of the initial constraints to the text in a shape results in the text overflowing the boundaries of the shape. A change may be detected to the graphic that would affect the size or position of one or more of the shapes or the text within one of the shapes. If such a change causes text to overflow when laid out using the initial constraints, the constraint rules are applied sequentially to modify the constraints. The modified constraints are then reapplied to the shapes to create a new layout for the graphic.
1. A method for fitting text to at least one shape in a graphic, the method comprising:
determining at least one property associated with the text, wherein the at least one property associated with the text comprises one of the following: alignment, margin, and spacing;
modifying the at least one property associated with the text, wherein modifying the at least one property associated with the text is based on a defined association between the at least one property and the at least one shape in the graphic;
defining at least one initial constraint and at least one constraint rule for fitting the text to the at least one shape, the at least one constraint rule and the at least one initial constraint being defined for at least one of the following: the at least one shape and a set of shapes, wherein defining the least one initial constraint comprises attaching a shared propagator to the at least one initial constraint that propagates a state of the at least one initial constraint to at least one layout node;
applying the at least one initial constraint to fit the text within the at least one shape;
detecting that the text did not fit within the at least one shape;
in response to detecting that the text did not fit within the at least one shape, applying the at least one constraint rule to modify at least one initial constraint;
reapplying the modified at least one initial constraint to the at least one shape to create a new layout for the graphic;
determining whether a diagram type associated with the graphic has been changed;
in response to determining that the diagram type associated with the graphic has been changed, determining whether a change in the diagram type has caused a change in at least one of the following: a size of the at least one shape and a position of the at least one shape;
in response to determining that the change in the diagram type has caused a change in at least one of the following: the size of the at least one shape, and the position of the at least one shape, determining whether the text within the at least one shape needs to be re-mapped;
in response to determining that the text within the at least one shape need to be re-mapped, re-mapping the text to the at least one shape in the changed diagram type and applying at least one new constraint associated with the changed diagram type to the at least one property associated with the text, wherein applying the at least one new constraint associated with the changed diagram type to the at least one property is defined by the association of the at least one property to the at least one shape in the graphic, the at least one new constraint being defined as a result of the changed diagram type; and
in response to applying the at least one new constraint associated with the changed diagram type to the at least one property associated with the text, displaying the graphic on a display screen.
2. The method of claim 1, wherein the at least one initial constraint comprise initial values describing how the at least one shape and the text within the at least one shape should be laid out.
3. The method of claim 2, wherein the at least one constraint rule comprise rules for modifying the at least one initial constraint when application of the at least one initial constraint does not result in the text being successfully laid out within the at least one shape.
detecting a change to the graphic that results in the text not fitting within the at least one shape; and
in response to detecting the change, applying the at least one constraint rule to modify at least one of the following: the at least one initial constraint and an application of the at least one modified constraint to the at least one shape.
5. The method of claim 4, wherein applying the at least one constraint rule to modify the at least one initial constraint comprises:
Identifying the at least one shape for which the text will not fit inside the at least one shape;
identifying a first constraint rule associated with the identified at least one shape, the first constraint rule identifying a limit for a constraint;
identifying a best fit value of the at least one initial constraint between an initial constraint value and a limit that will result in the text fitting within the identified at least one shape;
determining whether a value was identified for the at least one initial constraint that results in the text fitting within the identified at least one shape; and
in response to determining that the value was identified that results in the text fitting within the identified at least one shape, applying the identified value to the at least one shape.
in response to determining that the value was identified that results in the text fitting within the identified at least one shape, applying the identified value to at least one other shape.
in response to determining that value was not identified that results in the text fitting within the identified at least one shape, identifying and applying a next constraint rule to the at least one shape.
8. The method of claim 7, further comprising applying the limit for the at least one constraint specified by the first constraint rule prior to applying the next constraint rule to the at least one shape.
9. The method of claim 8, further comprising in response to determining that application of all of the at least one constraint rule to the at least one shape did not result in the text fitting within the at least one shape, applying a predefined rule to the at least one shape guaranteed to ensure that the text does not flow outside the at least one shape.
10. The method of claim 9, wherein identifying the best fit value comprises performing a binary search.
11. The method of claim 9, wherein the at least one initial constraint and the at least one constraint rule are specified in a graphic definition file associated with the graphic.
12. The method of claim 1, wherein the at least one shape comprises a compound shape consisting of a parent shape and at least one child shape.
13. A system for fitting text to at least one shape in a graphic, the system comprising:
determine at least one property associated with the text wherein the at least one property associated with the text comprises one of the following: alignment, margin, and spacing;
modify the at least one property associated with the text based on a defined association between the at least one property associated with the text and the at least one shape in the graphic;
store at least one initial constraint and at least one constraint rule for laying out the text within the at least one shape by attaching a shared propagator to the at least one initial constraint that propagates the at least one initial constraint's state to at least one layout node;
apply the at least one initial constraint to the at least one shape to lay out the text within the at least one shape;
detect a change to the graphic that causes the text not to fit within the at least one shape;
in response to detecting the change, apply the at least one constraint rule to modify the at least one initial constraint;
reapply the modified at least one initial constraint to the at least one shape to create a new layout for the graphic;
determine whether a diagram type associated with the graphic has been changed;
in response to determining that the diagram type associated with the graphic has been changed, determine whether a change in the diagram type has caused a change in at least one of the following: a size of the at least one shape, and a position of the at least one shape;
in response to determining that the change in the diagram type has caused a change in at least one of the following: the size of the at least one shape, and the position of the at least one shape, determine whether the text within the at least one shape needs to be re-mapped; and
in response to determining that the text within the at least one shape need to be re-mapped, re-map the text to the at least one shape in the changed diagram type and applying at least one new constraint associated with the changed diagram type to the at least one property associated with the text according to a defined association of the at least one property to the at least one shape in the graphic and wherein the at least one new constraint is defined as a result of the changed diagram type.
14. The system of claim 13, wherein the at least one initial constraint comprise initial values describing how the text within the at least one shape should be laid out.
15. The system of claim 14, wherein the at least one constraint rule comprise rules for modifying the at least one initial constraint when application of the at least one initial constraint does not result in the text being successfully laid out within the at least one shape.
16. The system of claim 15, wherein detecting a change to the graphic that may affect at least one of the following: a size of the at least one shape and a position of the at least one shape comprises at least one of the following: detecting an addition of the at least one shape, removal of the at least one shape, a change to the layout of the graphic, an addition of the text to the graphic, and removal of the text from the graphic.
17. The system of claim 15, wherein the processing unit being further operative to apply the at least one constraint rule to modify the at least one initial constraint by:
identifying a first constraint rule associated with the identified at least one shape, the first constraint rule identifying a limit for the at least one initial constraint;
identifying a value of the at least one initial constraint between the at least one initial constraint value and the limit that will result in the text fitting within the identified at least one shape;
18. A computer-readable storage medium having computer-executable instructions which when executed perform a method for fitting text to at least one shape in a graphic, the method executed by the computer-executable instructions comprising:
in response to determining that the diagram type associated with the graphic has been changed, determining whether a change in the diagram type has caused a change in at least one of the following: a size of the at least one shape, and a position of the at least one shape;
in response to determining that the text within the at least one shape need to be re-mapped, re-mapping the text to the at least one shape in the changed diagram type and applying at least one new constraint associated with the changed diagram type to the at least one property associated with the text, wherein applying the at least one new constraint associated with the changed diagram type to the at least one property is defined by the association of the at least one property to the at least one shape in the graphic, the at least one new constraint being defined as a result of the changed diagram type;
storing, in a first data structure, a first set of data fields containing data representing at least one initial constraint for fitting the text to the at least one shape in the graphic, wherein the at least one initial constraint comprises a shared propagator attached to the at least one initial constraint that propagates the at least one initial constraint's state to at least one layout node; and
storing, in the first data structure, a second set of data fields containing data representing at least one constraint rule for fitting the text to the at least one shape, wherein the at least one constraint rule comprise rules for modifying the at least one initial constraint when application of the at least one initial constraint does not result in the text being successfully laid out within the at least one shape.
19. The computer-readable storage medium of claim 18, wherein the at least one initial constraint comprises initial values describing how the text within the at least one shape is to be laid out.
20. The computer-readable storage medium of claim 18, wherein the at least one constraint rule comprises a limit value for the at least one initial constraint. Description
This patent application is related to U.S. patent application Ser. No. 10/955,271, now U.S. Pat. No. 7,348,982, entitled “Method, System, and Computer Readable Medium for Creating and Laying Out a Graphic Within an Application Program” filed on Sep. 30, 2004, to U.S. patent application Ser. No. 11/081,323, entitled “Method and Computer-Readable Medium For Generating Graphics Having A Finite Number of Dynamically Sized and Positioned Shapes,” filled concurrently herewith, and to U.S. patent application Ser. No. 10/957,103, entitled “Editing The Text Of An Arbitrary Graphics Via A Hierarchical List,” filed on Sep. 30, 2004, each of which are assigned to the same assignee as this application. The aforementioned patent applications are expressly incorporated herein, in their entirety, by reference.
Today's word processors and dedicated drawing application programs enable users to create both simple and complex graphics. These programs allow users to create graphics using a variety of shapes which may be annotated with text. The graphics created by these applications may be stand-alone documents or incorporated into text documents. Despite the advantages offered by these programs, however, today's versions of these programs suffer from several drawbacks which hinder the creation and layout of graphics by the typical user.
One particular drawback of current drawing programs is that these programs typically utilize defaults for text properties (e.g. margins, line spacing, etc.) that are generic across all shapes and graphics. In most cases, these defaults do not look optimal across a wide range of graphics. As a result, users must manually override the default properties to obtain a professional looking graphic. This can be frustrating and time consuming for users.
Another drawback of current drawing programs is that these programs require a user to manually resize text within shapes as shapes and text are added to graphics. For instance, if a user adds text to a shape that overflows the boundaries of the shape, the user must manually resize the graphic or the text so that the text fits completely within the shape. This problem can be extremely time consuming when a large number of shapes with text are utilized in a graphic. This problem is compounded by the fact that many graphics look best when text is sized equally across related shapes. In order to accomplish this utilizing current drawing programs, a user must manually resize the text in each of the related shapes. This also can be time consuming and frustrating for a computer user.
In accordance with the present invention, the above and other problems are solved by a method and computer-readable medium for fitting text into one or more shapes in a graphic. According to the method, one or more initial constraints are defined that comprise initial values describing how a shape and text within the shape should be laid out. For instance, initial constraints may be specified indicating the font face, font size, and character attributes of the text to be laid out. One or more constraint rules are also defined for use in modifying the initial constraints when application of the initial constraints to the text in a shape results in the text overflowing the boundaries of the shape. One or more parameters may be defined that affect the layout of text within a shape but that are not modified by rules.
According to one embodiment of the invention, a change may be detected to the graphic that would affect the size or position of one or more of the shapes or the text within one of the shapes. For instance, a shape may be added or removed, the layout of the graphic may be changed, the font may be changed, or text may be added to or removed from a shape within the graphic. In response to detecting such a change, the initial constraints are applied. If the text overflows the shapes, then the constraint rules are applied sequentially to modify the constraints. The modified constraints are then reapplied to the shapes to create a new layout for the graphic.
According to another embodiment of the invention, applying the constraint rules to modify the constraints includes first identifying a shape in the graphic having text that does not fit inside the shape. When such a shape has been identified, a first constraint rule is identified within a graphic definition file that is associated with the identified shape. The constraint rule identifies a limit for a constraint associated with the shape. A search, such as a binary search, is then performed to identify a value of the constraint between the initial constraint value and the limit that results in the text fitting within the identified shape. According to an embodiment, the identified value comprises a value that is closest to the initial constraint while allowing the text to fit within the shape.
If a value is identified during the search that results in the text fitting within the shape, the identified value for the constraint is applied to the shape. If a value cannot be located that results in the text fitting within the shape, the limit is applied to the shape and a next constraint rule is identified and applied to the shape. Alternatively, an intermediate value identified by the rule may be applied to the shape. In this manner, each of the constraint rules associated with a shape is applied to the shape in a sequential fashion. According to embodiments, rules that do not assist in locating a layout wherein the text fits within the shape may be skipped. If application of all of the constraint rules does not result in the text fitting within the shape, a predefined rule guaranteed to ensure that text does not flow outside the shape may be applied. For instance, a rule may be applied that truncates the text and adds ellipses so that no text extends outside the shape.
According to another embodiment of the invention, a computer-readable medium having a data structure stored thereon is provided. The data structure includes a set of data fields containing data representing one or more initial constraints for fitting text to shapes in a graphic. The constraints comprise initial values describing how text within one or more of the shapes should be laid out.
According to an embodiment, the data structure also includes a second data field containing data representing one or more constraint rules for fitting text to the shapes. The constraint rules comprise rules for modifying the constraints when application of the constraints does not result in text being successfully laid out completely within a shape. In particular, each constraint rule comprises a limit value for at least one constraint. The constraint rules may be utilized to modify the font size, margins, word-wrapping, hyphenation, kerning, line-spacing and other attributes of text within a shape.
FIGS. 2A-4 are block diagrams showing graphics produced by an illustrative drawing program according to one embodiment of the invention;
FIG. 5 is a block diagram illustrating several possible constraints for a shape utilized in one embodiment of the invention;
FIG. 6 is a block diagram illustrating a portion of the contents of a graphic definition file utilized in one embodiment of the invention; and
FIGS. 7-8B are flow diagrams illustrating several routines for fitting text to one or more shapes within a graphic according to one embodiment of the invention.
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 14 and RAM 9 of the computer 2, including an operating system 16 suitable for controlling the operation of a networked personal computer, such as the WINDOWS XP operating system from MICROSOFT CORPORATION of Redmond, Wash. The mass storage device 14 and RAM 9 may also store one or more program modules. In particular, the mass storage device 14 and the RAM 9 may store a drawing application program 10. The drawing application program 10 is operative to provide functionality for the creation and layout of graphics, such as the graphic 24. According to one embodiment of the invention, the drawing application program 10 comprises any one of the programs in the OFFICE suite of application programs from MICROSOFT CORPORATION including the WORD, EXCEL, and POWERPOINT application programs.
The mass storage device 14 may also store several components which are utilized in the creation and layout of graphics within the drawing application program 10. In particular, the components may include a data model 30 and a graphic definition file 40. In various embodiments of the invention, the drawing application program 10 reads in the graphic definition file 40 for instructions regarding the creation and layout of graphics. It will be appreciated that in one embodiment of the invention, the data model 30 and the graphic definition file 40 may be stored as individual files in the computer system 2 which are accessed by the drawing application program 10.
The data model 30 includes a collection of nodes, relationships, text, and properties that contains the content for constructing the graphic 24. The graphic definition file 40 is a collection of data which describes how to create a specific graphic layout. In various embodiments of the invention, the graphic definition file 40 may be formatted utilizing the extensible markup language (“XML”). As is understood by those skilled in the art, XML is a standard format for communicating data. In the XML data format a schema is used to provide XML data with a set of grammatical and data type rules governing the types and structures of data that may be communicated. The XML data format is well-known to those skilled in the art, and therefore not discussed in further detail herein. The aspects of a graphic described by the graphic definition file 40 include the name of the layout algorithm to use for each layout node, algorithm parameters, constraints, and constraint rules for constructing the layout tree, defaults for shape geometry and style properties, graphic classification data, and a sample data model. Additional details regarding the contents and use of the graphic definition file 40 can be found in U.S. patent application Ser. No. 10/955,271, now U.S. Pat. No. 7,348,982, entitled “Method, System, and Computer Readable Medium for Creating and Laying Out a Graphic Within an Application Program” filed on Sep. 30, 2004, which is expressly incorporated herein by reference.
Constraints are conditions used by a layout algorithm for creating a graphic. An example of a constraint is the value to be used for a shape's width. It will be appreciated that constraints may include numeric values or Boolean values. Numeric constraints can specify a specific numeric value (e.g., width=1 inch). Numeric constraints may also calculate their value by referring to other constraint values using references (e.g., height=width*0.75). Boolean constraints may include equality constraints which force all nodes in a set to have the same value as another constraint, and may include inequality constraints, where one constraint value is limited based on another constraint value (e.g. shape's width needs to be less-than or greater-than another shape's height).
Constraints may be propagated between layout nodes to enforce equality between drawing elements (e.g., all normal nodes have the same font size) or inequality (e.g., width of transition nodes should be <=normal node width). Constraints may be propagated by attaching a shared propagator to a constraint which propagates its states to other layout nodes. It will be appreciated that both constraints and constraint rules may be updated on the other nodes from the propagating constraint.
Constraint rules are a description of how to modify a set of constraints if they are unable to be met by a layout algorithm. For instance, a constraint may specify that a font size must be 14 points, but a constraint rule may specify that a font size can decrease to a minimum of 8 points.
According to one embodiment of the invention, the constraints comprise initial values describing how a shape and text within the shape should be laid out. In this regard, constraint rules may be specified that comprise rules for modifying the constraints when application of the constraints does not result in text being successfully laid out within the boundaries of a shape. Additional details regarding the structure and use of the constraints and constraint rules and the contents of the graphic definition file 40 will be provided below with respect to FIG. 4.
Referring now to FIGS. 2A-2B, several illustrative graphics 24A and 24B generated by an embodiment of the invention will be described. As shown in FIG. 2A, the graphic 24A comprises the shapes 50A, 50B, and 50C. Each of the shapes includes text 52A, 52B, and 52C, respectively. According to one embodiment of the invention, text block, paragraph, and character properties such as margins, spacing, and alignment can be changed dynamically based on the structure of the data to provide the most aesthetic text layout. For instance, if the text 52B in the shape 50B is edited to add several bullet points, the alignment of the text 52B may be changed from centered to left aligned. This is reflected in the left justified text 52B shown in FIG. 2B.
According to one embodiment of the invention, text alignment across multiple shapes may also be modified dynamically based on data changes. For instance, in response to adding bullets to the text 52B, the alignment of the text 52B may be changed from centered to left aligned as described above. Additionally, the alignment of the text 52A and 52C in the shapes 50A and 50B may also be changed from centered to left aligned in response to the changes to the text 52B. This is reflected in the text 52A and 52C shown in FIG. 2B.
Turning now to FIGS. 3A-3B, additional aspects of the invention will be presented with respect to the graphics 24C and 24D. The graphic 24C includes the shapes 50A, 50B, and 50C having text 52A, 52B, and 52C, respectively. The text 52A, 52B, and 52C is top and left aligned. If the user changes diagram types, such as from the process graphic shown in FIG. 3A to the hierarchy graphic 24D shown in FIG. 3B, the text 52A, 52B, and 52C is mapped to the appropriate shapes in the graphic 24D. Moreover, in response to the change in graphic style, the alignment of the text in each of the shapes 52A-52D is changed from top-left aligned to center aligned. This change occurs because the graphic definition file associated with the graphic 24D indicates that text should be center aligned.
Referring now to FIG. 4, additional details regarding the types of formatting changes that may be applied through the embodiments of the invention will be described. FIG. 4 shows a graphic 24E that includes a shape 50E. The shape 50E is a compound shape made up of a parent shape and one child shape. Compound shapes include a parent shape and may have any number of children shape. It should be appreciated that it is not necessary to utilize a compound shape with the embodiments of the invention. The algorithms provided herein can operate with any combination of shapes. As will be described in greater detail below, the size and formatting of a shape may be varied to ensure that any text associated with the shape fits completely inside the shape. The formatting and size of the text may also be varied. According to one embodiment of the invention, the text and shape of a parent shape may be varied independently of a child shape. Similarly, a child shape may be varied independently of its parent shape. In this manner, any portion of a compound shape can be varied independently of any other portion. Additional details regarding this process will be described below.
Turning now to FIG. 5, additional details regarding the aspects of a shape and its associated text that may be modified to ensure that the shape encompasses the text will be described. In particular, FIG. 5 shows a shape 50F. The shape 50F has associated text 52D. The shape 50F also includes an inside margin 58, a vertical dimension 56, and a horizontal dimension 54. As will be described in greater detail below, the vertical and horizontal dimensions of the shape 50F may be altered so that the text 52D will fit completely inside the shape. Similarly, the inside margin 58 may also be altered as specified to allow the text 52D to fit within the shape 50F. Attributes of the text 52D, such as the font size and text alignment, may also be modified in an attempt to fit the text 52D within the shape 50F. It should be appreciated that the algorithms provided herein may be utilized on a body of text bound by any geometric shape.
As will be described in greater detail below, the graphic definition file 40 includes constraint rules that define which attributes of the shape 50F and text 52D should be modified in attempt to fit the text 52D and the order in which they should be modified. It should be appreciated that the attributes of the shape 50F and text 52D shown in FIG. 5 and described herein are merely illustrative and that other attributes of a shape may be modified in an attempt to fit the text 52D within the shape. It should also be appreciated that the constraints and constraint rules may be specified on a per shape basis. Constraints and constraint rules may also be specified for a set of shapes.
Referring now to FIG. 6, the contents of a portion of an illustrative graphic definition file 40 will be described. In particular, the graphic definition file 40 includes one or more constraints 60. The constraints 60 comprise initial values describing how a shape and text within the shape should be laid out. For instance, the constraints 60 shown in FIG. 6 include a constraint for setting the width of the shape to 1.5 inches. Another constraint sets the height of the shape to 0.667 times the width. Yet another constraint sets the text size for a parent shape to 36 points and another constraint sets the text size for a child shape to 36 points. These constraints are utilized to initially lay out the shape and its associated text. Parameters may also be specified within the file 40.
The graphic definition file also includes one or more constraint rules 62. The constraint rules 62 are a description of how to modify a set of constraints if they are unable to be met by a layout algorithm. For instance, the constraint rules 62 shown in FIG. 5 include a first constraint rule indicating that the width of the shape may be increased up to 3 inches in steps of 0.25 inches. If application of the first constraint rule does not result in the text fitting within the shape, the next constraint rule is applied. The next constraint rule indicates that the height of the shape may be increased up to 1.5 times the width of the shape. If this constraint rule does not result in a good fit of the text, then the next rule is applied sequentially until no additional constraint rules remain. The other constraint rules shown in FIG. 5 decrease the font size of the parent text down to a minimum of 16 points, decrease the font size of child text down to a minimum of 16 points, increase the height up to 3 inches and decrease the size of the parent text down to four points. It should be appreciated that default values may be utilized for constraints not specifically defined in the file 40.
Referring now to FIG. 7, an illustrative routine 700 will be described illustrating a process for defining initial constraints and constraint rules. When reading the discussion of the routines presented herein, it should be appreciated that the logical operations of various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations illustrated in FIGS. 7 and 8, and making up the embodiments of the present invention described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims set forth herein.
The routine 700 begins at operation 702, where the initial constraint values are defined. The routine 700 then continues to operation 704, where the constraint rules are defined. From operation 704, the routine 700 continues to operation 706, where the constraint values and constraint rules are stored in the graphic definition file 40. The routine 700 then continues to operation 708, where it ends.
Referring now to FIGS. 8A and 8B, an illustrative routine 800 will be described for fitting text to a shape. The routine 800 begins at operation 802 if a request to create a new graphic is received. In this case, a request is received at operation 802 to insert a new graphic. The routine 800 then continues to operation 804, where a selection of the new graphic type is received. The routine 800 then continues to operation 806, where the initial shapes in the graphic are positioned. The shapes may be position according to the initial constraints. From operation 806, the routine 800 continues to operation 808, where text is received to be placed in the shapes. The routine 800 then continues to operation 814, described below.
The routine 800 begins at operation 810 if the graphic type is modified. In this case, a selection of the new graphic type is received at operation 810. From operation 810, the routine 800 continues to operation 814, described below.
At operation 814, the text content is mapped to shapes within the graphic. The routine 800 then continues to operation 816 where the initial constraints are applied to the shapes. Parameters may also be applied to the shapes. For instance, color may be a parameter since modifying the color of text will not change the size or position of the text. From operation 816, the routine 800 continues to operation 818.
At operation 818, a determination is made as to whether the text fit into each of the shapes. If the text does not fit, the routine 800 continues to operation 820, where a determination is made as to whether there are additional constraint rules in the graphic definition file to process. If additional constraint rules remain to be processed, the routine continues to operation 822. At operation 822, the next constraint rule is read from the graphic definition file. The routine 800 then continues to operation 824, where the set of values specified in the constraint rule is searched to determine the best fit for the text. For instance, if the initial constraint specifies that the width of the shape should be 1.5 inches and the constraint rule specifies that the width may be increased to a limit of 3 inches, a search is performed to identify the smallest value between 1.5 and 3 inches that will result in the text fitting within the shape. According to one embodiment, a binary search is utilized. However, it should be appreciated that other type of algorithms may be utilized to identify the best fit value in addition to search algorithms.
It should be appreciated that, according to one embodiment of the invention, a modified binary search algorithm is utilized that continues searching for a value that is closer to the starting value, even after a successful value has been located. This process continues until the first result that allows a fit is within a predefined threshold of a subsequent value that results in a fit. In this manner, a best fit value can be located.
Once the search for a best fit value has been performed utilizing the current constraint rule, the method 800 returns to operation 818 where another determination is made as to whether the text fits within the shape. If the text does not fit, the above process is repeated with respect to operations 820, 822, and 824. If the text does fit, the routine 800 branches from operation 818 to operation 828.
It should be appreciated that, according to one embodiment, the values identified by the search routine as the best fit for the shape having overflowing text may be propagated to other shapes. In this manner, related shapes may be resized for consistency thereby saving users from having to manually resize related shapes.
At operation 828, a determination is made as to whether there have been changes to the size or position of any content within the graphic. If there have not been changes, the routine 800 branches to operation 832, where it ends. If there have been changes, the routine 800 branches to operation 826, where a determination is made as to whether there is new content to be mapped to a shape within the graphic. If there is new content to be mapped, the routine 800 branches from operation 826 to operation 814, described above. If there is no new content to be mapped, the routine branches from operation 826 to operation 816, described above.
If, at operation 820, it is determined that there are no additional constraint rules to process then the routine 800 branches from operation 820 to operation 830. At operation 830, a predefined rule is applied to the shape that is guaranteed to ensure that text does not flow outside the shape. For instance, according to one embodiment of the invention, the text may be truncated and ellipses (“ . . . ”) added to the end of the text to indicate the truncation. Sufficient text may be truncated so that the remaining text fits entirely within the shape. Other types of rules guaranteed to ensure that text will not flow outside the shape may be applied. From operation 830, the routine 800 branches to operation 828, described above.
Based on the foregoing, it should be appreciated that the various embodiments of the invention include a method and computer-readable medium for fitting text to shapes within a graphic. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5214755 *Oct 18, 1991May 25, 1993Microsoft CorporationDocument processing method and systemUS5426729Jun 24, 1992Jun 20, 1995Microsoft CorporationMethod and system for nonuniformly adjusting a predefined shapeUS5557722Apr 7, 1995Sep 17, 1996Electronic Book Technologies, Inc.Data processing system and method for representing, generating a representation of and random access rendering of electronic documentsUS5596691May 15, 1996Jan 21, 1997Claris CorporationComputer system and method for manipulating the display of drawingsUS5619631Jun 7, 1995Apr 8, 1997BinaryblitzMethod and apparatus for data alteration by manipulation of representational graphsUS5649216 *Jun 4, 1996Jul 15, 1997Joseph S. SieberMethod and apparatus for automated layout of text and graphic elementsUS5669006 *Feb 23, 1995Sep 16, 1997International Business Machines CorporationMethod for automatically obtaining spatial layout for multimedia presentationsUS5732229 *Jun 13, 1996Mar 24, 1998Object Technology Licensing CorporationMethod and apparatus for displaying business cardsUS5818447Jun 6, 1996Oct 6, 1998Microsoft CorporationSystem and method for in-place editing of an electronic mail message using a separate programUS5903902Sep 9, 1996May 11, 1999Design Intelligence, Inc.Design engine with tree and component structureUS5909220Dec 4, 1995Jun 1, 1999Sandow; RobinInteractive computerized image coloring systems and methods for processing combinations of color with automated subroutines and color standardization for diverse color systemsUS5956737Sep 9, 1996Sep 21, 1999Design Intelligence, Inc.Design engine for fitting content to a mediumUS5999731Mar 24, 1998Dec 7, 1999Sun Microsystems, Inc.Bytecode program interpreter apparatus and method with pre-verification of data type restrictions and object initializationUS6057842Apr 29, 1999May 2, 2000Quickbuy, Inc.Display layout generator for graphical representationsUS6057858Aug 7, 1996May 2, 2000Desrosiers; John J.Multiple media fontsUS6081816 *Mar 18, 1998Jun 27, 2000Microsoft CorporationMethod for placing text around polygons and other constraintsUS6166738Sep 14, 1998Dec 26, 2000Microsoft CorporationMethods, apparatus and data structures for providing a user interface, which exploits spatial memory in three-dimensions, to objectsUS6173286 *Feb 28, 1997Jan 9, 2001Nth Degree Software, Inc.Computer-implemented optimization of publication layoutsUS6189132 *Apr 9, 1998Feb 13, 2001International Business Machines CorporationDesign rule correction system and methodUS6204859Oct 15, 1997Mar 20, 2001Digital Equipment CorporationMethod and apparatus for compositing colors of images with memory constraints for storing pixel dataUS6256650May 18, 1998Jul 3, 2001Microsoft CorporationMethod and system for automatically causing editable text to substantially occupy a text frameUS6289502Mar 30, 1998Sep 11, 2001Massachusetts Institute Of TechnologyModel-based software design and validationUS6289505Nov 18, 1997Sep 11, 2001Sun Microsystems, Inc.Method, apparatus and computer programmed product for binary re-optimization using a high level language compilerUS6301704Jun 16, 1998Oct 9, 2001Silicon Graphics, Inc.Method, system, and computer program product for using static single assignment form as a program representation and a medium for performing global scalar optimizationUS6305012Dec 3, 1998Oct 16, 2001International Business Machines CorporationMethod and apparatus for dynamic selection of instructions for compiling using tagsUS6308322Apr 6, 1999Oct 23, 2001Hewlett-Packard CompanyMethod and apparatus for reduction of indirect branch instruction overhead through use of target address hintsUS6324686Nov 10, 1998Nov 27, 2001International Business Machines CorporationJust in time compiler techniqueUS6405225Jun 17, 1998Jun 11, 2002Microsoft CorporationIntegrating email functionality into a word processor by incorporating an email GUI within the word processorUS6667750 *Jul 30, 1999Dec 23, 2003Curl CorporationMultiple pass layout of graphical objects with elasticsUS6826727 *Nov 24, 1999Nov 30, 2004Bitstream Inc.Apparatus, methods, programming for automatically laying out documentsUS6944830Dec 21, 2000Sep 13, 2005Xerox CorporationSystem and method for browsing hierarchically based node-link structures based on an estimated degree of interestUS6956737Jun 13, 2003Oct 18, 2005Hon Hai Precision Ind. Co., LtdDisk drive mounting assemblyUS7055095Oct 31, 2000May 30, 2006Picsel Research LimitedSystems and methods for digital document processingUS7107525 *Jul 23, 2002Sep 12, 2006Xerox CorporationMethod for constraint-based document generationUS7178102Dec 9, 2003Feb 13, 2007Microsoft CorporationRepresenting latent data in an extensible markup language documentUS7348982Sep 30, 2004Mar 25, 2008Microsoft CorporationMethod, system, and computer-readable medium for creating and laying out a graphic within an application programUS7379074Dec 15, 2004May 27, 2008Microsoft CorporationSemantically applying formatting to a presentation modelUS7423646Nov 8, 2005Sep 9, 2008Microsoft CorporationSmart shape insertUS20010051962 *Jun 8, 2001Dec 13, 2001Robert PlotkinPresentation customizationUS20020065852Nov 30, 2000May 30, 2002Matt HendricksonOnline guided resume creation system that allows dynamic style formattingUS20020111969 *Sep 27, 2001Aug 15, 2002Halstead Robert H.System and method for processing graphical objects for layout using an elastic difference operationUS20030079177Oct 28, 2002Apr 24, 2003Microsoft CorporationAutomatic layout of content in a design for a mediumUS20040111672Oct 3, 2003Jun 10, 2004Corel CorporationSystem and method for extending scalable vector graphics capabilitiesUS20040133854Jan 8, 2003Jul 8, 2004Black Karl S.Persistent document object modelUS20040148571 *Jan 14, 2004Jul 29, 2004Lue Vincent Wen-JengMethod and apparatus for adapting web contents to different display areaUS20040205602 *Jul 25, 2001Oct 14, 2004Douglas CroeniPage layout design using geometric interference schemaUS20050007382Aug 22, 2003Jan 13, 2005Schowtka Alexander K.Automated image resizing and croppingUS20050091584Oct 23, 2003Apr 28, 2005Microsoft CorporationMethods for applying styles to visual aspects of user interface elementsUS20050094206 *Jul 15, 2004May 5, 2005Canon Kabushiki KaishaDocument layout methodUS20050132283 *Dec 16, 2003Jun 16, 2005Shridhar DiwanMethod of, and system for, adjusting a document configurationUS20050157926Jan 15, 2004Jul 21, 2005Xerox CorporationMethod and apparatus for automatically determining image foreground colorUS20050273730Jul 20, 2005Dec 8, 2005Card Stuart KSystem and method for browsing hierarchically based node-link structures based on an estimated degree of interestUS20050289466Jun 24, 2004Dec 29, 2005Kaihu ChenMultimedia authoring method and system using bi-level theme templatesUS20060064642Sep 22, 2004Mar 23, 2006Edurite Technologies Pvt. Ltd.Seamless presentation integratorUS20060066627Dec 15, 2004Mar 30, 2006Microsoft CorporationSemantically applying formatting to a presentation modelUS20060066631Sep 30, 2004Mar 30, 2006Microsoft CorporationMethod, system, and computer-readable medium for creating and laying out a graphic within an application programUS20060070005Sep 30, 2004Mar 30, 2006Microsoft CorporationEditing the text of an arbitraty graphic via a hierarchical listUS20060209093Mar 15, 2005Sep 21, 2006Microsoft CorporationMethod and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapesUS20060277476Jun 2, 2005Dec 7, 2006Hsuan-Cheng LaiMethod and system for dynamic generation of graphical content using a markup languageUS20060294460 *Jun 24, 2005Dec 28, 2006Hui ChaoGenerating a text layout boundary from a text block in an electronic documentUS20070006073Jun 30, 2005Jan 4, 2007Microsoft CorporationSemantically applying style transformation to objects in a graphicUS20070055939Nov 30, 2000Mar 8, 2007Furlong Tarri EMethods and apparatus for automatically generating presentationsUS20070112832Nov 17, 2005May 17, 2007Microsoft CorporationSmart copy/paste of graphical nodesUS20080046803Mar 17, 2003Feb 21, 2008Beauchamp Tim JApplication-specific personalization for data displayUS20080136822Feb 22, 2008Jun 12, 2008Microsoft CorporationMethod, system, and computer-readable medium for creating and laying out a graphic within an application programUS20080282147 *May 9, 2007Nov 13, 2008Microsoft CorporationConstraint and rule-based page layoutUS20080288916May 14, 2007Nov 20, 2008Eiichi TazoeMethod of Visualizing Modifications of a Hierarchical State DiagramUS20090019453Jul 9, 2007Jan 15, 2009Anand KodaganurAutomatically Arranging Objects in a Graphical Program Block DiagramUS20090327954Dec 31, 2009Microsoft CorporationUsing visual landmarks to organize diagramsEP0431638A2Dec 7, 1990Jun 12, 1991Kabushiki Kaisha ToshibaMethod and apparatus for document formattingEP1111543A2Dec 18, 2000Jun 27, 2001Adobe Systems, Inc.Method and apparatus for painting groups of objectsWO2001039019A2Nov 22, 2000May 31, 2001Bitstream Inc.Apparatuses, methods, and programming for automatically laying out documentsWO2003052582A1Dec 19, 2002Jun 26, 2003Redbank Manor Pty LtdDocument display system and methodWO2004046972A1Nov 18, 2003Jun 3, 2004Typefi Systems Pty LtdA method of formatting documents* Cited by examinerNon-Patent CitationsReference1"Create Diagrams in Word 2002, Excel 2002, and PowerPoint 2002", http://office.microsoft.com/en-us/assistance/HA010346141033.aspx, 2 pgs.2"Css Zen Garden: The Beauty in CSS Design," Retrieved from archive.org.http://web.archive.org/web/20031001180317/http://www.csszengarden.com/, Oct. 1, 2003, retrieved Nov. 8, 2009, 3 pgs.3"Exploring the Layouts", 1999 Software Publishing Corporation, 2 pgs.4"Proquis Compliance Management & Document Control Solutions", http://www.proquis.com/allclear-text2chart.asp, 1 pg.5"Show Me Microsoft� Office Powerpoint� 2003" by Steve Johnson, Perspection, Inc., Publisher: Que, Publication Date: Oct. 2, 2003, Print ISBN-10; 0-7897-3009-X; Print ISBN-13: 978-0-7897-3009-1, 21 pgs.6"Show Me Microsoft� Office Powerpoint� 2003" by Steve Johnson, Perspection, Inc., Publisher: Que, Publication Date: Oct. 2, 2003, Print ISBN-10; 0-7897-3009-X; Print ISBN-13: 978-0-7897-3009-1, 4 pgs.7"Styling Nested Lists," [online] Oct. 19, 2003 [accessed Nov. 13, 2006], SimpleBits, LLC, Retrieved from Internet URL:http://www.simplebits.com/notebook/2003/10/19/styling-nestled-lists.html, pp. 1-5.8"Styling Nested Lists," [online] Oct. 19, 2003 [accessed Nov. 13, 2006], SimpleBits, LLC, Retrieved from Internet URL:http://www.simplebits.com/notebook/2003/10/19/styling—nestled—lists.html, pp. 1-5.9Australian Examiner's First Report dated Apr. 21, 2010 cited in Application No. 2005203708.10Chinese Office Action dated Aug. 29, 2008 cited in Application No. 200610004498.4.11Chinese Office Action dated Jul. 4, 2008 cited in Application No. 200510099652.612Chinese Second Office Action dated Feb. 20, 2009 cited in Application No. 200610004498.413Copending U.S. Appl. No. 10/955,271, filed Sep. 30, 2004, entitled: "Method, System, And Computer-Readable Medium For Creating And Laying Out A Graphic Within An Application Program".14Copending U.S. Appl. No. 10/957,103, filed Sep. 30, 2004, entitled: "Editing the Text of an Arbitrary Graphic Via Hierarchical List".15Copending U.S. Appl. No. 11/081,323, filed Mar. 15, 2005, entitled: "Method and Computer-Readable Medium for Generating Graphics Having a Finite Number of Dynamically Sized and Positioned Shapes".16Copending U.S. Appl. No. 12/723,127 filed Mar. 12, 2010 entitled "Reordering Nodes in a Hierarchal Structure".17EP Communication dated Jul. 10, 2009 cited in Application No. 06 111 105.0.18EP Search Report cited in EP 05 10 5366.8-2218 dated Jan. 2, 2006.19EP Search Report cited in EP 05 10 8636.1-2218 dated Jan. 2, 2006.20European Communication dated Dec. 17, 2008 cited in Application No. 06111105.0-1527 / 1703417.21European Communication dated Dec. 17, 2008 cited in Application No. 06111105.0—1527 / 1703417.22European Search Report dated Feb. 13, 2006.23John Gallant et al., Archive.org archive of "CSS Flyouts-Part One," [online] Jun. 24, 2005 [accessed Nov. 13, 2006], CommunityMX, Retrieved from Internet URL:http://web.archive.org/web/20050624075147/http://www.communitymx.com/content/article.cfm?page=3&cid=55A69, 2 pgs.24John Gallant et al., Archive.org archive of "CSS Flyouts—Part One," [online] Jun. 24, 2005 [accessed Nov. 13, 2006], CommunityMX, Retrieved from Internet URL:http://web.archive.org/web/20050624075147/http://www.communitymx.com/content/article.cfm?page=3&cid=55A69, 2 pgs.25LingCh by Elod Csirmaz - Retrieved Date: Jan. 11, 2010, http://www.postminart.org/csirmaz/lingch.txt., 5 pgs.26Mexican Office Action dated Dec. 4, 2008 cited in Application No. PA/a/2005/009276.27Mexican Office Action dated May 25, 2009 cited in Application No. PA/a/2005/009276.28Roderick Singleton, "OpenOffice.org User Guide for Version 1.1.x", May 7, 2004, ONLINE, XP002348571, retrieved from the Internet: URL:www.openoffice.org>, retrieved Sep. 30, 2005; pgs. 253-284.29Russell Borland, "Running Microsoft Word 97", 1997, Published by Microsoft Press. Pertinent pp. 60-61.30U.S. Appl. No. 12/035,878, filed Feb. 22, 2008 entitled "Method, System, and Computer-Readable Medium For Creating and Laying Out A Graphic Within An Application Program".31U.S. Final Office Action dated Aug. 19, 2008 cited in U.S. Appl. No. 11/172,279.32U.S. Final Office Action dated Jul. 18, 2008 cited in U.S. Appl. No. 11/081,323.33U.S. Final Office Action dated Jul. 21, 2009 cited in U.S. Appl. No. 10/957,103.34U.S. Final Office Action dated Jul. 6, 2007 cited in U.S. Appl. No. 11/081,323.35U.S. Final Office Action dated May 17, 2007 cited in U.S. Appl. No. 11/172,279.36U.S. Final Office Action dated Oct. 23, 2007 cited in U.S. Appl. No. 10/957,103.37U.S. Final Office Action dated Oct. 3, 2006 cited in U.S. Appl. No. 10/955,271.38U.S. Final Office Action dated Sep. 12, 2008 cited in U.S. Appl. No. 10/957,103.39U.S. Office Action dated Apr. 17, 2007 cited in U.S. Appl. No. 10/955,271.40U.S. Office Action dated Apr. 29, 2009 cited in U.S. Appl. No. 11/172,279.41U.S. Office Action dated Feb. 18, 2009 cited U.S. Appl. No. 11/081,323.42U.S. Office Action dated Feb. 18, 2010 cited in U.S. Appl. No. 10/957,103.43U.S. Office Action dated Jan. 14, 2009 cited in U.S. Appl. No. 10/957,103.44U.S. Office Action dated Jan. 22, 2007 cited in U.S. Appl. No. 11/081,323.45U.S. Office Action dated Jan. 23, 2008 cited in U.S. Appl. No. 11/081,323.46U.S. Office Action dated Mar. 19, 2008 cited in U.S. Appl. No. 10/957,103.47U.S. Office Action dated Mar. 6, 2008 cited in U.S. Appl. No. 11/172,279.48U.S. Office Action dated May 16, 2007 cited in U.S. Appl. No. 10/957,103.49U.S. Office Action dated Nov. 27, 2006 cited in U.S. Appl. No. 11/172,279.50U.S. Office Action dated Oct. 31, 2006 cited in U.S. Appl. No. 11/013,630.51U.S. Official Action dated Apr. 20, 2006 cited in U.S. Appl. No. 10/955,271.52yEd Graph Editor - Published Date: 2009; New yEd version 3.4.1, http://www.yworks.com/en/products-yed-about.html, 5 pgs.53yEd Graph Editor - Published Date: 2009; New yEd version 3.4.1, http://www.yworks.com/en/products—yed—about.html, 5 pgs.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS8134575Dec 15, 2004Mar 13, 2012Microsoft CorporationMaintaining graphical presentations based on user customizationsUS8269790Jan 31, 2012Sep 18, 2012Microsoft CorporationMaintaining graphical presentations based on user customizationsUS8438486Feb 9, 2006May 7, 2013Microsoft CorporationAutomatically converting text to business graphicsUS8510657Sep 30, 2004Aug 13, 2013Microsoft CorporationEditing the text of an arbitrary graphic via a hierarchical listUS8762832 *Feb 28, 2011Jun 24, 2014Microsoft CorporationConstraint and rule-based page layoutUS8791955Feb 22, 2008Jul 29, 2014Microsoft CorporationMethod, system, and computer-readable medium for creating and laying out a graphic within an application programUS8799325Mar 12, 2010Aug 5, 2014Microsoft CorporationReordering nodes in a hierarchical structureUS8869026 *Oct 29, 2010Oct 21, 2014Konica Minolta Laboratory U.S.A., Inc.Using a layout engine to display an overflowed textboxUS9213681 *Oct 8, 2010Dec 15, 2015Adobe Systems, IncorporatedMethod and system to modify source content to fit into a target display area in a browserUS20060066632 *Dec 15, 2004Mar 30, 2006Microsoft CorporationMaintaining graphical presentations based on user customizationsUS20060070005 *Sep 30, 2004Mar 30, 2006Microsoft CorporationEditing the text of an arbitraty graphic via a hierarchical listUS20070186168 *Feb 9, 2006Aug 9, 2007Microsoft CorporationAutomatically converting text to business graphicsUS20080136822 *Feb 22, 2008Jun 12, 2008Microsoft CorporationMethod, system, and computer-readable medium for creating and laying out a graphic within an application programUS20080155469 *Feb 21, 2008Jun 26, 2008Canon Kabushiki KaishaApparatus and method for processing information, and program and storage mediumUS20110154190 *Jun 23, 2011Microsoft CorporationConstraint and Rule-Based Page LayoutUS20110173530 *Jan 14, 2010Jul 14, 2011Microsoft CorporationLayout constraint manipulation via user gesture recognitionUS20120079371 *Mar 29, 2012Hon Hai Precision Industry Co., Ltd.System and method for processing text in electronic deviceUS20120110441 *May 3, 2012Konica Minolta Systems Laboratory Inc.Using a layout engine to display an overflowed textboxUS20130084999 *Oct 4, 2012Apr 4, 2013Jason Churchill CostaGame centered on building nontrivial computer programsUS20140040719 *Oct 8, 2010Feb 6, 2014Adobe Systems IncorrporatedBrowser-based text fitting* Cited by examinerClassifications U.S. Classification715/246, 715/256, 706/19, 715/272, 345/619, 715/247International ClassificationG06F17/21Cooperative ClassificationG06F17/211European ClassificationG06F17/21FLegal EventsDateCodeEventDescriptionMay 6, 2005ASAssignmentOwner name: MICROSOFT CORPORATION, WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERKER, ILAN;COSTA, JASON C.;CHUNG, KEYWON;AND OTHERS;REEL/FRAME:016201/0777Effective date: 20050314Owner name: MICROSOFT CORPORATION,WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERKER, ILAN;COSTA, JASON C.;CHUNG, KEYWON;AND OTHERS;REEL/FRAME:016201/0777Effective date: 20050314Feb 15, 2011CCCertificate of correctionNov 26, 2013FPAYFee paymentYear of fee payment: 4Dec 9, 2014ASAssignmentOwner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001Effective date: 20141014RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services