我正在尝试从 PDF 中包含的嵌入式真字体文件中提取 UTF-8 字符值。有人知道这样做的方法吗?PDF 中的值可能类似于 '2%dd! w!|<~' 这将在由 TTF 中的相应字形表示的 PDF 中以“Hello World”结尾。我希望能够在这里提取 wchar 值。这可能吗?TTF 中是否存在每个字符的 UTF-8 值?
问问题
1000 次
2 回答
2
字形 ID 并不总是对应于 Unicode 字符值 - 特别是对于使用大量连字和变体字形形式的非拉丁脚本,其中字形和字符之间没有一对一的对应关系。
只有标记的 PDF 文件存储 Unicode 文本 - 否则您可能必须从字体中的字形名称重构字符。如果使用的字体具有根据 Adobe 的字形命名约定或Adobe 字形列表规范命名的字形,则这是可能的- 但许多字体,包括标准 Windows 字体,不遵循此命名约定。
于 2012-07-30T10:29:05.083 回答
0
UTF-8 是一种编码,它允许对 UTF8 编码的流进行解码以显示一系列 unicode 字符点。在任何情况下,PDF 都不使用 UTF-8 进行编码。对于真类型文本,每个字形使用 8 位编码。
解码:
- 从字体定义中读取差异数组和编码
- 一次读取 8 位,并使用在步骤 1 中读取的编码和差异数组生成“AdobeGlyphId”。
- 使用 adobe 字形 id 查找 unicode 值
这在 PDF 规范的第 9.10 节中有详细说明
于 2012-07-20T07:58:56.513 回答