Я анализирую файл PDF и извлекаю часть текста, и я столкнулся с ситуацией, когда я сталкиваюсь со словарем шрифтов с именем "C2_0", который содержит CIDFont (Тип 0) с ToUnicode
CMap,Итак, нет проблем - у меня есть инструменты для синтаксического анализа ToUnicode
CMap и сопоставления 2-байтовых кодов символов со значениями Unicode.
Но позже файл PDF включает в себя еще один объект словаря шрифтов,который также называется C2_0, который содержит другой ToUnicode
CMap.Я не совсем понял, как мне обращаться со вторым CMap, поэтому я только угадал и объединил записи из обоих CMap.Это на самом деле сработало, и правильно извлек текст.
Но я не могу найти в справочном руководстве PDF ничего, что говорит, что это разрешено, или даже разрешает эту ситуацию.Я бы подумал, что повторяющиеся имена шрифтов приведут к неопределенному поведению, или, по крайней мере, вторые переопределят первый или что-то еще.Я только попытался объединить их как длинное предположение - и был удивлен, что на самом деле это сработало.Кто-нибудь знает, разрешено ли в PDF иметь дубликаты имен шрифтов, которые ссылаются на разные объекты с разными CMaps, которые «объединяются» при вызове оператором Tf
?