Этот класс описывает правила которые можно использовать для настройки процесса копирования данных кодировки для случаев когда символьный шрифт TrueType имеет более одной кодировки. Некоторые документы PDF после преобразования в формат PDF/A могут иметь ошибку Более одной кодировки в cmap символического шрифта TrueType. В чем причина этой ошибки Все символьные шрифты TrueType имеют специальную таблицу cmap в своих внутренних данных. Эта таблица сопоставляет коды символов с индексами глифов. И эта таблица может содержать различные подтаблицы кодировок которые описывают используемые кодировки. Дополнительную информацию о таблицах cmap см. на странице https//developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html. Обычно таблица cmap содержит несколько подтаблиц кодирования но стандарт PDF/A требует чтобы для этого шрифта в документе PDF/A была оставлена только одна подтаблица кодирования 30. И ключевой вопрос здесь - какие данные нужно взять из других подтаблиц чтобы скопировать в таблицу кодирования назначения 30 Большинство шрифтов имеют правильно сформированные таблицы cmap где каждая подтаблица кодирования полностью согласуется с другой подтаблицей. Но некоторые шрифты имеют таблицы cmap с коллизиями - где например одна подтаблица имеет индекс глифа 100 для юникода 100 а другая подтаблица имеет индекс глифа 200 для того же юникода 100. Для решения этой проблемы нужна специальная стратегия. По умолчанию используется следующая стратегия Ищется Mac subtable10. Если эта таблица найдена только эти данные используются для заполнения таблицы назначения 30. Если подтаблица Mac не найдена то все подтаблицы кроме 30 повторяются и используются для копирования данных в подтаблицу назначения 30. Также сопоставление для каждого юникода юникода индекса глифа копируется в целевую таблицу только в том случае если в целевой таблице нет этого юникода в текущий момент. Так например если первая подтаблица имеет индекс глифа 100 для юникода 100 а следующая подтаблица имеет глиф индекс 200 для того же юникода 100 только данные из первой подтаблицы unicode 100 индекс глифа 100 будет скопирован. Таким образом каждая предыдущая подтаблица имеет приоритет над следующей. Свойства этого классаPdfASymbolicFontEncodingStrategy./pdfasymbolicfontencodingstrategyпомогают настроить поведение по умолчанию. Если свойствоPreferredCmapEncodingTable./pdfasymbolicfontencodingstrategy/preferredcmapencodingtableтипаCMapEncodingTableType./pdfasymbolicfontencodingstrategy.queueitem.cmapencodingtabletype то соответствующая подтаблица будет использоваться в приоритете над подтаблицей Mac10. Значение MacTable из перечисления CMapEncodingTableType./pdfasymbolicfontencodingstrategy.queueitem.cmapencodingtabletypeв данном случае не имеет смысла потому что указывает на та же подтаблица Mac 10 которая будет использоваться по умолчанию. СвойствоCmapEncodingTablesPriorityQueue./pdfasymbolicfontencodingstrategy/cmapencodingtablespriorityqueueотбрасывает все приоритеты для любой подтаблицы. Если установлено это свойство то в указанном порядке будут использоваться только подтаблицы из объявленной очереди. Если указанные подтаблицы не найдены будет использоваться итерация по умолчанию для всех подтаблиц и стратегия копирования описанная выше . ObjectQueueItem./pdfasymbolicfontencodingstrategy.queueitemуказывает используемую подтаблицу кодирования. Эта подтаблица может быть установлена с помощью комбинации элементов PlatformID PlatformSpecificId или с помощью перечисленияCMapEncodingTableType./pdfasymbolicfontencodingstrategy.queueitem.cmapencodingtabletype ....следующая стратегия: Ищется mac subtable(1,0). Если эта таблица...назначения (3,0). Если подтаблица mac не найдена, то все подтаблицы...