我可以嵌入字体,添加(引用)字体,设置当前字体,但似乎就是这样。
如何通过abcpdf获取pdf文件中的嵌入和引用字体列表?
答案 0 :(得分:1)
我不认为ABCpdf提供了一种获取现有PDF中字体列表的方法。没有任何实现。您需要了解PDF内部知识,了解ObjectSoup
。
还有其他工具可以列出PDF中的字体,例如xpdf
包中的pdffonts。
答案 1 :(得分:1)
取决于你的情况,但我很幸运使用它与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);
}
}
答案 2 :(得分:0)
您可以使用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);
}
}