我正在尝试使用下拉列表列出系统中的所有可用字体。主要是,我必须在下拉列表中显示Arial Bold
字体,我已在我的系统中安装了相同的字体。但问题是,我的字体Arial Bold
没有填入可用字体列表中。
代码
InstalledFontCollection installedFontCollection = new InstalledFontCollection();
var fontFamilies = installedFontCollection.Families;
foreach (FontFamily font in fontFamilies)
{
ddllblFontFamilyHead.Items.Add(font.Name);
}
我使用上述字体申请iTextSharp
PDF库来设计我的pdf内容。
将字体应用于PDF文件的代码
var fontHeader = FontFactory.GetFont(_label.SFontName == null ? "Arial" : _label.SFontName, BaseFont.CP1250, true, _label.SFontSize == null ? 10 : _label.SFontSize.Value, 0);
对此问题的任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
经过测试的解决方案
InstalledFontCollection fontCol = new InstalledFontCollection();
for (int x = 0; x <= fontCol.Families.Length-1;x++ )
{
listBox1.Items.Add(fontCol.Families[x].Name);
}
答案 1 :(得分:0)
iTextSharp中有一个名为FontFactory
的类。默认情况下,此类仅包含标准的Type 1字体,但您可以注册字体目录以添加更多字体。
例如:
FontFactory.RegisterDirectories();
RegisterDirectories()
方法将查看操作系统存储字体的所有常用目录。这不会捕获所有字体,但您可以添加其他目录,您知道有字体:
FontFactory.RegisterDirectory(myFontFolder);
然后,您可以获得注册字体的所有名称,如下所示:
foreach (String f in FontFactory.RegisteredFonts) {
listBox1.Items.Add(f);
}