FontInfos

DocumentBase.FontInfos property

提供对本文档中使用的字体属性的访问。

public FontInfoCollection FontInfos { get; }

评论

该字体定义集合按原样从文档中加载。 在某些文档中,字体定义可能是可选的、缺失的或不完整的。

请勿依赖此集合来确定文档中使用了特定字体。 您应该仅使用此集合来获取有关文档中可能使用的字体的信息。

例子

演示如何打印文档中存在的字体的详细信息。

Document doc = new Document(MyDir + "Embedded font.docx");

FontInfoCollection allFonts = doc.FontInfos;
// 打印文档中所有已使用和未使用的字体。
for (int i = 0; i < allFonts.Count; i++)
{
    Console.WriteLine($"Font index #{i}");
    Console.WriteLine($"\tName: {allFonts[i].Name}");
    Console.WriteLine($"\tIs {(allFonts[i].IsTrueType ? "" : "not ")}a trueType font");
}

演示如何保存嵌入 TrueType 字体的文档。

Document doc = new Document(MyDir + "Document.docx");

FontInfoCollection fontInfos = doc.FontInfos;
fontInfos.EmbedTrueTypeFonts = embedAllFonts;
fontInfos.EmbedSystemFonts = embedAllFonts;
fontInfos.SaveSubsetFonts = embedAllFonts;

doc.Save(ArtifactsDir + "Font.FontInfoCollection.docx");

if (embedAllFonts)
    Assert.That(25000, Is.LessThan(new FileInfo(ArtifactsDir + "Font.FontInfoCollection.docx").Length));
else
    Assert.That(15000, Is.AtLeast(new FileInfo(ArtifactsDir + "Font.FontInfoCollection.docx").Length));

也可以看看