Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - Read & Preview Font

Tags:

c#

fonts

Can I read and preview fonts (mainly ttf and otf) in C#? What other languages can/should I use?

Read:

  • Info like font family, font name

Preview:

  • Use the font to display some text
  • Any way to display all supported font characters?
like image 958
iceangel89 Avatar asked Jul 27 '09 09:07

iceangel89


1 Answers

Caution: don't use System.Drawing / System.Windows.Forms if you want to preview OTF fonts. Unless they're TTF's in disguise, you won't get them to show. System.Drawing, based on GDI+, only supports TTF fonts!

However, if you can use .NET 3.0, you could use

Fonts.GetFontFamilies(location)

from System.Windows.Media namespace (just reference PresentationCore.dll).

From a FontFamily, you can get the individual Typefaces (.ttc files contain more than one 'font', but a FontFamily also combines the various weights and variants). And from a Typeface, you can call TryGetGlyphTypeface to get the GlyphTypeface, which has a CharacterToGlyphMap property, which should tell you which unicode codepoints are physically supported.

It also seems possible to use GlyphTypeface directly, but I see no way that you can handle .ttc files. However, if that's not relevant, just create a GlyphTypeface per file.

I'd advice against trying all Unicode codepoints sequentially though.

like image 57
Ruben Avatar answered Sep 26 '22 19:09

Ruben