- PVSM.RU - https://www.pvsm.ru -
Нечасто, но регулярно у людей возникает вопрос — как изменить имя шрифта. Не файла со шрифтом (тут хитрости нет), а самого шрифта. Имя, которое будет показываться в диалоге шрифтов текстовых процессоров после установки данного.
Я столкнулся с этой проблемой следующим образом. Требовалось на домашнем компьютере сконвертировать набор документов из САПР «Компас» в формат PDF. Для этой цели имелся КОМПАС-3D Viewer. А затык вышел с тем, что автор документов набрал их шрифтом Arial Narrow, который на компьютере отсутствовал; вместо него смотрелка подставляет шрифт Arial, из-за чего все надписи в документе разъезжаются как попало.
Конечно, мы все знаем, как можно решить проблему с отсутствующим шрифтом, да и с редактором Компаса. Но есть у меня скверная привычка не нарушать авторские права без крайней необходимости, потому стал искать законное и относительно честное решение. В компьютере стоял свободный шрифт Liberation Sans Narrow (TrueType), который очень похож на Arial Narrow, а главное, имеет те же метрики. Надо было лишь убедить систему (речь идёт о Windows Vista), что точно такой же шрифт зовут Arial Narrow, только и всего.
Во-первых, достаём искомые шрифты (LiberationSansNarrow.ttf, LiberationSansNarrow-Bold.ttf, LiberationSansNarrow-Italic.ttf, LiberationSansNarrow-BoldItalic.ttf) из C:WindowsFonts
в произвольную папку. По названному пути в действительности расположен специальный файл, а не папка, и что-то с его содержимым делать сто́ит только через Проводник Windows: скопировали файлы мышкой, поправили, и мышкой же положили обратно.
Наиболее простой способ сделать что-либо со шрифтом — это скачать и установить FontForge [1], редактор шрифтов с графическим интерфейсом. Если вам не лень скачать программу-установщик, то дальше можете не читать — всё элементарно. Но я решил, что дистрибутив графического продукта (весит чуть более 16 Мб) мне выкачать тяжело — инет небыстрый; и перешёл к другим вариантам (не факт, что я поступил разумно, ну да из песни слова не выкинешь).
Утилитой для работы со шрифтами из командной строки является TTX [2] из проекта FontTools. В архивах интернета водится его .exe-установщик, однако полученную из него программу мне запустить не удалось, так что скачал с официального сайта архив tar.gz (весит всего-то 340 Кб). Для сборки утилиты из этого архива вам понадобится:
Итак, порядок действий (для чайников, знакомые со сборкой из кодов могут особо не вчитываться):
cd "D:/путь/куда/распаковали/numpy-x.x.x"
(в оболочке Cygwin следует использовать /прямые/ косые черты вместо обратных).python setup.py install
. Далее вы в течении получаса-часа будете получать ругань компилятора, однако библиотека, скорее всего, в итоге успешно установится.python setup.py install
. Установка на этот раз завершится довольно скоро, а утилита ttx станет доступной из командной строки.ttx *.ttf
, после которой для каждого TrueType-шрифта в папке возникнет файл с расширением .ttx. Исходные файлы теперь можно удалить (вы ведь их скопировали, а не переместили?)ttx *.ttx
. Возникает набор файлов, аналогичный исходному, но с другим внутренним именем.Всё, мы получили файлы, которые можно закидывать мышкой в псевдокаталог Fonts. Со шрифтаме OpenType всё делается аналогично с учётом замены на 4-м шаге .ttf на .otf.
P.S. Замечу, что ранее мне удалось переименовать OpenSymbol в StarSymbol, не пользуясь никакими тяжеловесными закачками. Для этого файл пропускался через простенький скрипт, содержавший регулярное выражение наподобие s/O([x00-x1F]?)p([x00-x1F]?)e([x00-x1F]?)n/S$1t$2a$3r/g
. Однако не поручусь, что этот трюк всегда срабатывает, особенно когда длины имён не совпадают.
Автор: Ihnatus
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/windows/88200
Ссылки в тексте:
[1] FontForge: http://fontforge.sourceforge.net
[2] TTX: http://sourceforge.net/projects/fonttools
[3] Python: https://www.python.org/downloads
[4] Cygwin: http://cygwin.com
[5] Библиотека Numerical Python: http://sourceforge.net/projects/numpy
[6] Free Font Renamer: http://www.fontrenamer.com
[7] Источник: http://habrahabr.ru/post/255187/
Нажмите здесь для печати.