ein*_*lum 6 fonts windows-7 language cataloging i18n
字体(在 Windows 中但不只是在 Windows 中)通常不包含所有语言的字形。实际上,它们中的大多数只有一种语言的字形,或者更确切地说,一种字母。
我想列出我的系统上的所有字体(或至少所有字体系列),这些字体具有特定字母表的字形。我知道一些应用程序在内部执行此操作(例如 Adobe Photoshop),而其他应用程序执行此操作(例如 Microsoft Word 的拉丁语与复杂的区别)。我自己怎么能做到这一点?
笔记:
基于这个 StackOverflow 答案,我编写了这个 PowerShell 脚本:
\n\n$charId = [Int32][char]$args[0]\n[System.Reflection.Assembly]::LoadWithPartialName("PresentationCore") | Out-Null\n[System.Windows.Media.Fonts]::GetFontFamilies("C:\\Windows\\Fonts") | ForEach-Object {\n foreach ($face in $_.GetTypefaces()) {\n $glyph = $null\n $face.TryGetGlyphTypeface([ref]$glyph) | Out-Null\n if ($glyph -and $glyph.CharacterToGlyphMap.TryGetValue($charId, [ref]0)) {\n $_.Source.Split("#")[1]\n break\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n将其另存为带有扩展名的文件ps1;我叫它fonttest.ps1。
在 PowerShell 让您运行脚本之前,您需要执行Set-ExecutionPolicy Unrestricted -Scope CurrentUser. 然后你可以像这样运行它:
.\\fonttest.ps1 \xe4\xbd\xa0\nRun Code Online (Sandbox Code Playgroud)\n\n这.\\很重要,您需要位于保存脚本的同一目录中。最后一个字符是您想要测试所有字体的字符。您将获得具有该字符字形的所有字体系列的打印输出。在我的计算机上,上述命令产生了以下结果:
Microsoft JhengHei\nMicrosoft JhengHei UI\nMicrosoft YaHei\nMicrosoft YaHei UI\nYu Gothic\nMS Mincho\nMS PMincho\nDFKai-SB\nSimHei\nKaiTi\nSimSun\nNSimSun\nMeiryo\nMeiryo UI\nMS Gothic\nMS UI Gothic\nMS PGothic\nFangSong\nYu Mincho\nMingLiU\nPMingLiU\nMingLiU_HKSCS\nArial Unicode MS\nAdobe Fangsong Std\nAdobe Fan Heiti Std\nAdobe Heiti Std\nAdobe Kaiti Std\nKozuka Gothic Pro\nKozuka Mincho Pro\nAdobe Ming Std\nAdobe Song Std\nKozuka Gothic Pr6N\nKozuka Mincho Pr6N\nDengXian\nMicrosoft MHei\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |