Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Требуется переделать программный код

https://sourceforge.net/projects/freetype/files/freetype/1.3.1/freetype-1.3.1.zip/download

и создать из него две программы под Windows (если вы можете не переделывать, а написать оригинальный, то еще лучше).

1) первая принимает в командной строке имя ttf-файла (файла шрифтов) и имя mdb-файла (файла данных MS Access) и копирует все глифы (координаты точек их контуров и т.д.) и межглифное расстояние (в строке символов) из ttf-файла в mdb-файл. Схему базы разрабатываете сами. Сопутствующая информация

https://docs.microsoft.com/en-us/typography/opentype/spec/

https://developer.apple.com/fonts/TrueType-Reference-Manual/

В схеме базы должна быть предусмотрены возможности:

1.1) создавать новый глиф из нескольких старых, наложенных один на другой (возможно в ttf-файле существует таблица попарных горизонтальных сдвигов при таком наложении),

1.2) демонстрировать в качестве лигатуры последовательность глифов,

1.3) отключать часть лигатур следующим образом (см. 2.1)

2) во второй программе пользователь набирает (юникодовские) номера символов, завершая их пробелом, а программа рисует в окошке соответствующие им глифы, взятые из mdb-файла, без пробела (два пробела подряд означают нарисовать пробел). Применяется межглифное расстояние, скопированное из ttf-файла. Клавиши PgUp, PgDw увеличивают и уменьшают размер глифов, которые будут отображаться далее (при достижении конца экрана происходит сдвиг изображенного вверх без возможности обратного скроллинга вниз). Если пользователь печатает на латиннице, отображается латинница.

2.1) добавляете еще одну таблицу LigaGroup из двух колонок: первичного ключа и строки. В таблицу лигатур Liga добавляете внешний ключ, ссылающийся на LigaGroup PK. В каждый момент времени являются активными, т.е. применяются, лигатуры только с одним числовым значением Liga FK. В меню программы демонстрируются все строки LigaGroup, выбор одной из строк переключает текущую активную группу лигатур.

P.S. Лучше писать заказчику напрямую в телеграмме, там его ник dimathurin

2 года назад
guest_16391274386937
2 года в сервисе
Был
2 года назад