5

我们有一个系统可以解析 PDF 文件并提取其中的文本以进行索引等。我们遇到的一个问题是 Illustrator 设置包含“fi”的单词以使用 fi 的连字(单个字形)。

例如这条线...

“长凳和丰富的玻璃化瓷砖。”

在我的 Java 调试器中显示如下

“ete 长凳和丰富的 vitri\u001Fed 瓷砖。”

\u001F 似乎是 Adob​​e PDF 文件用于连字“fi”的字符代码。我显然可以将 \u001F 的出现换成“fi”,但有人知道处理这种情况和类似情况的可靠方法吗?

4

1 回答 1

4

在 PDF(TJ、Tj 等)中用作“显示文本”运算符的操作数的字节序列应使用图形状态下活动字体的编码和与该字体关联的 ToUnicode cmap 转换为文本。一些字体包括一个 ToUnicode cmap,它将 0x001F 代码(或它用于字形的任何代码)映射到字符“f”和“l”。其他字体使用带有 /Differences 数组的编码,该数组将代码 0x1F 映射到字符 /fl。必须处理这些结构以获得正确的结果。

于 2012-04-26T06:39:23.477 回答