2012-07-25 3 views
6

나는 CSS 아이콘 글꼴을 도와주는 간단한 도구를 만들고 있습니다.글꼴에 정의 된 문자를 어떻게 검색 할 수 있습니까?

현재 wingdings 스타일의 지정된 글꼴을 사용하며 모든 Unicode 번호에 대해 표준 시스템 글꼴 (예 : arial)을 사용하여 나란히 표시합니다 유니 코드 번호 33-255에서.

글꼴 및 문자 인코딩에 익숙한 사용자는 이미 추측 할 수 있으므로 이러한 장소는 대부분 비어 있습니다. 위의 예에서 알 수 있듯이이 글꼴에 실제로 표시 할 가치가있는 문자는 소수이며이 유니 코드 범위의 많은 문자는 기본 sans-serif 글꼴에도 표시되지 않습니다. . 이것은 중요한 물건이 아니며 모든 사용 가능한 문자가 어쨌든 표시되지만 순전히 호기심 때문에 어떤 문자가 글꼴로 표시되는지를 알 수있는 방법이 있는지 알고 싶습니다. 아무도 해결책을 안다면?

이상적으로는 원하는 언어를 사용하는 것이 가장 바람직합니다. 그러나 모든 솔루션은 가치가있을 것입니다.

호기심에 대한

, 기존 코드는 GitHub의에 최대입니다 :

Font Looper 나는 내가이 일 린 유지하고 의미하기 위해 노력하고있어, 플랫 파일 프리젠 테이션이 너무 많은 사람을 불쾌하게하지 않습니다 바랍니다.

+0

좋은 아이디어. 글꼴 루퍼에 행운을 빌어 요. 죄송합니다. 도움을받을 수 없지만 그게 마음에 든다. –

답변

3

찾고있는 정보가 CMAP 글꼴 표에 있다고 생각합니다. 나는 글꼴에 대한 전문가는 아니지만, 제 생각에 CMAP 테이블은 유니 코드 포인트를 글리프 인덱스에 매핑합니다. 따라서 유니 코드 포인트에 매핑 된 글리프가없는 경우 글꼴이 해당 문자를 지원하지 않는다고 가정 할 수 있습니다.

여기에 내가 WPF 미디어 라이브러리를 사용하여 발견 된 일부 샘플 C# 코드입니다 :

var fontFamilies = System.Windows.Media.Fonts.GetFontFamilies(@"C:\Windows\Fonts\Arial.ttf"); 

foreach (var family in fontFamilies) 
{ 
    foreach (var typeface in family.GetTypefaces()) 
    { 
     var glyph = null as System.Windows.Media.GlyphTypeface; 

     if (typeface.TryGetGlyphTypeface(out glyph)) 
     { 
      foreach (var kvp in glyph.CharacterToGlyphMap) 
      { 
       Console.WriteLine(kvp.Key.ToString() + " : " + kvp.Value.ToString()); 
      } 
     } 
    } 
} 

이 당신에게 얼마나 많은 도움 몰라,하지만 당신은 어떤 언어/솔루션이 도움이 될 것이라고 말 했는가.

PresentationCore.dll 어셈블리의 일부인이 클래스는 모두 System.Windows.Media namespace에서 찾을 수 있습니다.

+1

이것은 매우 흥미 롭습니다. 감사합니다. – daveyfaherty

관련 문제