Java kann nicht alle installierten fonts im system

Ich haben eine Liste aller verfügbaren Schriftarten im system durch aufrufen von

    GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
    Font[] fontNames = graphicsEnvironment.getAllFonts();
    for (Font s : fontNames) {
        System.out.println(s);
    }

Auf der Konsole kann ich sehen, viele fonts, aber die Liste sieht sehr unvollständig. Zum Beispiel: Mein OS installiert hat, das "System" - Schrift, aber in der Ausgabe die ich nicht sehen kann, die Schrift:

...
java.awt.Font[family=Sylfaen,name=Sylfaen,style=plain,size=1]
java.awt.Font[family=Symbol,name=Symbol,style=plain,size=1]
java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=1]
...

Installierten Schriftarten (sorry für die polnische OS):
Java kann nicht alle installierten fonts im system

Warum ist das so?

Andere Sache ist, dass in WordPad kann ich unter "System" - Schrift. Aber in MS Word 2010 - "System" - schriftart nicht verfügbar ist.

Das problem ist nicht mit diesem "System" - Schrift. Es gibt mehrere Schriftarten installiert, aber fehlt in Java.

BEARBEITEN:
Warum bin ich wohl? Meine Anwendung verwenden BIRT-Report-Designer zu generieren .rpt-Dateien mit berichten-Vorlagen. Als Nächstes verwende ich diese Dateien zum Rendern von Swing Komponenten wie JLabel, JTextField usw..
Hauptproblem ist: der Anwender kann den Bericht erstellen mit Feldern, die die Verwendung der schriftart, die Java-Swing nicht umgehen kann.

Den Teil der xml-Beispieldatei generiert BIRT:

<property name="fieldName">Blablabla{Label}</property>
<property name="fontFamily">"System"</property>
<property name="fontSize">16pt</property>

Unseren Kunden requirment gibt an, dass die Schrift kann nicht unterscheiden zwischen den generierten Bericht und Java-swing-Komponenten.

Was ich tun möchte, ist entweder Griff alle system-fonts in Java oder ausschließen BIRT Schriften, die java nicht verarbeiten kann.

  • Aus Interesse, nicht graphicsEnvironment.getAvailableFontFamilyNames() Gegenzug eine vollständige Liste?
  • Nein, tut es nicht.
  • können Sie testen, mit oder du kann so registrieren Sie eine neue Schriftart aus Java dann kann man sehen, ob alle CP1250/1 forts korrekt installiert sind, in Native OS
  • Ich denke, dass GraphicsEnvironmen gibt alle gültigen Schriften, sondern in WisOS wird alles möglich
  • Das Programm von mKorbel link nicht render-System-font eingestellt.
  • standardmäßig gab es keine differencies, wichtige info ist, dass MsOffice nicht sehen, diese schriftart zu, es gibt zwei Möglichkeiten, re_install Schrift in der nativen os, register schriftart in Java nur
  • Seine eine frische Installation von Windows 7. Ich muss wissen, Ursache des Problems, nicht diese Schrift.
  • Auf meinem computer diese schriftart ist nicht eine ttf-schriftart wie andere, aber hat die .fon-Erweiterung. Könnte das das problem sein?
  • Ja, vielleicht. Ich werde dem nachgehen. Ich sehe eine Menge von Bewertungen, die in google nach ".fon java"
  • "Ich sehe eine Menge von Bewertungen, die in google nach ".fon java"' Google ignoriert Zeichen, wie . damit die Suche sollte sich Holen, was Sie mit beiden font & Java! Zeigen Sie auf einige Seiten, die tatsächlich enthalten die Zeichenfolge .fon zusammen mit Java.
  • Die font-Familien, die Gegenwart ausschließlich in getAllFonts() sind keine physikalischen Schriften, das heißt, Sie sind nicht die schriftart-Dateien auf Ihrem computer. Sie sind Schrift-Familien, die in jeder Java-Implementierung, und zugeordnet zu physikalische Schriften. Logische Schriften sind die fünf font-Familien definiert, die von der Java-Plattform, die unterstützt werden müssen, die von jedem Java-Laufzeitumgebung: Serif, SansSerif, Monospaced, Dialog und DialogInput. Diese logischen Schriften sind nicht die tatsächlichen font-Bibliotheken. Stattdessen wird die schriftart-Namen zugeordnet sind, die physikalischen Schriften, die von der Java-Laufzeitumgebung.
  • Alle Implementierungen der Java-Plattform muss die Unterstützung von TrueType-Schriftarten, Unterstützung für andere font-Technologien, ist von der Implementierung abhängig.
  • Gehe ich Recht in der Lesung, die unteren Teil des Bildes zu sagen dein system hat 236 Schriftarten? Wie viele nicht-Java-Karte? Auf meinem Windows-system-Bildschirm zeigt 244 Schriften, während Java-Berichte 265. Einmal 5 logischen Schriften werden entfernt, es wird 260 (16 mehr als können die Dateien in Windows-Verzeichnis). Beachten Sie auch, dass: 1) Ihr System Schrift heißt System Pogrubiona nach, dass Informationen. 2) Auf der anderen Seite habe ich eine System Bold Schrift hier, die ist in Windows sichtbar, aber nicht Java.
  • BTW - dieser Seite deutet darauf hin, dass BIRT bettet Schriftarten standardmäßig. Ich schlage vor, Sie blicken in das.

InformationsquelleAutor kukis | 2014-03-27
Schreibe einen Kommentar