CGPDFStringGetBytePtr возвращает неверную строку при сканировании pdf

У меня есть один PDF, и я пытаюсь сканировать PDF с помощью CGPDFScanner. При сканировании PDF, когда встречается слово "файл", CGPDFStringGetBytePtr API возвращает "\x02le". PDF имеет шрифт Type1 и не имеет ToUnicodeMapping(CMap). Словарь кодирования отсутствует в PDF, поэтому используется кодировка NSUTF8String. Тем не менее, я пробовал все NSMacOSRomanStringEncoding, NSASCIIStringEncoding, но не повезло. В чем может быть проблема?

Благодарю.

1 ответ

Решение

Код \x02 соответствует строке 'fi'. Последовательность 'fi' нарисована с использованием лигатуры, поэтому у вас есть только один код символа.
Соответствие между кодом и строкой осуществляется в кодировке шрифта. Кодировка шрифта содержит массив /Differences, который определяет отображение между кодом \x02 и последовательностью 'fi'

Другие вопросы по тегам