abcpdf - 重用PDF中的现有字体

时间:2014-01-06 00:15:28

标签: c# pdf fonts abcpdf

我想知道是否可以重复使用已嵌入PDF的现有字体。我问这个是因为当我添加一个我想用于PDF的字体时,它看起来好像已经多次添加到PDF文件中了:

enter image description here

我似乎无法通过它的名称搜索字体。我正在嵌入字体:

Doc theDoc = new Doc();
theDoc.Read("existing-pdf-file.pdf");
int FONT_MyriadPro = theDoc.EmbedFont("Myriad Pro");
theDoc.Font = FONT_MyriadPro;
theDoc.AddText("Example");

我注意到FONT_MyriadPro变量的值为61,所以我认为可以引用其他现有字体。但我能知道字体是什么吗? Doc对象中似乎没有任何字体集合。

1 个答案:

答案 0 :(得分:3)

文档本身可能包含不同的字体。这些不能通过XFont.FindName方法访问,但您可以通过查看文档ObjectSoup找到它们。

在某种程度上,文档中的字体可能会被重用。然而,在不能合理地重用它们的状态下找到字体并不罕见。例如,字体子集通常会删除您可能希望使用的关键字符。

在大多数情况下,最好使用全局可用的字体,你知道它不会被破坏。

稍后,如果您希望合理化文档中可能存在的多个字体子集,则可以使用ReduceSizeOperation来执行此操作。