Haskell TrueType font parser.
Go to file
2024-12-11 12:50:19 +01:00
fonts Get missing width for the font metrics 2024-02-13 09:16:14 +01:00
lib/Graphics Get missing width for the font metrics 2024-02-13 09:16:14 +01:00
src Add an option for dumping a single table 2024-02-06 12:14:07 +01:00
test Add Fixed32 numeric instances 2024-02-11 18:50:25 +01:00
.gitignore Get missing width for the font metrics 2024-02-13 09:16:14 +01:00
CHANGELOG.md Create a Metrics module 2024-02-04 11:07:15 +01:00
fountainhead.cabal Update for GHC 9.8 2024-12-11 12:50:19 +01:00
LICENSE Initial commit 2023-03-13 10:51:25 +01:00
README.md Get missing width for the font metrics 2024-02-13 09:16:14 +01:00

TrueType font parser

Fountainhead is a TrueType and OpenType font parser. Its main purpose is to extract information from the fonts to help to embed these fonts into PDF documents. It also supports dumping font information to the screen.

There is also an executable to dump fonts.

Installation

Add the library as dependency to your project. Alternatively build an executable with:

cabal build

The binary can be run with:

cabal run fountainhead -- myfont.ttf

or installed locally and executed just as:

fountainhead myfont.ttf

This command will output the contents of the font in a format similar to ttfdump from TeXLive.

See

fountainhead --help

for help.

Usage

TrueType and OpenType fonts consist of a sequence of tables and various informations about the font are encoded in these tables. There are both required and optional tables. The first table is a font directory and it describes the overall structure of the font, what tables it contains and at what offset other tables can be found.

This library doesn't parse the whole font at once. The font directory has to be parsed first and can be used then to parse further tables as needed.