IP Library Granted Patent US 9,940,306
Granted Patent B2
US 9,940,306 · App. 14/867,355 · Granted Apr 10, 2018

Font loading system and method

Inventor: Bovard Tiberi (Bozeman, MT)
Assignee: Workiva Inc.
G06F17/214G06F17/212G06F17/30011G06F17/30902H04L67/42
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,940,306
App. No.
14/867,355
Granted
Apr 10, 2018
Kind
B2
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 (84)

1. On a computer comprising a display screen, a method for loading a font, the method comprising:

requesting a load of a font for a document;

receiving font information in response to the request;

determining 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:

drawing the viewable test character on the 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.

2. The method of claim 1 , wherein requesting the load of the font for the document comprises transmitting a request to a server for the load of the font.

3. The method of claim 2 , wherein transmitting a request to the server for the load of the font comprises executing a script that forms the request for the load of the font.

4. The method of claim 1 , further comprising:

transmitting, to a server, a request for the document; and

receiving the document from the server in response to the request.

5. The method of claim 1 , further comprising:

receiving, from a server, canvas draw instructions for the document; and

rendering the document on the display screen in accordance with the canvas draw instructions.

6. The method of claim 1 , further comprising, based on the determination that the drawn test character was in the font, generating a notification that the font was successfully loaded.

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

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.

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

(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).

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

10. The method of claim 1 , further comprising, based on the determination that the viewable test character is not included in the font information:

drawing a character on the display screen;

waiting for a predetermined amount of time; and

redrawing the character on the display screen.

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

12. A font loading system comprising a first device that carries out actions comprising:

receiving at least a portion of a document;

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;

loading 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, refraining from drawing the viewable test character.

13. The system of claim 12 , further comprising a second device that carries out actions comprising:

retrieving the document from a database;

extracting the font information from the document;

determining whether a valid test character in the font exists;

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

based on the determination that the valid test character in the font does not exist, refraining from including a valid test character in the font information; and

upon request of the first device, providing the at least a portion of the document and the font information to the first device.

14. The system of claim 13 , wherein the second device extracts the font information by scraping out the font information from a head filetag of the retrieved document.

15. The system of claim 13 , wherein the second device carries out actions comprising:

generating canvas draw instructions for the document; and

providing the canvas draw instructions to the first device.

16. A computer comprising a display screen, wherein the computer carries out actions comprising:

requesting a load of a font for a document;

receiving font information in response to the request;

determining 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:

drawing the viewable test character on the 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.

17. The computer of claim 16 , wherein the computer carries out further actions comprising, based on the determination that the drawn test character was in the fallback font:

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.

18. The computer of claim 16 , wherein the computer carries out further actions comprising, based on the determination that the drawn test character was in the fallback font:

(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).

19. The computer of claim 16 , wherein the computer carries out further actions comprising, based on the determination that the viewable test character is not included in the font information:

drawing a character on the display screen;

waiting for a predetermined amount of time; and

redrawing the character on the display screen.

20. The computer of claim 16 , wherein the computer carries out further actions comprising:

transmitting, to a server, a request for the document; and

receiving the document from the server in response to the request.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 15, 2019
From: SILICON VALLEY BANK
To: WORKIVA INC.; WORKIVA INTERNATIONAL LLC
Reel/Frame 050063/0536 →
FIRST SUPPLEMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 5, 2016
From: WORKIVA INC.; WORKIVA INTERNATIONAL LLC
To: SILICON VALLEY BANK
Reel/Frame 038361/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2015
From: TIBERI, BOVARD
To: WORKIVA INC.
Reel/Frame 036669/0270 →
Continuity (2)
Continuation 14332376 · Jul 15, 2014
Related Publication 20160019189A1 · Jan 21, 2016