PostScript AFM файл и имена глифов - PullRequest
0 голосов
/ 19 октября 2011

Я хотел бы хранить метрики глифа шрифта Type 1 в словаре (Python), используя имя глифа в качестве ключа, поскольку у каждого глифа есть имя, и оно уникально (AFAIK). Однако в спецификации метрики шрифта Adobe указано, что в спецификации метрики отдельных символов нет для включения имени глифа (это необязательно). Следовательно, возможно, что в некоторых файлах AFM не указано имя глифа, поэтому для некоторых глифов известен только код символа. Это означает, что в случае, если имя глифа не указано, мне нужно также проанализировать файл PFB, чтобы узнать имя глифа (поиск его в таблице кодирования). Похоже, это противоречит самой цели файла AFM.

Тем не менее, я проверил несколько файлов AFM и пока не нашел ни одного, в котором пропущено имя глифа в спецификации метрик. Могу ли я с уверенностью предположить, что имя глифа будет всегда присутствовать? Есть ли неписанное правило, что имя обязательно нужно вводить?

РЕДАКТИРОВАТЬ Я протестировал 2447 AFM-файлов, доступных на Adobe FTP-сайте , и во всех них имя глифа указано для каждой строки метрических символов. Так что, по крайней мере, для шрифтов Adobe, я могу предположить, что имя глифа присутствует.

1 Ответ

2 голосов
/ 19 октября 2011

Поиск кодировки работает только для тех глифов, которые закодированы в кодировке по умолчанию, это часто небольшое подмножество общих доступных символов. Очевидно, что вы можете перекодировать шрифт, чтобы получить доступ к глифам, которые обычно недоступны.

Глифы, которые не закодированы, имеют код символа -1 в файле AFM, поэтому вы не можете искать их в Кодировке. Это означает, что метрики бесполезны, потому что вы не знаете, к какому глифу они относятся!

Хотя это имя является необязательным в AFM, я был бы удивлен, если бы вы нашли много файлов AFM, которые его не предоставляют.

Обратите внимание, что обычно я не имею ничего общего с файлами AFM, так как они вообще не используются PostScript.

Вы правы, что имена глифов в словаре CharStrings шрифта типа 1 уникальны.

...