提问者:小点点

我的PDF字体名称中的额外字符是什么?


从pdf中提取字体名称时,我会得到一些垃圾字符,然后是加号,然后是带有字体样式的字体名称。我想删除垃圾字符。只有少数pdf我得到了那个垃圾字符。例子:MMLPEO RemingtonNois无声

string curFont = renderInfo.GetFont().PostscriptFontName;

共2个答案

匿名用户

有关解释,请参阅PDF规范第9.6.4节字体子集ISO32000-1:2008:

对于字体子集,字体的PostScript名称——字体的BaseFont条目和字体描述符的FontName条目的值——应以标签开头,后跟加号()。标签应恰好由六个大写字母组成;字母的选择是任意的,但同一PDF文件中的不同子集应具有不同的标签。

示例EOODIA Poetica是Poetica®的子集的名称,这是一种类型1字体。

因此,这些字符不是垃圾,它们是一个标签。

匿名用户

“垃圾”字符表示字体没有完全嵌入。您会发现ABC123 RemingtonNois的名称、XYZ456 RemingtonNois的名称等…这意味着在PDF中可能有相同字体的不同子集。

有关解释,请参阅PDF规范第9.6.4节字体子集ISO32000-1:2008:

对于字体子集,字体的PostScript名称——字体的BaseFont条目和字体描述符的FontName条目的值——应以标签开头,后跟加号()。标签应恰好由六个大写字母组成;字母的选择是任意的,但同一PDF文件中的不同子集应具有不同的标签。

示例EOODIA Poetica是Poetica®的子集的名称,这是一种类型1字体。

换句话说:这些字符不仅仅是“垃圾”。如果你想删除它们,那是显而易见的,只需使用适当的字符串操作方法,但要注意删除它们会丢弃在某些情况下可能有用的信息。