IP Library Granted Patent US 10,055,386
Granted Patent B2
US 10,055,386 · App. 14/256,101 · Granted Aug 21, 2018

Using server side font preparation to achieve WYSIWYG and cross platform fidelity on web based word processor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,055,386
App. No.
14/256,101
Granted
Aug 21, 2018
Kind
B2
Abstract

A system and method is illustrated for platform-independent rendering of a document in a web browser supporting a two-dimensional (2D) canvas. The system and method includes obtaining the document, wherein the document includes text characters, text elements, and associated style information including at least one font, determining that font metrics do not exist, and obtaining the font metrics for the at least one font, using the font metrics and the text elements to determine how the document is divided into page criteria, determining a font file does not exist, and obtaining the font file for the at least one font, and rendering the document by drawing glyphs associated with the text characters in the 2D canvas, using the font file and the page criteria, so that the at least one font and the page criteria are platform-independent.

Claims (74)

1. A computer implemented method for platform-independent rendering of a document in a web browser supporting a two-dimensional (2D) canvas, comprising:

obtaining from a server that includes a document repository and a fonts system the document, wherein the document includes text characters, text elements, and associated style information including at least one font;

parsing the document to identify at least one tag that groups a segment of text characters;

determining that font metrics associated with the segment of text characters do not exist;

obtaining from the fonts system the font metrics for the at least one font, wherein the font metrics identify at least a rendering position and a width of the segment of text characters;

using the font metrics and the text elements to determine how the document is divided into page criteria;

determining whether a font file associated with the segment of text characters exists;

in the event the font file associated with the segment of text characters does not exist, obtaining from the fonts system the font file for the at least one font;

in the event the font file associated with the segment of text characters does exists:

determining whether the font file of the web browser matches the font file from the fonts system;

in the event the font file of the web browser does not match the font file from the fonts system, obtaining from the fonts system the font file for the at least one font; and

rendering the document by drawing glyphs associated with the text characters in the 2D canvas, using the font file and the page criteria, so that the at least one font and the page criteria are platform-independent.

2. The method of claim 1 , wherein the text elements include at least one of paragraphs, spans, and the text characters.

3. The method of claim 2 , wherein the page criteria include at least one of glyphs, text runs, lines, and pages.

4. The method of claim 3 , wherein using the font metrics and the text elements to determine how the document is divided into the page criteria includes:

based on the font metrics and the style information, converting the text characters into the glyphs;

based on the spans and the glyphs, generating the text runs; and

based on the text runs, calculating a position of each of the glyphs within the lines and the pages on the 2D canvas.

5. The method of claim 1 , wherein the font file has information associated with glyphs defined for the at least one font.

6. The method of claim 1 , wherein for each of the glyphs, the font metrics are derived from the font file and include glyph geometry comprising height and weight.

7. The method of claim 1 , wherein obtaining the document includes:

obtaining a font list including the at least one font from the server;

obtaining default font metrics and a default font file associated with a default font of the font list from the server; and

obtaining the document from the server.

8. The method of claim 1 , wherein the font metrics are specified using eXtensible Markup Language (XML).

9. The method of claim 1 , wherein obtaining the font file for the at least one font includes retrieving the font file for the at least one font from a server through the use of a URL.

10. A system comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

obtain a document from a document repository residing on a server, wherein the document includes text characters, text elements, and associated style information including at least one font, wherein the server includes a fonts system;

store the document;

parse the document to identify at least one tag that groups a segment of text characters;

determine that font metrics associated with segment of text characters do not exist;

obtain from the fonts system the font metrics for the at least one font, wherein the font metrics identify at least a rendering position and a width of the segment of text characters;

use the font metrics and the text elements to determine how the document is divided into page criteria;

determine whether a font file associated with the segment of text characters exists;

in the event the font file associated with the segment of text characters does not exist, obtain the font file for the at least one font;

in the event the font file associated with the segment of text characters does exists:

determine whether the font file of the web browser matches the font file from the fonts system;

in the event the font file of the web browser does not match the font file from the fonts system, obtain from the fonts system the font file for the at least one font; and

render the document by drawing glyphs associated with the text characters in a two-dimensional (2D) canvas using the font file and the page criteria, so that the at least one font and the page criteria are platform-independent.

11. The system of claim 10 , wherein the text elements include at least one of paragraphs, spans, and the text characters.

12. The system of claim 11 , wherein the page criteria include at least one of text runs, lines, and pages.

13. The system of claim 12 , wherein use the font metrics and the text elements to determine how the document is divided into the page criteria comprises:

based on the font metrics and the style information, convert the text characters into the glyphs;

based on the spans and the glyphs, generate the text runs; and

based on the text runs, calculate a position of each of the glyphs within the lines and the pages on the 2D canvas.

14. The system of claim 10 , wherein the instructions further cause the processor to:

obtain a font list including the at least one font from the server;

obtain default font metrics and a default font file associated with a default font of the font list from the server; and

a document retrieving module to obtain the document from the server.

15. The system of claim 10 , wherein obtain the font file for the at least one font includes retrieve the font file for the at least one font from the server through the use of a URL.

16. A machine-readable medium for platform-independent rendering of a document in a web browser supporting a two-dimensional (2D) canvas, the machine-readable medium including instructions embodied in a tangible, non-transitory, computer readable storage medium and comprising computer instructions for:

obtaining from a remote server that includes a document repository and a fonts system the document, wherein the document includes text characters, text elements, and associated style information including at least one font;

parsing the document to identify at least one tag that groups a segment of text characters;

determining that font metrics associated with the segment of text characters do not exist;

obtaining from the fonts system the font metrics for the at least one font, wherein the font metrics identify at least a rendering position and a width of the segment of text characters;

using the font metrics and the text elements to determine how the document is divided into page criteria;

determining whether a font file associated with the segment of text characters exists;

in the event the font file associated with the segment of text characters does not exist, obtaining from the fonts system the font file for the at least one font;

in the event the font file associated with the segment of text characters does exists:

determining whether the font file of the web browser matches the font file from the fonts system;

in the event the font file of the web browser does not match the font file from the fonts system, obtaining from the fonts system the font file for the at least one font; and

rendering the document by drawing glyphs associated with the text characters in the 2D canvas, using the font file and the page criteria, so that the at least one font and the page criteria are platform-independent.

17. The machine-readable medium of claim 16 , wherein the text elements include at least one of paragraphs, spans, and the text characters.

18. The machine-readable medium of claim 17 , wherein the page criteria include at least one of text runs, lines, and pages.

19. The machine-readable medium of claim 18 , wherein using the font metrics and the text elements to determine how the document is divided into the page criteria includes:

based on the font metrics and the style information, converting the text characters into the glyphs;

based on the spans and the glyphs, generating the text runs; and

based on the text runs, calculating a position of each of the glyphs within the lines and the pages on the 2D canvas.

20. The machine-readable medium of claim 16 , wherein obtaining the document includes:

obtaining a font list including the at least one font from the server;

obtaining default font metrics and a default font file associated with a default font of the font list from the server; and

obtaining the document from the server.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2014
From: XIN, WANG
To: EMC CORPORATION
Reel/Frame 032706/0618 →