Конвертация TTF to TTC требуется, когда несколько начертаний одного шрифта нужно упаковать в единый файл TrueType Collection — например, для установки в систему одним файлом или для экономии места за счёт общих таблиц глифов. В отличие от простой смены расширения, здесь выполняется реальная перестройка структуры файла: заголовок ttcf, таблица смещений и ссылки на отдельные шрифты внутри контейнера.
Обычный конвертер форматов изображений или документов с этой задачей не справится — нужны инструменты, понимающие внутреннее устройство шрифтов. Ниже разберём рабочие способы: онлайн-сервисы, FontForge и скрипт на Python с библиотекой fontTools, а также обратную операцию — извлечение TTF из коллекции.
Чем TTC отличается от TTF
Файл TTF (TrueType Font) содержит один шрифт: один набор глифов, одну таблицу метрик, одно семейство. Файл TTC (TrueType Collection) — это контейнер, в котором хранится несколько шрифтов, причём одинаковые таблицы (например, общие глифы) могут быть общими для всех включённых начертаний. Именно поэтому коллекция часто занимает меньше места, чем сумма отдельных файлов.
Типичный пример — системные шрифты Windows: msgothic.ttc или msyh.ttc объединяют несколько начертаний в одном файле. macOS тоже активно использует формат TTC для системных гарнитур.
- 📦 TTF — один шрифт, один файл, расширение
.ttf - 🗂 TTC — коллекция из двух и более шрифтов, расширение
.ttc - 🔗 Внутри TTC шрифты могут делить общие таблицы, что уменьшает размер
- 🖥 Windows и macOS устанавливают TTC штатно, двойным кликом
Когда нужна конвертация в TTC
Чаще всего задача возникает у дизайнеров и разработчиков, которые готовят семейство шрифтов к распространению. Вместо пяти отдельных файлов Regular, Bold, Italic, Bold Italic и Light удобнее отдать один TTC — пользователь установит всё семейство одним действием.
Вторая ситуация — оптимизация. Если начертания построены на одном наборе глифов, коллекция заметно компактнее. Третий сценарий — требования конкретной платформы или ПО, которое принимает шрифты только в виде коллекции.
⚠️ Внимание: перед объединением убедитесь, что лицензия на шрифты разрешает модификацию и перепаковку. У коммерческих гарнитур такие действия часто запрещены условиями лицензионного соглашения.
Способ 1: онлайн-конвертеры
Самый быстрый вариант — сервисы вроде Transfonter, Convertio или OnlineFontConverter. Загружаете один или несколько TTF, выбираете целевой формат TTC и скачиваете результат. Для разовой задачи этого достаточно, установка программ не потребуется.
Ограничения у онлайн-подхода тоже есть. Крупные файлы могут не пройти по лимиту размера, а загрузка коммерческих шрифтов на сторонний сервер — спорная идея с точки зрения лицензий и конфиденциальности. Кроме того, не все сервисы корректно собирают коллекцию из нескольких файлов: некоторые просто конвертируют каждый TTF по отдельности.
Способ 2: FontForge
FontForge — свободный редактор шрифтов, который умеет генерировать коллекции напрямую. Откройте все нужные TTF в программе, затем в любом из окон выберите File → Generate TTC... и отметьте шрифты, которые войдут в коллекцию. Порядок файлов в списке определит порядок начертаний внутри TTC.
Этот способ даёт контроль над процессом: можно предварительно проверить таблицы, имена семейств и метрики каждого начертания. Если у шрифтов конфликтуют внутренние имена, FontForge покажет предупреждения ещё до сборки.
☑️ Подготовка к сборке TTC в FontForge
Способ 3: Python и fontTools
Для пакетной обработки удобнее всего библиотека fontTools. Она устанавливается командой pip install fonttools и позволяет собрать коллекцию буквально несколькими строками кода.
from fontTools.ttLib import TTFont, TTCollection
fonts = ["Regular.ttf", "Bold.ttf", "Italic.ttf"]
collection = TTCollection()
collection.fonts = [TTFont(f) for f in fonts]
collection.save("MyFamily.ttc")
Результат — готовый файл MyFamily.ttc, который сразу можно устанавливать в систему. Скрипт легко доработать: обход папки с шрифтами, сортировка по имени, проверка ошибок чтения. Для регулярной сборки семейств это самый надёжный вариант.
Обратная задача: извлечь TTF из TTC
Иногда нужно наоборот — распаковать коллекцию на отдельные файлы. Та же fontTools решает и эту задачу: открываете TTC как TTCollection и сохраняете каждый вложенный шрифт в собственный файл. В FontForge коллекция при открытии предлагает выбрать конкретный шрифт, который затем сохраняется через File → Generate Fonts.
Учтите, что при распаковке общие таблицы дублируются в каждый файл, поэтому суммарный размер отдельных TTF будет больше исходной коллекции. Это нормальное поведение, а не признак ошибки.
⚠️ Внимание: перед любыми операциями сохраните копии исходных файлов. Пересборка шрифта может изменить внутренние таблицы, и откатиться к исходному состоянию без резервной копии не получится.
Сравнение способов конвертации
| Способ | Установка ПО | Пакетная обработка | Контроль качества |
|---|---|---|---|
| Онлайн-конвертер | Не нужна | Ограничена | Минимальный |
| FontForge | Требуется | Ручная | Высокий |
| Python + fontTools | Python и библиотека | Полная | Высокий |
| Коммерческие редакторы | Требуется | Зависит от программы | Высокий |
Для разовой задачи с одним-двумя файлами проще всего онлайн-сервис. Если работа со шрифтами регулярная, стоит освоить fontTools: вложение окупается уже на втором семействе.
Почему TTC может не устанавливаться в систему
Возможные причины: повреждённый заголовок коллекции, конфликт имён семейств с уже установленными шрифтами, недостаток прав (попробуйте установку «для всех пользователей») или антивирус, блокирующий запись в папку шрифтов. Проверьте файл в FontForge — он покажет структурные ошибки.
Проверка результата после конвертации
После сборки обязательно проверьте файл до распространения. Откройте TTC двойным кликом: системный просмотрщик шрифтов должен показать все начертания из коллекции. Установите файл и проверьте, что семейство корректно отображается в текстовом редакторе и графической программе.
Дополнительно полезно прогнать файл через валидатор — например, FontValidator или проверку средствами fontTools (fonttools ttLib позволяет инспектировать таблицы). Ошибки в таблицах name или head могут проявиться только на отдельных системах, поэтому лучше поймать их заранее.
- ✅ Откройте TTC и убедитесь, что видны все начертания
- 🖨 Проверьте печать и рендеринг в целевом приложении
- 🔍 Прогоните файл через валидатор шрифтов
- 💾 Сохраните исходные TTF в архиве
Частые вопросы
Можно ли конвертировать один TTF в TTC?
Технически да — коллекция из одного шрифта валидна. Но практического смысла в этом нет: ни экономии места, ни удобства установки такой файл не даёт.
Можно ли смешивать TTF и OTF в одной коллекции?
Формат TTC поддерживает шрифты с кривыми TrueType. Файлы OTF на основе PostScript-контуров (CFF) объединяются в коллекции формата OTC, и не всякое ПО их корректно читает. Смешивать типы контуров в одном контейнере не стоит.
Почему TTC меньше суммы отдельных TTF?
Потому что одинаковые таблицы — глифы, метрики, таблицы кодировки — хранятся в коллекции один раз и разделяются между начертаниями. Чем больше общего у шрифтов, тем заметнее экономия.
Откроется ли TTC на Android или Linux?
На Linux поддержка TTC есть в fontconfig и основных приложениях. На Android системные механизмы подмены шрифтов ограничены и зависят от оболочки производителя — гарантировать работу конкретного TTC без проверки на устройстве нельзя.
Что делать, если конвертер выдаёт ошибку на исходном TTF?
Вероятная причина — повреждённый или нестандартный исходный файл. Откройте его в FontForge: программа покажет ошибки структуры и часто может пересохранить шрифт в корректном виде, после чего конвертация пройдёт успешно.