Das Laden einer TrueType-Schriftart aus einer TTF-Datei in Java führt zu einer FontFormatException: Der Name der Schriftart wurde nicht gefunden

Ich versuche, eine java.awt.Font-Instanz aus einer TTF-Datei auf meinem System zu erstellen, aber nur einige Schriftarten können fehlerfrei geladen werden. Der folgende Code ist ein Testcode, den ich online gefunden habe. Wenn es auf meinem System ausgeführt wird, können 285 Schriftarten erfolgreich geladen werden (z. B. Arial.ttf), bei 83 Schriftarten schlägt dies jedoch fehl (z. B. AmericanTypewriter.ttf).

Alle Fehler sind von der FormFontFormatException: Font name not found ohne eingebettete Ursache.

Gibt es bekannte Probleme mit java.awt.Font und der Formatkompatibilität? Ich kann nach vielem Googeln nichts mehr finden.

public static void main(String[] args) {
        String rootPath = "/Library/Fonts";

        File root = new File(rootPath);
        if (root.canRead()) {
            String[] fontFiles = root.list();

            Font font = null;
            for (String fontFile : fontFiles) {
                try {
                    System.out.println(fontFile);
                    font = Font.createFont(Font.TRUETYPE_FONT, new File(root + "/" + fontFile));
                    System.out.println(font);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

Meine Umgebung ist Java 7, OS X Mavericks (10.9.1).

java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

Jede Hilfe hier wäre sehr dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage