Recht gehabt: Die Endianness war die Ursache für die nicht angezeigten Buchstaben.
Lösung:
Ich habe die Font Files mit einem Hex-Editor geöffnet (auf dem Mac kann ich Hex Fiend empfehlen) und von den ersten vier 32-bit-Wörtern jeweils die Byte-Order umgedreht. Ein Beispiel: Wenn in der Originaldatei die ersten 4 32-bit-Worte so aussehen:
1A 00 00 00 | 61 00 00 00 | 22 00 00 00 | 32 00 00 00
Dann sollte die resultierende Datei wie folgt beginnen:
00 00 00 1A | 00 00 00 61 | 00 00 00 22 | 00 00 00 32
Daraus ergibt sich ein zweites Problem: in der Zeile
PHP-Code:
$c_wid = fread($handle,11);
Werden nur 11 Bytes eingelesen, das heisst, die "22" aus obigem Beispiel wird nicht mehr mitgelesen. Ändern der Zeile in
PHP-Code:
$c_wid = fread($handle,12);
also 12 Bytes lesen behebt dieses Problem und die Buchstaben werden schön angezeigt. Dem Autor habe ich schon einen Kommentar hinterlassen, dem Maintainer der sr_freecap Extension schreibe ich gleich noch eine Mail - vielleicht kann man das in zukünftigen releases ja automatisieren oder zumindest darauf hinweisen