我需要枚举所有已安装字体的附注名称。
例如:
foreach (FontFamily item in FontFamily.Families)
{
listBox1.Items.Add(item.Name);
}
这只会给出实际的字体名称。但我需要找到后记名称。
例如:对于字体“Arial Black” - 1. 实际字体名称是“Arial Black” 2. PostScript 名称为“Arial-Black”
提前致谢, 詹姆斯
编辑:
- @plinth 实际上,我是从PDF中读取字体名称并加载相应的系统字体。在这种情况下,PDF 的字体名称为“Arial-Black”(后脚本名称)。我如何相应地从系统(Arial Black)加载字体......想法??
所以,理想的方法应该是从安装的字体中读取后记名称
- 将“-”替换为“”不是合适的解决方案,因为可能还有其他字体名称,例如“Arial-Bold”、“Time New Roman - PSMT”等。
最佳答案
您可以直接在 PostScript 中进行。执行这个:
%!PS
/FS { findfont exch scalefont setfont } bind def
% gets page boundaries
clippath pathbbox newpath
/var_TopOfPage exch def
/var_RightOfPage exch def
/var_BottomOfPage exch def
/var_LeftOfPage exch def
% helvetica is almost always there
12 /Helvetica FS
0 setgray
% set start position
var_LeftOfPage var_TopOfPage 30 sub moveto
/pos var_TopOfPage 20 sub def
GlobalFontDirectory {
var_LeftOfPage pos moveto
/FontName get 70 string cvs show
/pos pos 20 sub def
pos 0 le {
showpage
/pos var_TopOfPage 20 sub def
} if
} forall
showpage
%%EOF
我已经能够使用此代码找出打印机的可用字体。
希望对你有所帮助。
关于c# - 查找所有已安装字体的后记名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5579593/