如何在Java(和其他)中确定"FI"的Ligature

ben*_*rre 5 java pdf character-encoding ligature

我们有一个解析PDF文件的系统,并将内部文本拉出来进行索引等.我们遇到的一个问题是Illustrator设置包含"fi"的单词以使用fi的单一字形(单字形).

比如这条线......

"长凳和丰富的陶瓷瓷砖."

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

"ete bench and rich vitri\u001Fed瓷砖."

看来\ u001F是Adobe PDF文件用于连字"fi"的字符代码.我显然可以将"u"的出现替换为"fi",但是有人知道一种强有力的方法来处理这种情况吗?

iPD*_*dev 4

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