假设我有一个包含一个或多个嵌入字体的PDF文件。以下是我对单个字符如何呈现的理解:
- 首先,确定字符使用的字体。
- 使用嵌入在PDF中的字体"cmap"来确定给定字符的字体字形名称。例如,PDF文本中的"&"字符可能映射到字体内部称为"ampersand"的字形。
- 使用字体的"glyph"表来确定字形名称的边界框/绘制指令。
我的问题是:PDF cmap通常一致吗?换句话说,如果我在PDF中遇到字符"&",我可以确信cmap将始终将"&"映射到ampersand字形吗?还是某些PDF生成软件创建了自己的任意字符代码和字形名称映射(这将是相当邪恶的,并可能破坏在PDF中搜索和文本选择)?
当然,我意识到cmap可能使用不直观的映射-我想知道,在现实世界中是否真的会发生这种情况?
我的具体用例是在音乐字体领域。我正在分析PDF中的字符,以确定每个字符代表哪个音乐字形(例如,高音谱号,音符头等)。我想知道字体名称和字符代码的组合始终会产生相同的字形的确信程度。例如,如果我知道字体名称为"Opus",字形为"#",我可以假设它将始终映射到高音谱号字形吗?还是我必须分析字形的度量,以确保它实际上是高音谱号?