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):
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ßtSystem Pogrubiona
nach, dass Informationen. 2) Auf der anderen Seite habe ich eineSystem 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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die JVM nicht unbedingt die Schriftarten auf Ihrem System installiert, Es wird ausgeliefert mit eigenen Schriftarten mit, die Sie sehen auf
Für Sie eine schriftart verwenden, die mit der JVM, die Sie benötigen, erstellen Sie die Schriftarten und fügen Sie Sie in das Verzeichnis oberhalb oder fügen Sie das Verzeichnis mit den neuen fonts, die der Klasse Weg.
Alternativ können Sie das Paket Schriften mit Ihrer jar-Archiv-Datei, Download-Schriftarten, die hier
oder die Microsoft true Type fonts.
Ja, JVM enthält nicht alle Schriftarten. Sie müssen installieren Sie die core-fonts manuell.
Wenn Sie unter Linux dann das sollte Hilfe Sie :
können Sie versuchen, diese?, und sicherzustellen, dass Sie die neueste JDK-7
Entnehmen Sie bitte dieser Seite.
Es gibt zwei Typen von Schriftarten.
1. Physikalische schriftart
2. Logische schriftart
Java-font-Dokumentation
Man einige Windows-Maschinen gibt es zwei Schaltflächen für die Installation von Schriftarten: Installieren Sie Für Mich und Für Alle Benutzer Installieren. Java listet nur die fonts für alle Benutzer installiert.