Après plusieurs heures de recherche, j'ai appris certaines choses sur les fontes :
Les caractères sont décris dans des fichiers *.mf (MetaFont) dans un langage nommé MetaFont. Je suppose que c'est du vectoriel.
Dans un fichier DVI, il n'y a que des références : aucun dessin de caractère. Cependant, ces références sont déjà bien positionnées (coordonnées x,y) sur la feuille. L'exécutable tex (ou latex) a donc besoin de connaître les espacements à respecter entre les différents caractères pour positionner les caractères dans le DVI. Pour cela, il va lire les fichiers *.tfm (TeX Font Metric) des fontes utilisées. Ces fichiers *.tfm sont générées à partir des codes source *.mf : si une fonte est utilisée pour la première fois, on voit défiler plein de lignes : c'est la génération des *.tfm manquants.
Dans la création du document imprimable (je prends l'exemple d'un document PostScript en 600 dpi), dvips a besoin d'inclure les dessins des caractères en 600 dpi là où le fichier DVI ne contenait que des références. Les images bitmap des caractères sont stockées dans des fichiers *.600pk (Packed) qui sont simplement des fichiers *.600gf (Generic Font) compressés pour économiser de l'espace disque. Cette compression a l'air ridicule de nos jours : gzip est plus efficace et les fichiers *.600gf qui sont en N&B sont déjà très petits. Ces fichiers *.600gf sont générées à partir des codes source *.mf : si une fonte est utilisée pour la première fois par dvips, on voit défiler plein de lignes : c'est la génération des *.600gf manquants, puis compactés en *.600pk pour le stockage dans /var.
En fait, ce que j'aimerais, c'est extraire les images des fichiers *.600gf, ou au moins être capable de comprendre la structure de ces fichiers pour réaliser l'extraction moi-même.