2009-07-27 11 views
4

Kann ich Schriftarten (hauptsächlich ttf und otf) in C# lesen und in der Vorschau sehen? Welche anderen Sprachen kann/sollte ich verwenden?C# - Lesen & Vorschau Schriftart

lesen:

  • Info wie Schriftfamilie, Schriftname

Vorschau:

  • Verwenden Sie die Schrift etwas Text
  • Jede Art und Weise angezeigt werden alle unterstützten Schriftart angezeigt werden Figuren?

Antwort

10

Vorsicht: Verwenden Sie nicht System.Drawing/System.Windows.Forms, wenn Sie wollen, um eine Vorschau OTF-Schriften. Es sei denn, sie sind TTF verkleidet, Sie werden sie nicht zeigen zu zeigen. System.Drawing, basierend auf GDI +, unterstützt nur TTF-Schriftarten!

Wenn Sie jedoch .NET 3.0 verwenden können, könnten Sie

Fonts.GetFontFamilies(location) 

von System.Windows.Media Namespace (nur Referenz PresentationCore.dll) verwenden.

Von einem Fontfamily, können Sie die einzelnen Schrift s (.ttc Dateien enthalten mehr als eine ‚font‘, sondern ein Fontfamily verbindet auch die verschiedenen Gewichte und Varianten) erhalten. Und von einem Schrift, können Sie TryGetGlyphTypeface rufen Sie die GlyphTypeface, zu erhalten, die eine CharacterToGlyphMap Eigenschaft hat, die Sie sollten sagen, die Unicode-Codepoints physisch unterstützt.

Es scheint auch möglich, GlyphTypeface direkt zu verwenden, aber ich sehe keine Möglichkeit, dass Sie .ttc-Dateien verarbeiten können. Wenn dies jedoch nicht relevant ist, erstellen Sie einfach ein GlyphTypeface pro Datei.

Ich würde dagegen raten, alle Unicode-Codepunkte sequenziell zu versuchen.

+0

danke. Ich werde mich darum kümmern. Es ist eher ein persönliches Projekt, also kann ich jeden Rahmen verwenden, den es gibt. ich bevorzuge die neueste – iceangel89

+0

hast du ttf gemeint, wenn du ttc sagst? – iceangel89

+0

Nein, .ttc-Dateien sind sogenannte TrueType-Collection-Dateien. Sie enthalten mehrere Schriftarten in einer Datei. Zum Beispiel Cambria.ttc, die Cambria Regular und Cambria Regular Math enthält. – Ruben

1

Um eine Schriftart eine Vorschau Sie es heraus in eine Form wie dieses machen kann:

public partial class MyForm: Form 
{ 
    . 
    . 
    . 
    public void ShowMyFont() 
    { 
     Graphics graphics = this.CreateGraphics(); 
     graphics.DrawString("Hello world!", new Font("Arial", 12), Brushes.Black, 0, 0); 
    } 
} 
+1

Ich glaube Originalplakat bedeutete Vorschau nicht installierte Schriftarten - dh. aus Datei. – leafnode