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 (десятичное число) называется "БОЛЬШЕ, ЧЕМ ИЛИ РАВНЫМ" и выглядит так же.

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