Font Loading System Using Test Character Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Efficient font loading for documents, particularly PDF fonts, is challenging due to incomplete and non-standardized font sets, leading to difficulties in accurate display on client devices.
Innovation Solution
A system and method for downloading fonts in a client-server architecture that involves parsing documents to extract font information, storing it on a server database, and using a font loader to ensure proper font loading on client devices by testing with valid characters and fallback fonts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If fonts are downloaded and collected quickly for display, then document display speed is improved, but font loading accuracy deteriorates due to incomplete and non-standardized font sets
Solution Approach 1:
The system performs preliminary actions by extracting font information from the document on the server side before transmission, storing it in a database, and preparing font loading instructions in advance. This allows the client to efficiently load only the specific fonts needed for the document without waiting for font discovery and loading during display, thus improving speed while maintaining accuracy through pre-validated font information.
Solution Approach 2:
The patent introduces an intermediary font information extraction and storage mechanism between the document source and the client display. The server extracts font metadata, creates font loading instructions, and stores them in a database, acting as an intermediary that prepares and validates font information before it reaches the client. This intermediary process ensures font loading accuracy while enabling efficient client-side execution.
2Measurement precision
If font information is extracted and stored on server, then font loading accuracy is improved, but system complexity increases
Solution Approach 1:
The patent extracts font information from the complete document structure, separating font metadata from the actual document content. By taking out only the essential font information (font names, character sets, encoding) and storing it independently in a database, the system achieves high font information accuracy without proportionally increasing overall system complexity. The extraction focuses only on necessary font attributes.
Solution Approach 2:
The system segments the font loading process into distinct components: font information extraction on the server, font metadata storage in a database, font loading instructions generation, and client-side font loading execution. This segmentation allows each component to be optimized independently, managing complexity through modular architecture while maintaining high font information accuracy through dedicated extraction and validation processes.
3Measurement precision
If test characters are drawn to verify font loading, then font loading verification accuracy is improved, but display processing time increases
Solution Approach 1:
The system applies partial action by drawing only a single test character (or a limited set of test characters) to verify font loading, rather than rendering complete document content or testing all possible characters. This partial verification provides sufficient font loading confirmation with minimal processing time overhead, achieving adequate verification accuracy without excessive time loss.
Solution Approach 2:
The test character drawing uses a disposable, temporary rendering approach where a minimal test element is drawn, verified, and then discarded. The test character serves its purpose of confirming font loading functionality and is then removed or overwritten by the actual document content. This disposable verification method provides necessary validation with negligible time cost compared to full document rendering.
Data Source
AI summary
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.


