Копирование глифов из .ttf-файла в .mdb-файл, и отрисовка из .mdb

500 000 руб. за проект
23 декабря 2021, 22:26 • 5 откликов • 55 просмотров
Требуется переделать программный код
https://sourceforge.net/projects/freetype/files/fr...
и создать из него две программы под Windows (если вы можете не переделывать, а написать оригинальный, то еще лучше).
1) первая принимает в командной строке имя ttf-файла (файла шрифтов) и имя mdb-файла (файла данных MS Access) и копирует все глифы (координаты точек их контуров и т.д.) и межглифное расстояние (в строке символов) из ttf-файла в mdb-файл. Схему базы разрабатываете сами. Сопутствующая информация
https://docs.microsoft.com/en-us/typography/openty...
https://developer.apple.com/fonts/TrueType-Referen...
В схеме базы должна быть предусмотрены возможности:
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