Альтернативы FontForge

Я использую привязки Python для FontForge под Ubuntu. Он постоянно терпит крах без каких-либо подсказок о причине, например. ошибка сегментации, ошибки отображения памяти и т. д.

Все, что мне нужно, это прочитать метаданные файла шрифта (.ttf и .otf) (имя шрифта, название семейства, версия, уникальный идентификатор, авторские права, лицензия, дизайнер, URL-адрес дизайнера и т. д.) и подсчитать имеющиеся у него глифы.

Существуют ли какие-либо альтернативы fontforge, которые выполняют вышеуказанные задачи более стабильно? Любые предложения будут оценены.


person jack    schedule 27.11.2009    source источник
comment
Мне любопытно, когда вы запускаете приведенную выше команду, что она возвращает, только в текстовом файле? Можно ли запустить его из системного вызова PHP?   -  person Wayha    schedule 26.05.2011


Ответы (2)


Раньше у меня были проблемы с fontforge на моем Ubuntu x64.

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

Последний svn намного лучше, я имею в виду наименьшие сбои, я использую следующее руководство для установки из svn.

http://openfontlibrary.org/wiki/How_to_install_FontForge

Другой вариант: вам нужны только метаданные, верно?

В этом случае вы можете просто сохранить его в файле fontforge как .sfd, и, поскольку это текстовый файл, вы можете читать его построчно из python.

FontName: -----
FullName: ------
FamilyName: ------
Weight: -----
...

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

person YOU    schedule 27.11.2009
comment
отлично, дамп в файл .sfd работает. однако мне нужны как метаданные, так и значение Unicode всех глифов. Я видел что-то вроде StartChar: numbersign Encoding: 35 35 6 в файле .sfd. Как преобразовать 35 35 6 в его номер юникода? - person jack; 27.11.2009
comment
может быть так? unichr(int(re.search("Encoding: (\d+)",x).group(1))) немного грязно. - person YOU; 27.11.2009
comment
оно работает. Вы знаете, что означает третье значение (6 в приведенном выше случае)? - person jack; 27.11.2009
comment
Я считаю, что это индекс глифа с самого начала, в меню пользовательского интерфейса fontforge, Encoding->Compact, вы увидите только glpyhs, который включен в шрифт, сначала 0, затем 1,2,3 и т. д., я думаю, что это просто для внутреннее использование fontforge - person YOU; 27.11.2009

Все, что мне нужно, это прочитать метаданные файла шрифта (.ttf и .otf) (имя шрифта, фамилия, версия, уникальный идентификатор, авторское право, лицензия, дизайнер, URL-адрес дизайнера и т. д.) и подсчитать глифы, которые он имеет

https://github.com/davelab6/pyfontaine/ делает это

person davelab6    schedule 18.09.2013