3

从pdf中提取字体名称时,我会得到一些垃圾字符,后跟加号,然后是带有字体样式的字体名称。我想删除垃圾字符。只有少数 pdf 我得到垃圾字符。示例:MMLPEO+RemingtonNoiseless

string curFont = renderInfo.GetFont().PostscriptFontName;
4

2 回答 2

3

有关解释,请查看PDF 规范ISO 32000-1:2008的第 9.6.4 节字体子集

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

示例 EOODIA+Poetica 是 Poetica® 子集的名称,一种 Type 1 字体。

因此,这些字符不是junk,它们是tag

于 2013-05-16T07:01:25.123 回答
2

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

有关解释,请查看PDF 规范ISO 32000-1:2008的第 9.6.4 节字体子集

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

示例 EOODIA+Poetica 是 Poetica® 子集的名称,一种 Type 1 字体。

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

于 2013-05-16T06:56:05.033 回答