【问题标题】:Programmatic extraction of Unicode character values from True type font file in C/C++从 C/C++ 中的 True 类型字体文件中以编程方式提取 Unicode 字符值
【发布时间】:2012-07-18 19:34:33
【问题描述】:

我正在尝试从 PDF 中包含的嵌入式真字体文件中提取 UTF-8 字符值。有人知道这样做的方法吗? PDF 中的值可能类似于 '2%dd! w!|

【问题讨论】:

    标签: pdf utf-8 truetype


    【解决方案1】:

    字形 ID 并不总是对应于 Unicode 字符值 - 特别是对于使用大量连字和变体字形形式的非拉丁文字,其中字形和字符之间没有一对一的对应关系。

    只有标记的 PDF 文件存储 Unicode 文本 - 否则您可能必须从字体中的字形名称重构字符。如果使用的字体具有根据 Adob​​e 的字形命名约定或Adobe Glyph List Specification 命名的字形,则这是可能的 - 但许多字体(包括标准 Windows 字体)不遵循此命名约定。

    【讨论】:

    • 那么在不遵循标准字形命名约定的情况下,没有OCR就无法获取每个characterId的unicode值?
    【解决方案2】:

    UTF-8 是一种编码,它允许对 UTF8 编码的流进行解码以显示一系列 unicode 字符点。在任何情况下,PDF 都不使用 UTF-8 进行编码。对于真类型文本,每个字形使用 8 位编码。

    解码:

    1. 从字体定义中读取差异数组和编码
    2. 一次读取 8 位,并使用在步骤 1 中读取的编码和差异数组生成“AdobeGlyphId”。
    3. 使用 adobe 字形 ID 查找 unicode 值

    这在 PDF 规范的第 9.10 节中有详细说明

    【讨论】:

      猜你喜欢
      • 2012-02-04
      • 2019-03-18
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      相关资源
      最近更新 更多