Como posso listar fontes com glifos para um alfabeto específico (no Windows)?

6

Fontes (no Windows, mas não apenas) geralmente não contêm glifos para todos os idiomas. Na verdade, a maioria deles tem apenas glifos para um idioma, ou melhor, um alfabeto.

Eu quero listar todas as fontes no meu sistema (ou pelo menos todas as famílias de fontes) que possuem glifos para um alfabeto específico. Eu sei que alguns aplicativos fazem isso internamente (por exemplo, o Adobe Photoshop) e outros tipos de tarefas (por exemplo, a distinção entre o Microsoft eo Latin vs Complex). Como posso fazer isso sozinho?

Notas:

  • Estou especificamente interessado em hebraico, mas minha pergunta é para o caso geral.
  • Se isso ajudar, suponha que eu tenha o Cygwin instalado.
por einpoklum 31.01.2015 / 09:59

1 resposta

2

Com base em esta resposta do StackOverflow , eu escrevi este script do PowerShell:

$charId = [Int32][char]$args[0]
[System.Reflection.Assembly]::LoadWithPartialName("PresentationCore") | Out-Null
[System.Windows.Media.Fonts]::GetFontFamilies("C:\Windows\Fonts") | ForEach-Object {
 foreach ($face in $_.GetTypefaces()) {
  $glyph = $null
  $face.TryGetGlyphTypeface([ref]$glyph) | Out-Null
  if ($glyph -and $glyph.CharacterToGlyphMap.TryGetValue($charId, [ref]0)) {
   $_.Source.Split("#")[1]
   break
  }
 }
}

Salve como um arquivo com extensão ps1 ; Eu chamei de fonttest.ps1 .

Antes que o PowerShell permita a execução de scripts, você precisará fazer Set-ExecutionPolicy Unrestricted -Scope CurrentUser . Então você pode executá-lo assim:

.\fonttest.ps1 你

O .\ é importante e você precisará estar no mesmo diretório de onde salvou o script. Esse último caractere é o que você deseja testar todas as fontes. Você obterá uma impressão de todas as famílias de fontes que possuem um glifo para esse caractere. No meu computador, o comando acima produziu isso:

Microsoft JhengHei
Microsoft JhengHei UI
Microsoft YaHei
Microsoft YaHei UI
Yu Gothic
MS Mincho
MS PMincho
DFKai-SB
SimHei
KaiTi
SimSun
NSimSun
Meiryo
Meiryo UI
MS Gothic
MS UI Gothic
MS PGothic
FangSong
Yu Mincho
MingLiU
PMingLiU
MingLiU_HKSCS
Arial Unicode MS
Adobe Fangsong Std
Adobe Fan Heiti Std
Adobe Heiti Std
Adobe Kaiti Std
Kozuka Gothic Pro
Kozuka Mincho Pro
Adobe Ming Std
Adobe Song Std
Kozuka Gothic Pr6N
Kozuka Mincho Pr6N
DengXian
Microsoft MHei
    
por 11.01.2016 / 18:17