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