WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and system for processing documents with embedded fonts    

Get related patents on CD
United States Patent5528742   
Link to this pagehttp://www.wikipatents.com/5528742.html
Inventor(s)Moore; George M. (Redmond, WA); Adler; Dennis R. (Mercer Island, WA); Weise; David N. (Kirkland, WA)
AbstractA user of a host computer creates a document and embeds in the document a font file used to create the document. The user then transfers the document, along with the embedded font file, to a remote computer. The remote computer processes the document using the embedded font file. If the embedded font file contains a preview and print type of font, then the remote computer allows users to preview the document on a display screen and to print the document on a printer using the embedded font. However, the preview and print type of font does not allow the user to modify the document. If the embedded font file contains an editable type of font, then the remote computer allows the user to modify the document, save the modified document to an original file name, and print the modified document on the printer. However, the editable type of font does not allow the user to save the document under a file name different from the original file name.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Inventor     Moore; George M. (Redmond, WA); Adler; Dennis R. (Mercer Island, WA); Weise; David N. (Kirkland, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Company News
Publication Date     June 18, 1996
Application Number     08/329,670
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 26, 1994
US Classification     715/542 715/522
Int'l Classification     G06K 015/00
Examiner     Herndon; Heather R.
Assistant Examiner     Vo; Cliff N.
Attorney/Law Firm     Seed and Berry
Address
Parent Case     CROSS-REFERENCE TO RELATED APPLICATION This application is a continuation of U.S. patent application Ser. No. 08/045,825, filed Apr. 9, 1993, now abandoned.
Priority Data    
USPTO Field of Search     395/144 395/145 395/148 395/150 395/151 395/161 382/61
Patent Tags     processing documents embedded fonts
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

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

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5367618
Ishida
715/542
Nov,1994

[0 after 0 votes]
5142613
Morikawa
358/1.11
Aug,1992

[0 after 0 votes]
4949287
Yamaguchi
715/520
Aug,1990

[0 after 0 votes]
4933984
Nakano
382/175
Jun,1990

[0 after 0 votes]
5142620
Watanabe
715/526
Dec,1969

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

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

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

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

N/A

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

No, license is not currently available



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

No, license is not currently available



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

No



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

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

No



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

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


We claim:

1. A method executed in a computer system for processing a document contained in a document file using an embedded font stored in a font file, the document file containing the font file, the document file having been created on a host computer, the computer system including a remote computer having a main memory and a permanent memory, the document file having an associated document file name, the font file having an associated font file name, the embedded font stored in the font file having one of a plurality of font types, each font type defining which of a plurality of functions available from an application program are allowed to be performed by the remote computer on the document using the embedded font, the method comprising the steps of:

receiving the document file in the remote computer;

retrieving the font file from the document file;

assigning a new font file name to the retrieved font file;

creating a temporary directory in the permanent memory which is not associated with a directory which stores the application program;

storing the retrieved font file under the new font file name in the temporary directory;

determining the font type of the embedded font contained in the document file;

in response to a determination that the embedded font type is a predetermined one of the plurality of font types, recognizing if a user of the remote computer has selected a predetermined one of the plurality of available functions; and

in response to recognizing the selection of the predetermined function, deleting the stored retrieved font file from the temporary directory.

2. A computer system for processing a document contained in a document file using an embedded font stored in a font file, the font file being contained in the document file, the document file having been created on a host computer, the computer system including a remote computer having a main memory and a permanent memory, the document file having an associated document file name, the font file having an associated font file name, the embedded font stored in file font file having one of a plurality of font types, each font type defining which of a plurality of functions available from an application program are allowed to be performed by the remote computer-on the document using the embedded font, the system comprising:

means for receiving the document file in the remote computer,

means for retrieving the font file from the document file;

means for assigning a new font file name to the retrieved font file;

means for creating a temporary/directory in the permanent memory which is not associated with a directory which stores the application program;

means for storing the retrieved font file under the new font file name in the temporary directory;

means for determining the font type of the embedded font contained in the document file;

means for determining if the embedded font type is a predetermined one of the plurality of font types;

means for recognizing if a user of the remote computer has selected a predetermined one of the plurality of available functions; and

means for deleting the stored font file from the temporary directory in response to the recognizing means recognizing the selection of the predetermined function.

3. A method executed in a computer system for processing a document contained in a document file using an embedded font stored in a font file, the font file being contained in the document file, the document file having been created on a host computer, the computer system including a remote computer, the font file having an associated font file name, the embedded font stored in the font file being in one of a plurality of font classifications, each font classification defining which of a plurality of functions available from an application program are permitted to be performed by the remote computer on the document using tile embedded font, the method comprising the steps of:

receiving the document file in the remote computer;

retrieving the font file from the document file;

determining the font classification of the embedded font in the retrieved font file;

in response to the determination of the font classification, recognizing if a user of the remote computer has selected an impermissible function; and

in response to recognizing the selection of the impermissible function, deleting the font file.

4. The method of claim 3 wherein the determined font classification is an editable font classification, and wherein the impermissible function is a function to save the document to another document file with a file name different from the associated document file name.

5. The method of claim 3 wherein the determined font classification is an editable font classification, and wherein the impermissible function is a function to close the document file.

6. The method of claim 3 wherein the determined font classification is a preview and print font classification, and wherein the impermissible function is a function to edit the document file.

7. The method of claim 3 wherein the determined font classification is a preview and print font classification, and wherein the impermissible function is a function to close the document file.

8. The method of claim 3 wherein the application program is stored in a directory in a permanent memory of the remote computer, the method further comprising the steps of creating a temporary directory in the permanent memory which is not associated with the application program directory, and storing the retrieved font file in the temporary directory.

9. The method of claim 3 wherein the determined font classification is an installable font classification, further comprising the steps of:

installing the retrieved font file at the remote computer system;

receiving a user request to generate a new document using the newly installed font file at the remote computer; and

upon receiving the user request to generate the new document using the newly installed retrieved font file at the remote computer system, generating the new document using the newly installed retrieved font file.

10. A computer system for processing a document contained in a document file using an embedded font stored in a font file, the font file being contained in the document file, the document file having been created on a host computer, the computer system including a remote computer, the font file having an associated font file name, the embedded font stored in the font file having one of a plurality of font types, the computer system also including a software program that provides a plurality of functions, the system comprising:

means for receiving the document file in the remote computer;

means for retrieving the font file from the document file;

means for assigning a new font file name to the retrieved font file;

means for storing the retrieved font file under the new font name;

means for determining the font type of the embedded font;

means for determining if the embedded font type is a predetermined one of the plurality of font types;

means for recognizing if a user of the remote computer has selected a predetermined one of the plurality of functions; and

means for deleting the font file in response to the recognizing means recognizing the selection of the predetermined function.

11. The system of claim 10 wherein the predetermined font type is an editable font type, and wherein the predetermined function is a function to save the document to another document file with a document file name different from the associated document file name.

12. The system of claim 10 wherein the predetermined font type is an editable font type, and wherein the predetermined function is a function to close the document file.

13. The system of claim 10 wherein the predetermined font type is a preview and print font type, and wherein the predetermined function is a function to edit the document file.

14. The system of claim 10 wherein the predetermined font type is a preview and print font type, and wherein the predetermined function is a function to close the document file.

15. The computer system of claim 10 wherein the software program of the computer system includes an available font list which lists the font files available for use on the remote computer, the system further comprising means for ensuring that the font file is not listed on the available font list.

16. The system of claim 15 wherein the ensuring means further comprises means for permitting only the software program to process the document using the embedded font stored in the font file.

17. The system of claim 10 wherein the predetermined font type is an installable font type, further comprising:

means for installing the retrieved font file at the remote computer system; and

means for generating a new document using the newly installed retrieved font file.

18. A method in a computer system for processing document data contained in a document file, the method comprising the computer-implemented steps of:

receiving font data to be stored in a font file;

determining a license type of the font file, the license type indicating a plurality of functions that are performable with the font data in the font file;

storing the font data in the font file with the license type;

receiving a request from a user to process the document data with the font data in the font file;

after processing the document data, receiving another request from the user to embed the font data in the document file; and

upon receiving the request from the user to embed the font data in the document file,

determining the license type of the font file containing the font data;

storing the determined license type in the document file;

when the determined license type is of a first type, storing all of the font data of the font file in the document file; and

when the determined license type is of a second type, storing the font data corresponding to the document data in the document file.

19. The method of claim 18 wherein the first type is an installable type.

20. The method of claim 18 wherein the first type is an editable type.

21. The method of claim 18 wherein the second type is a preview and prim type.

22. A method in a computer system for ensuring that use of font data in a font file is consistent with a license type of the font file, the computer system having a document file with document data generated with the font data in the font file, the license type indicating a plurality of functions that are performable with the font data in the font file, the method comprising the computer-implemented steps of:

receiving a request from a user to perform a function on the document data using the font data in the font file;

in response to receiving the request, determining the license type of the font file; and

upon determining the license type of the font file,

determining whether the determined license type indicates that the received request to perform the function identifies a permissible function;

when the received request to perform the function identifies a permissible function, performing the function; and

when the received request to perform the function identifies an impermissible function, notifying the user that the function will not be performed.

23. The method of claim 22 wherein an application program generates the document data, further comprising:

receiving a request to perform a function on the document data;

upon receiving the request, determining whether the application program that generated the document data is the application program requesting to perform the function; and

when the application program that generated the document data is the application program that requests to perform the function, performing the function.

24. A method in a computer system for ensuring that use of font data in a font file is consistent with a license type of the font file, the computer system having a document file generated with the font data in the font file at a host computer for transmitting to a plurality of remote computers, the document file having document data, the license type indicating a plurality of functions that are performable with the font data in the font file, the method comprising the computer-implemented steps of:

under the control of the host computer,

embedding the font data and license type of the font file containing the font data in the document file; and

transmitting the document file with the embedded font data and license type to each of the remote computers; and

under the control of each of the remote computers,

receiving the transmitted document file;

retrieving the font data from the document file; and

processing the document data in the document file using the retrieved font data.

25. The method of claim 24 wherein the step of embedding the font data and license type of the font file containing the font data in the document file further comprises:

receiving a user request to embed the font data from the font file in the document file;

in response to receiving the user request to embed the font data, determining the license type of the font file containing the font data to be embedded;

after determining the license type,

when the license type is of a first type, retrieving all of the font data from the font file; and

when the license type is of a second type, retrieving only the font data relating to the document data from the font file; and

embedding the retrieved font data in the document file.

26. The method of claim 24 wherein each of the remote computers includes a remote font file, and, wherein, after the step of receiving the transmitted document file, further comprising:

determining whether the document data in the document file can be processed with the font data in the remote font file;

when the document data in the document file can be processed with the font data in the remote font file,

retrieving the font data from the remote font file; and

processing the document data using the retrieved font data; and

when the document data can not be processed with the font data in the remote font file,

retrieving the font data from the document file;

installing the retrieved font data at the remote computer; and

processing the document data using the installed font data.

27. The method of claim 24 further comprising:

under the control of each of the remote computers,

determining that the document data can not be processed without using the embedded font data;

determining whether the license type is of a first type or of a second type; and

after determining whether the license type is of a first type or of a second type,

retrieving the font data from the document file;

when the license type is of the first type, installing the retrieved font data permanently at the remote computer; and

when the license type is of the second type, installing the retrieved font data temporarily at the remote computer.

28. The method of claim 24 further comprising:

under the control of each of the remote computers,

receiving a user request to perform a function on the document data; and

after receiving the user request to perform the function on the document data,

when the license type is of a first type, performing the function; and

when the license type is of a second type,

determining whether the function is a permissible function; and

when it is determined that the function is a permissible function, performing the function.

29. The method of claim 24 further comprising:

under the control of each of the remote computers,

retrieving the font data from the document file;

storing the retrieved font data in a remote font file;

receiving a request from an application program to process the document data in the document file;

determining whether the application program requesting to process the document data using the font data is the same application program that generated the document data using that font data;

when it is determined that the application program is the same application program, allowing processing of the document data using the font data contained in the stored font file; and

when it is determined that the application program is not the same application program, allowing processing of the document data using the font data contained in a default font file.
 Description Submit all comments and votes
 


DESCRIPTION

1. Technical Field

The present invention relates generally to a computer method and system for making a document portable from one computer to another, and more particularly, to a computer method and system for making the document portable from one computer to another by embedding a font in the document.

2. Background of the Invention

For sometime now computing systems have supported the output of text using different fonts. A font is a complete collection of characters of a particular style and a particular size. Therefore, the output of text using a particular font produces text in a corresponding particular style. Common styles include Courier, Helvetica.TM., Times Roman.TM., Gothic, and Palatino.TM.. FIG. 1 illustrates the output of text in the Courier font. FIG. 2 illustrates the output of text in the Times Roman font.

FIG. 3 is a block diagram of an existing computer system 300 which allows a user of a remote computer 301 to display a document 304 previously created on a host computer 302. In order to create the document 304, the user of the host computer 302 invokes a word processing program 303. Next, the word processing program 303, upon user request, retrieves an available font list 305 which lists the fonts available for use on the host computer 302.

FIG. 4 is a block diagram of the available font list 305 of FIG. 3. As FIG. 4 illustrates, the example available font list 305 contains entries for the fonts: Courier, Helvetica, Times Roman, Century Gothic, and Palatino. These fonts are available for use on the host computer 302 (FIG. 3).

Returning to the discussion of FIG. 3, the user may select the Courier font entry from the available font list 305. In response, the word processing program 303 retrieves a Courier font file 306 corresponding to the selected Courier font entry from the available font list 305 from either a permanent storage device 307 or the host computer memory 315. One font file is stored on the permanent storage device for each font entry in the available font list 305.

The user then initiates creation of the document 304 using the retrieved Courier font file 306. In the process of creating the document 304, the word processing program 303 appends a font tag or identifier 308 to the document 304. The font identifier 308 uniquely identifies the Courier font as the font used to create the document 304. In addition to the Courier font, the document 304 may include graphics, two column text, or headers and footers, as desired. The user then formats the document 304. Typically, users can spend hours formatting documents.

Once the document 304 has been created, the user of the system 300 typically sends a request to the word processing program 303 to transfer the document 304 to the remote computer 301. This can be accomplished by a modem transfer or by use of a portable floppy disk or the like.

Once the remote computer 301 receives the document 304, it stores the document 304 in a permanent storage device 309. The user of the remote computer 301 then launches a word processing program 310. The word processing program 310, upon user request, retrieves the document 304 from the permanent storage device 309 and loads the document 304 in a remote computer memory 311 of the remote computer 301.

The word processing program 310 then retrieves the font identifier 308 of the document 304 and determines that the document 304 was created using a Courier font. Next, the word processing program 310 determines if the Courier font is listed as one of the available fonts in an available font list 312 shown in FIG. 5 of the word processing program 310. The available font list 312 lists the fonts available for use on the remote computer 301.

As FIG. 5 illustrates, the available font list 312 indicates that a Times Roman font, a Palatino font, and a Script font are the only fonts available for use on the remote computer 301. Therefore, the word processing program 310 determines that the Courier font is unavailable for use on the remote computer 301. If the Courier font identifier 308 had been listed as one of the available fonts in the available font list 312, then the word processing program 310 would have retrieved a corresponding Courier font file from the permanent storage device 309 and loaded the Courier font file into the remote computer memory 311 of the remote computer 301. The word processing program 310 would then have processed the document 304 using the retrieved Courier font file.

Since the Courier font identifier 308 was not listed as one of the available fonts in the available font list 312, the word processing program 310 retrieves a default font file 314 (i.e., a predesignated font file selected from one of the entries in the available font list 312) from the permanent storage device 309 and loads the default font file 314 into the remote computer memory 311 of the remote computer 301. The word processing program 310 then processes the document 304 using the default font file 314.

When the user of the remote computer 301 prints or otherwise visually displays the document 304 using the default font file 314, the user may find that the lines of the document 304 wrap at different characters, the soft page breaks are altered, and the headers and footers are in different positions than in the original document 304 when displayed on the host computer 302. Because the format used to reproduce the document 304 using the default font file 314 is different than the format used to reproduce the document 304 using the original font file 306, the document 304 reproduced using the default font file 314 can be difficult to read. Without access to the selected font file 306 (i.e., the Courier font) used to create the document 304, the user of the remote computer 301 has to spend extra time manually adjusting the document 304 so that it displays correctly. The need to spend extra time adjusting the format of a document is undesirable.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a method and system for processing documents on a remote computer using an embedded font that was used to create the document on a host computer.

A user of a host computer creates a document and embeds in the document itself a font file used to create the document. The user then transfers the document along with the embedded font file to a remote computer. The remote computer processes the document using the embedded font file. If the embedded font file contains a preview and print font, then the remote computer allows users to preview the document on a display screen and to print the document on a printer using the embedded font. However, the preview and print type of font does not allow the user to modify the document. If the embedded font file contains an editable type of font, then the remote computer allows the user to modify the document, save the modified document to an original file name, and print the modified document on the printer. However, the editable type of font does not allow the user to save the document under a file name different from the original file name.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of text printed in a Courier font.

FIG. 2 is a diagram of text printed in a TimesRoman font.

FIG. 3 is a block diagram showing a prior art system for processing documents with fonts.

FIG. 4 is a block diagram of the available font list of the host computer of FIG. 3.

FIG. 5 is a block diagram of the available font list of the remote computer of FIG. 3.

FIG. 6 is a block diagram of a system embodying the present invention for transporting and processing documents with embedded fonts.

FIG. 7 is a flow diagram of the function Host for the system of FIG. 6.

FIG. 8 is a flow diagram of the function Embed for the system of FIG. 6.

FIG. 9 is a flow diagram of the function Remote for the system of FIG. 6.

FIG. 10 is a flow diagram of the function LoadEmbeddedFont for the system of FIG. 6.

FIG. 11 is a flow diagram of the function InstallEmbeddedFont for the system of FIG. 6.

FIG. 12 is a flow diagram of the function ImplementFontType for the system of FIG. 6.

FIG. 13 is a flow diagram of the function ImplementPreviewAndPrintFont for the system of FIG. 6.

FIG. 14 is a flow diagram of the function ImplementEditableFont for the system of FIG. 6.

DETAILED DESCRIPTION OF THE INVENTION

The present invention overcomes the problems noted above with prior systems which processed documents on a remote computer using a default font. As shown in FIG. 6, the computer system 600 of the present invention embeds in the document 601 a selected font file 603 which was used to create the document so that when the document is transferred to a remote computer 602, the remote computer can display and print the document exactly as created--even when the remote computer did not previously have access to the font used to create the document.

In a preferred embodiment of the present invention four font types are provided: none, preview and print, editable, and installable. The "none" type of font does not allow font embedding. The "preview and print" type of font allows users to preview the document 601 on a display screen 604 used with the remote computer 602 and to print the document on a printer 605 using the same type of font used to create the document. However, the preview and print type of font does not allow the user to modify the document 601. The "editable" type of font allows the user to modify the document 601, save the modified document to an original file name, and print the modified document on the printer 605. However, the editable type of font does not allow the user to save the document 601 under a file name different from the original file name. The "installable" type of font provides all the flexibility of editable fonts and more. When the user of the system 600 opens a document with an installable font embedded within, the remote computer 602 determines if the embedded font is already installed on the remote computer 602. If the remote computer 602 finds that the embedded font is not already installed, then it permanently installs the embedded font on the remote computer 602. The newly installed font can be used with the document 601 as well as any other document accessible to the remote computer 602. For example, the newly installed font may be further embedded and transported with yet another document.

An example using FIG. 6 will illustrate the preferred method and system of the present invention.

Creating a Document

Initially, a user of the system 600 launches a word processing program 606 of a host computer 607. While the discussion herein refers to a word processing program 606, one of ordinary skill in the art will understand that any application program can be used (e.g., a presentation program, a desktop publishing program, or a spreadsheet program). Upon user request the word processing program 606 retrieves an available font list 608. The available font list 608 lists the fonts available for use on the host computer 607. The user then selects a font entry from the available font list 608. In response to the selection by the user, the word processing program 606 sends a request to an operating system 630 of the host computer 607 to retrieve the selected font file 603 from a permanent storage device 609 corresponding to the font entry selected from the available font list 608. The operating system 630 then loads the selected font file 603 in a host computer memory 610. The selected font file 603 includes a font identifier 611 which identifies the type of font and a font data section 612 which includes the font data.

Embedding a Font File

The word processing program 606, upon user request, creates the document 601 using the selected font file 603. Typically, the user then inputs a request to save the document 601 to the permanent storage device 609. In response to the save request the word processing program 606 queries the user on a display device 613 whether the word processing program 606 should embed the selected font file 603 in the document 601. If the user chooses not to embed the selected font file 603 in the document 601 then the word processing program 606 saves the document 601 on the permanent storage device 609.

If the user chooses to embed the selected font file 603 in the document 601 then the word processing program 606 invokes an embedder 616 stored in the host computer memory 610. In alternative embodiments the embedder 616 can be part of the operating system 630 or the word processing program 606. If the selected font file 603 is of a font type other than the preview and print font type, then the embedder 616 embeds the selected font file 603 in the document 601 to create a document 614 with an embedded font. The embedder 616 embeds the selected font file 603 at a first memory location after an ending memory location of the document 601. The first memory location after the ending memory location is indicated by an indicator 615A of a header section 615 of the document 614. Any well-known technique in the art for embedding one file in another file can be used to embed the selected font file 603 in the document 601 to create the document 614.

In the preferred embodiment, if the selected font file 603 is a preview and print type of font then the embedder 616 only embeds those characters from the selected font file 603 which were actually used to create the document 601. The preferred method for embedding the selected font file 603 in the document 601 is set forth in FIG. 8 and discussed in more detail below.

Transferring The Document With The Embedded Font File

Once the user creates the document 614 with the selected font file 603 embedded, the user typically transfers the document 614 to a remote computer 602. The remote computer 602 receives the transferred document 614 and stores the transferred document in a permanent storage device 617. The user, which may be a person different from the user that created the document 614, then launches a word processing program 618. The word processing program 618, upon user request, retrieves the document 614 from the permanent storage device 617, loads the document into a remote computer memory 619, and opens the document 614.

Next, the word processing program 618 determines if a font file is embedded in the document 614. If a font file is embedded in the document 614 then the word processing 618 determines if a font file of the type embedded in the document 614 is already accessible to the remote computer 602. The word processing program 618 makes this determination by retrieving the font identifier 611 from the document 614 stored in the remote computer memory 619 and comparing the font identifier against a list of available fonts in an available font list 620 of the word processing program 618. If the word processing program 618 determines that the selected font file 603 embedded in the document 614 has a corresponding font listed on the available font list 620, then the word processing program 618 processes the document 614 using a font file 621 stored on the permanent storage device 617 corresponding to the embedded font file 603 of the document 614. The selected font file 603 embedded in the document 614 need not be further used.

If the word processing program 618 determines that the selected font file 603 of the document 614 is not one of the fonts listed on the available font list 620, then the word processing program 618 uses the selected font file 603 embedded in the document 614 to process the document 614.

In order to use the selected font file 603 to process the document 614, the selected font file 603 must first be installed on the remote computer memory 619 so as to facilitate an implementation which ensures that the scope of the functions performed by the word processing program 618 are within the scope of the functions permitted by the type of the embedded font.

Installing The Embedded Font File

In order to help ensure that only permissible functions are performed, the word processing program 618 invokes an installer program 622 of an operating system 623 of the remote computer 602. While the discussion herein refers to a word processing program 618, one of ordinary skill in the art will understand that any application program can be used (e.g., a presentation program, a desktop publishing program, or a spreadsheet program). In a preferred embodiment of the present invention, the installer program 622 performs the steps of the method InstallEmbeddedFont, described below with more detail and shown in FIG. 11.

The installer program 622 retrieves the font identifier 611 of the selected font file 603 as embedded in the document 614 stored on the remote computer memory 619 and analyzes the font identifier 611 to determine if the font data section 612 contains an installable type of font. If the installer program 622 determines that the font file 603 contains an installable type of font, then the installer program 622 stores the selected font file 603 in a permanent directory 624 of the remote computer memory 619. The installer program 622 then adds the font identifier 611 of the selected font file 603 to the available font list 620 of the word processing program 618.

If the installer program 622 determines that the selected font file 603 contains a preview and print type of font or an editable type of font, then the installer program 622 sets a "hidden" bit equal to the value 1. The hidden bit indicates that the embedded font should not be listed on the available font list 620. In the preferred embodiment, if the hidden bit is set to 1 then only the application program that participates in the installation of the embedded font can later process the document 614 with the embedded font. After setting the hidden bit equal to the value 1, the installer program 622 copies the selected font file 603 to a temporary font file 629 and assigns a temporary name to the temporary font file 629. In the preferred embodiment, the temporary name is a name which does not suggest that the associated temporary file contains a font file.

The installer program 622 then copies the temporary font file 629 to a temporary directory 625 in the remote computer memory 619. The temporary directory 625 is not in the directory which stores the word processing program 618. By storing the selected font file 603 in the temporary font file 629 on the temporary directory 625, a user of the system 600 who navigates the remote computer memory 619 looking for the selected font file 603 will have difficulty locating the selected font file 603. By "hiding" the selected font file 603, the present invention helps prevent the user from using the selected font file 603 in ways outside the scope of its font type.

Processing The Document Using The Installed Font File

Once the installer program 622 has installed the selected font file 603 in the appropriate directory, either the permanent directory 624 or the temporary directory 625 of the remote computer memory 619, the word processing program 618 is then able to process the document 614 using the installed font. However, the processing capabilities of the word processing program 618 are limited by the type of font embedded in the document 614. In order to ensure that the scope of functions performed by the word processing program 618 are within the scope of functions permitted by the embedded font type identified by the font identifier 611 of the document 614, the word processing program 618 invokes an embedded font interface 626 of the operating system 623. In a preferred embodiment of the present invention, the embedded font interface 626 performs the steps of the method ImplementFontType, described below with more detail and shown in FIG. 12.

If the font identifier 611 indicates that the embedded font is a preview and print type of font, then the word processing program 618 performs normal processing until the user inputs a request to edit the document 614 or to close the document. In response to the request to edit the document 614, the word processing program 618 invokes the embedded font interface 626 of the operating system 623. The embedded font interface 626 preferably warns the user that the request to edit the document will lead to the deletion from the system of the font used to process the document. If the user invokes the edit request after the warning then the embedded font interface 626 deletes the temporary font file 629 from the temporary directory 625 in the remote computer memory 619. In response to the request to close the document the embedded font interface 626 deletes the temporary font file 629 from the temporary directory 625 and the temporary copy of the document 614 from the remote computer memory 619.

If the font identifier 611 indicates that the embedded font is an editable type of font, then the word processing program 618 performs normal processing until the user inputs a request to store the document 614 to a new file name. In response to store the document to the new file name, the word processing program 618 invokes the embedded font interface 626. In the preferred embodiment the embedded font interface 626 warns the user that the request to store the document to the new file name will lead to the deletion from the system of the font used to process the document. If the user invokes the store document to the new file name request after the warning then the embedded font interface 626 deletes the temporary font file 629 from the temporary directory 625 in the remote computer memory 619. In this way the embedded font is deleted from the remote computer 602, thus preventing the user from making use of the embedded font at a later time. In response to the request to close the document the embedded font interface 627 deletes the temporary font file 629 from the temporary directory 625 and the temporary copy of the document 614 from the remote computer memory 619.

If the font identifier 611 indicates that the embedded font is an installable type of font, then the word processing program 618 never invokes the embedded font interface 626 because the installable font type permits the word processing program 618 to perform its full range of processing functions on the document 614.

If no font was ever embedded in the document 614 then the word processing program 618 never invokes the embedded font interface 626. Instead, the word processing program 618 processes the document 614 using the prior art method described above with respect to FIGS. 1-5. In other words, the word processing program 618 retrieves a font identifier from the document 614 and determines if the remote computer 602 on which the document is to be processed contains a font file on the permanent storage device 617 which corresponds to the retrieved font identifier. If the permanent storage device 617 stores a corresponding font file, then the word processing program 618 processes the document 614 using the corresponding font file. If the permanent storage device 617 does not store the corresponding font file, then the word processing program 618 processes the document using a previously designated default font file.

Flow Diagrams:

FIG. 7 is a flow diagram of the method Host, preferably performed by the host computer 607, illustrating the preferred method of the present invention for embedding a selected font file 603 in the document 601 to form the transferred document 614 and transferring the document 614 with the selected font file 603 embedded therein, to the remote computer 602.

In step 701 of FIG. 7 the user of the system 600 invokes the word processing program 606. In step 702 the word processing program 606, upon user request, retrieves the available font list 608 of the word processing program 606. In step 703 the user selects a font list en