IP Library Granted Patent US 9,148,494
Granted Patent B1
US 9,148,494 · App. 14/332,376 · Granted Sep 29, 2015

Font loading system and method in a client-server architecture

Inventor: Bovard Tiberi (Ames, IA)
Assignee: Workiva Inc.
H04L67/42G06F17/212G06F17/214
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 9,148,494
App. No.
14/332,376
Granted
Sep 29, 2015
Kind
B1
Abstract

Disclosed herein is a system and related method for downloading fonts associated with a document in a client-server architecture. On a client side the client is: receiving some of the document to reproduce; retrieving fonts needed to display a page of the document on the client device by: requesting a font loader to load a requested font; determining if the font is loaded by: determining a valid test character of the font that is a viewable character; attempting to draw the test character in a small portion of a display screen of the client device; recording a width of the drawn character; determining that the test character was written in the requested font if its character width is not equal to zero; and determining that the test character was written in a fallback font if its character width is equal to zero.

Claims (87)

1. A method for downloading fonts associated with a document in a client-server architecture, comprising:

on a server comprising a server processor:

parsing the document;

extracting information for reconstructing the document on a client device, including at least font information associated with the document, wherein the font information comprises a font usable to display a page of the document on the client device;

determining whether a valid test character in the font exists, wherein the valid test character is a viewable character;

based on the determination that the valid test character in the font exists, including the valid test character in the font information;

based on the determination that the valid test character in the font does not exist, the valid test character is not included in the font information; and

storing the extracted information in a database;

on the client device that is connected to the server via a network connection:

receiving some or all of the document;

receiving the font information associated with the document;

requesting a processor to load the font included in the font information;

determining whether the valid test character is included in the font information;

based on the determination that the valid test character is included in the font information:

drawing the valid test character on a display screen of the client device;

recording a width of the drawn test character;

determining that the drawn test character was in the font if the width of the drawn test character is not equal to zero; and

determining that the drawn test character was in a fallback font if the width of the drawn test character is equal to zero;

based on the determination that the valid test character is not included in the font information, not drawing the valid test character.

2. The method of claim 1 , wherein based on the determination that the drawn test character was in the font, the method further comprises generating, on the client device, a notification that the font was successfully loaded.

3. The method of claim 1 , wherein based on the determination that the drawn test character was in the fallback font, the method further comprises:

(a) redrawing the valid test character on the display screen;

(b) recording a width of the redrawn test character;

(c) determining whether the width of the redrawn test character is equal to zero; and

(d) based on the determination that the width of the redrawn test character is equal to zero, repeating (a) to (c).

4. The method of claim 3 , wherein based on the determination that the width of the redrawn test character is equal to zero after repeating (a) to (c) of claim 3 for a predetermined number of times, the method further comprises generating, on the client device, a notification that the font failed to load.

5. The method of claim 1 , wherein based on the determination that the valid test character is not included in the font information, the method further comprises:

drawing a character on the display screen;

waiting for a predetermined amount of time; and

redrawing the character on the display screen.

6. The method of claim 1 , wherein the drawing of the valid test character comprises drawing the valid test character on an invisible portion of the display screen.

7. A method carry out by a client device, the method comprising:

receiving at least a portion of a document stored on a server;

receiving font information associated with the document, wherein the font information comprises a font usable to display a page of the document;

determining whether a viewable test character in the font is included in the received font information;

requesting a processor to load the font;

based on the determination that the viewable test character in the font is included in the received font information:

drawing the viewable test character on a display screen;

recording a width of the drawn test character;

determining that the drawn test character was in the font if the width of the drawn character is not equal to zero;

determining that the drawn test character was in a fallback font if the width of the drawn test character is equal to zero; and

based on the determination that the viewable test character is not included in the font information, not drawing the viewable test character.

8. The method of claim 7 , wherein based on the determination that the drawn test character was in the font, the method further comprises generating a notification that the font was successfully loaded.

9. The method of claim 7 , wherein based on the determination that the drawn test character was in the fallback font, the method further comprises:

redrawing the viewable test character on the display screen;

recording a width of the redrawn test character;

determining whether the width of the redrawn test character is equal to zero; and

based on the determination that the width of the redrawn test character is not equal to zero, determining that the redrawn test character was in the font.

10. The method of claim 7 , wherein based on the determination that the drawn test character was in the fallback font, the method further comprises:

(a) redrawing the viewable test character on the display screen;

(b) recording a width of the redrawn test character;

(c) determining whether the width of the redrawn test character is equal to zero; and

(d) based on the determination that the width of the redrawn test character is equal to zero, repeating (a) to (c).

11. The method of claim 10 , based on the determination that the width of the redrawn test character is equal to zero after repeating (a) to (c) of claim 10 for a predetermined number of times, the method further comprises generating a notification that the font failed to load.

12. The method of claim 7 , wherein based on the determination that the viewable test character is not included in the font information, the method further comprises:

drawing a character on the display screen;

waiting for a predetermined amount of time; and

redrawing the character on the display screen.

13. The method of claim 7 , wherein the drawing of the viewable test character comprises drawing the viewable test character on an invisible portion of the display screen.

14. An electronic device comprising:

a receiver that receives at least a portion of a document stored on a server and receives font information associated with the document, wherein the font information comprises a font usable to display a page of the document;

a display screen; and

a processor electronically coupled to the receiver and the display screen, the processor:

determines whether a viewable test character in the font is included in the received font information;

based on the determination that the viewable test character in the font is included in the received font information:

draws the viewable test character on a display screen;

records a width of the drawn test character;

determines that the drawn test character was in the font if the width of the drawn character is not equal to zero; and

determines that the drawn test character was in a fallback font if the width of the drawn test character is equal to zero; and

based on the determination that the viewable test character is not included in the font information, does not draw the viewable test character.

15. The electronic device of claim 14 , wherein based on the determination that the drawn test character was in the font, the processor further generates a notification that the font was successfully loaded.

16. The electronic device of claim 14 , wherein based on the determination that the drawn test character was in the fallback font, the processor further:

redraws the viewable test character on the display screen;

records a width of the redrawn test character;

determines whether the width of the redrawn test character is equal to zero; and

based on the determination that the width of the redrawn test character is not equal to zero, determines that the redrawn test character was in the font.

17. The electronic device of claim 14 , wherein based on the determination that the drawn test character was in the fallback font, the processor further:

(a) redraws the viewable test character on the display screen;

(b) records a width of the redrawn test character;

(c) determines whether the width of the redrawn test character is equal to zero;

(d) based on the determination that the width of the redrawn test character is equal to zero, repeats (a) to (c).

18. The electronic device of claim 17 , wherein based on the determination that the width of the redrawn test character is equal to zero after repeating (a) to (c) of claim 17 for a predetermined number of times, the processor further generates a notification that the font failed to load.

19. The electronic device of claim 14 , wherein based on the determination that the viewable test character is not included in the font information, the processor:

draws a character on the display screen;

waits for a predetermined amount of time; and

redraws the character on the display screen.

20. The electronic device of claim 14 , wherein the processor draws the viewable test character on an invisible portion of the display screen.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Aug 15, 2019
From: SILICON VALLEY BANK
To: WORKIVA INC.; WORKIVA INTERNATIONAL LLC
Reel/Frame 050062/0928 →
CHANGE OF NAME Recorded Mar 23, 2015
From: WORKIVA LLC
To: WORKIVA INC.
Reel/Frame 035247/0092 →
SECURITY AGREEMENT Recorded Oct 17, 2014
From: WORKIVA LLC; WORKIVA INTERNATIONAL LLC
To: SILICON VALLEY BANK
Reel/Frame 034013/0098 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2014
From: TIBERI, BOVARD
To: WORKIVA LLC
Reel/Frame 033337/0342 →