CGPDFScanner - \x15 символ во время сканирования
Я пытаюсь извлечь текст страницы 5 в формате PDF.
PDF имеет шрифт YLJAAA+CMSY10, который не имеет отображений (CMap) или даже кодировок (кодировка по умолчанию или /Differences).
При извлечении текста после строки "tetex package" CGPDFScanner возвращает символ "\x15", который встречался много раз.
Когда этот символ встречается, текущий шрифт является вышеупомянутым шрифтом, который не имеет ничего для извлечения текста из строки PDF. Что это за символ \ x15?
Благодарю.
1 ответ
Я нашел 2 (не "много") вхождения этого:
[ (\025) ] TJ
это число в восьмеричном - это число, которое \x15
в шестнадцатеричном формате.
Определение шрифта для "YLJAA+CMSY10" в PDF не содержит специальной кодировки, поэтому у него есть кодировка по умолчанию для "CMSY" ("Современный компьютерный символ"):
114 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont 210 0 R % -> "/YLJAAA+CMSY10"
/FirstChar 0
/FontDescriptor 211 0 R
/LastChar 127
/Widths 204 0 R
>>
211 0 obj
<<
/Ascent 750
/CapHeight 683
/CharSet (/bullet/greaterequal/arrowright/arrowdblright/element/negationslash/backslash/radical)
/Descent 0
/Flags 4
/FontBBox [ -29 -960 1116 775 ]
/FontFile 205 0 R
/FontName 210 0 R % -> '/YLJAAA+CMSY10'
/ItalicAngle -14
/StemV 85
/XHeight 430
>>
endobj
Само по себе это все еще не говорит ничего определенного: производитель PDF может по желанию переупорядочивать глифы и кодировки, если он делает то же самое со встроенным шрифтом). Предполагая, что набор шрифтов не переупорядочен, проверка случайного списка кодировок CMxx показывает, что код символа 0x1F
вполне может быть БОЛЬШЕ, ЧЕМ ИЛИ РАВНЫМ (Unicode U+2265).
Акробат соглашается; проверка шрифта в PDF показывает, что код символа 21
(десятичное число) называется "БОЛЬШЕ, ЧЕМ ИЛИ РАВНЫМ" и выглядит так же.