如何通过ABCPDF获取嵌入式和引用字体的列表



i可以嵌入字体,添加(参考(字体,设置一个当前字体,但似乎就是它。

如何通过ABCPDF在PDF文件中获取嵌入式字体的列表?

我不认为ABCPDF提供了一种获取已经存在的PDF中字体列表的方法。只是没有任何实施。您需要在pdf内部知识中挖掘ObjectSoup

还有其他工具可以在PDF中列出字体,例如xpdf软件包中的PDFFONTS。

取决于您的场景,但我很幸运使用ABCPDF 10。

public IEnumerable<string> EmbeddedFonts
{
    get
    {
        return doc.ObjectSoup.Catalog.GetFonts()
          .Select(x => x.BaseFont).Where(x => 
             !x.StartsWith("Helvetica") && 
             !x.StartsWith("Times") && 
             !x.StartsWith("Zapf")).Distinct().OrderBy(x => x);
    }
}

您可以使用fontobject类。例如:

List<string> embeddedFonts = new List<string>();
List<string> referencedFonts = new List<string>();
FontObject[] fonts = doc.ObjectSoup.Catalog.GetFonts();
foreach (FontObject font in fonts) {
    if (font.EmbeddedFont == null) {
    referencedFonts.Add(font.BaseFont);
    } else {
    embeddedFonts.Add(font.BaseFont);
    }
}

最新更新