列出系统

时间:2017-01-04 06:02:18

标签: c# pdf fonts itext

我正在尝试使用下拉列表列出系统中的所有可用字体。主要是,我必须在下拉列表中显示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);

对此问题的任何帮助都将受到高度赞赏。

2 个答案:

答案 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);
}