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