我的 PDF 字体名称中多余的字符是什么?

问题描述 投票:0回答:2

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

string curFont = renderInfo.GetFont().PostscriptFontName;
c# visual-studio-2010 itext
2个回答
3
投票

有关说明,请参阅 PDF 规范 ISO 32000-1:2008: 第 9.6.4 节 字体子集

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

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

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


2
投票

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

有关说明,请参阅 PDF 规范 ISO 32000-1:2008: 第 9.6.4 节 字体子集

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.