Warum ist diese Schriftart in Java so groß?

8

Ich versuche, OpenDyslexic als eine Schriftartoption in einer Swing-Anwendung zu verwenden. Aber überraschenderweise sieht OpenDyslexic bei gleicher Punktgröße viel größer aus als jede andere Schriftart, auch wenn es in anderen Anwendungen normal aussieht. Ich habe eine Handvoll anderer OpenType-Schriften ausprobiert und sie sehen nicht besonders groß oder klein aus. Warum ist OpenDyslexic in Java so groß und wie kann ich Java dazu bringen, es normal zu skalieren, sodass ich die Größe von OpenDyslexic nicht speziell anpassen muss?

Auf Oracle JRE (ich habe 1.7.0_11, 1.7.0_15 und die neueste Version 1.7.0_21) auf allen Betriebssystemen versucht, ist die Schriftart zu groß, wenn Java die Schriftartdatei mit Font.createFont lädt. Wenn ich die Schriftart jedoch im Betriebssystem installiere, ist das Verhalten auf allen drei Plattformen anders:

  • Unter Linux funktioniert die Installation der Schriftart in ~/.fonts nicht. Der Screenshot sieht vor der Installation der Schriftart und nach der Installation gleich aus.
  • Unter Windows wird durch die Installation der Schriftart die Schriftart Glyphe korrigiert, aber die Schriftart Abstand ist immer noch zu groß! Siehe Screenshot unten.
  • In OS X wird durch die Installation der Schriftart das Problem behoben! Es sieht unter OS X wie eine normalgroße Schriftart aus.

Update : Interessanterweise zeigt OpenJDK (sowohl das 7u21 Ubuntu-Paket in Linux als auch das obuildfactory-Build unter OS X) nicht den Fehler. Die 15pt OpenDyslexic 'm' ist 15px breit auf OpenJDK, wie es sein sollte, sowohl wenn die Schriftart aus Datei erstellt wird und wenn die Schriftart vom Betriebssystem behandelt wird. Der Fehler ist in der neuesten Oracle JRE, aber nicht in der neuesten OpenJDK.

Hier ist mein Beispielprogramm. Beachten Sie, dass Sie die OpenDyslexic Dateien in Ressourcen / einfügen müssen, um es auszuprobieren. Alternativ installieren Sie OpenDyslexic in Ihrem System und nehmen den registerFonts() -Aufruf heraus.

%Vor%     
yonran 16.05.2013, 20:03
quelle

1 Antwort

1

Nicht jede Java-Version unterstützt OpenType (vgl. diese Übersicht ). Wenn Sie ohne einige der OpenType-Funktionen leben können, wäre die einfachste Lösung, die Schriftartdatei in TTF zu konvertieren. Es scheint ein paar kostenlose Online-Optionen zu geben, die Ihnen dabei helfen löst Ihr Problem Sie können immer noch in professionelle Software investieren, um möglicherweise bessere Ergebnisse zu erzielen.

    
Tilo 21.05.2013, 17:18
quelle