This repository was archived by the owner on Dec 1, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
This repository was archived by the owner on Dec 1, 2025. It is now read-only.
Download missing fonts at runtime #13
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Continuation of Fontconfig work started on #8.
Android devices have some fonts installed. List varies.
PDF expects a list of 14 fonts:
- Monospace: Courier, Courier Bold, Courier Oblique, Courier Bold-Oblique
- Sans-Serif: Helvetica, Helvetica Bold, Helvetica Oblique, Helvetica Bold-Oblique
- Serif: Times Roman, Times Bold, Times Italic, Times Bold-Italic
- Symbol
- Zapf Dingbats
Symbol and Zapf Dingbats were not found on tested devices, but they are quite small (both totalling under 100kb), so were included in this library in commit 8dd1207
Most fonts have (metrically compatible ??) replacement fonts available on the device. Keyword being "most", Courier (monospace) only has base verson, but not bold or oblique (italic ??).
TODO:
- At app runtime go through the base14 font list and check if font provided by Fontconfig has the right properties: serif, sans-serif, monospace, bold, italic
- Research if this check can be done by querying Fontconfig functions or another alternative needed.
- Already linking against libFontforge, can use it to visually measure how wide the letters are to determine if font is monospace. https://stackoverflow.com/questions/34511603/check-whether-a-font-is-monospaced
- Research if "Android font download" infrastructure can provide actual .ttf/.otf whatever else files or is it only Java/Kotlin objects that are not available for C++ apps.
- If "Android font download" is unusable - download from fonts.google.com.
- Generate fontconfig rule for newly downloaded font.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request